Você está na página 1de 118

Machine Translated by Google

Selenium Python Bindings


Lançamento 2

Baiju Muthukadan

14 de dezembro de 2022
Machine Translated by Google
Machine Translated by Google

Conteúdo

1 Instalação 3

1.1 Introdução 1.2 . . . . . . . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 3

Instalando ligações Python para Selenium . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 3

1.3 Instruções para usuários do . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 3

Windows 1.4 Instalando a partir de . . . . . . . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 4


. . .. . . . . . . . . . . . . . .
fontes Git 1.5 Drivers . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 4
1.6 Baixando o servidor Selenium . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 4

2 Iniciando 2.1 Uso 7


Simples . . . . . . . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 7
2.2 Exemplo explicado . . . . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 7
2.3 Usando o Selenium para escrever . . . . . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . .
testes 2.4 Passo a passo do exemplo . . . . . . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 8

2.5 Usando Selenium com WebDriver remoto . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 9 11

3 Navegando
3.1 Interagindo com a página . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 13 .
3.2 Preenchimento de . . . . . . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . .
.
formulários 3.3 Arrastar e soltar .. . . . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 13
3.4 Movendo-se entre janelas e molduras 3.5 . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . 14 .
Diálogos pop-up . . . . . . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 15 .
3.6 Navegação: histórico e localização . . . . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . 15 .
3.7 Cookies . . . . . . . . . . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 16 . 16 . 16

4 Localizando
Elementos 4.1 . . . . . . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 17 .
. . . por
Localizando por Id 4.2 Localizando . . Nome
. . . .. . . .
. . . . . . . . . . . . . . ..... . . . . . . . . . . . 18 .
4.3 Localizando por XPath . . . . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 18 .
4.4 Localizando Hiperlinks por Texto de Link . . . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . 19 .
4.5 Localizando Elementos por Nome de Tag . . . . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . 20 . 20
4.6 Localizando Elementos por Nome de Classe . . . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 21
4.7 Localizando Elementos por Seletores CSS . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 21

5 Esperas
5.1 Esperas Explícitas . . . . . . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 23 .
5.2 Esperas implícitas . . . . . . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 23 . 25

eu
Machine Translated by Google

6 Objetos de página 27
6.1 Caso de teste . . . . . . . . . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 27
6.2 Classes de objetos de . . . . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 28 .
. . .
página 6.3 Elementos de página . . . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 29
6.4 Localizadores . . . . . . . . . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 29

7 API do WebDriver
7.1 Exceções . . . . . . . . .
. . ..... . . . . . . . . . . . . . . . ..... . . . . . . . . . . . 31 .
7.2 Cadeias de Ação . . . . . . .
. . ..... . . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 32
7.3 Alertas ... . . . . . . . . .
. . ..... . . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 41
7.4 Teclas especiais . . . . . . . .
. . ..... . . . . . . . . . . . . . . . ..... . . . . . . . . . . . 44 .
7.5 Localizar elementos por . . . .
. . ..... . . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 45
7.6 Capacidades Desejadas . . . .
. . ..... . . . . . . . . . . . . . . . ..... . . . . . . . . . . . 47 .
7.7 Ações de toque . . . . . . .
. . ..... . . . . . . . . . . . . . . . ..... . . . . . . . . . . . 48 .
7.8 Proxy . . . . . . . . . .
. . .
. ..... . . . . . . . . . . . . . . . ..... . . . . . . . . . . . 48 .
7.9 Utilitários . . . . . . . . . . .
. . ..... . . . . . . . . . . . . . . . ..... . . . . . . . . . . . 48 .
7.10 Serviço . . . . . . . . . . .
. . ..... . . . . . . . . . . . . . . . ..... . . . . . . . . . . . 50 .
7.11 Cache de aplicativos . . . . .
. . ..... . . . . . . . . . . . . . . . ..... . . . . . . . . . . . 51 .
7.12 Firefox WebDriver . . . . .
. . ..... . . . . . . . . . . . . . . . ..... . . . . . . . . . . . 52 .
7.13 Opções do Firefox WebDriver . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 53 .
7.14 Perfil do Firefox WebDriver . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 55 .
7.15 Firefox WebDriver Binário . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 56 .
7.16 Conexão da extensão Firefox WebDriver . . . . . . . . . . . . . . . ..... . . . . . . . . . . . 57 .
7.17 Driver da Web do Chrome . . . . . . . . . . . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . 57 .
7.18 Opções do Chrome WebDriver . . . . . . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . 58 .
7.19 Serviço Chrome WebDriver . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 59 .
7.20 Driver Web Remoto . . . . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 59 .
7.21 WebElement do WebDriver Remoto . . . . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . 59 .
7.22 Comando WebDriver Remoto . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 68
7.23 Manipulador de erros do WebDriver remoto . . . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 72
. . . . .....
7.24 WebDriver remoto Mobile 7.25 Conexão . . . . . . . . . . . . . . ..... . . . . . . . . . . . 74 .
remota do WebDriver remoto . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . 75 .
7.26 Utilitários do WebDriver Remoto . . . . . . . . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 76
7.27 Driver da Web do Internet Explorer . . . . . . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . 77 .
7.28 Driver da Web do Android . . . . . . . . . . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . 78 .
7.29 Opera WebDriver . . . . . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 79 .
7.30 PhantomJS WebDriver . . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 79 .
7.31 Serviço PhantomJS WebDriver . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 79 .
7.32 Safari WebDriver . . . . . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 79 .
7.33 Serviço Safari WebDriver . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 79 .
7.34 Selecione Suporte . . . . . . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 80 .
7.35 Suporte de espera . . . . . . . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 80 .
7.36 Suporte de cores . . . . . . . . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 82 .
7.37 Suporte para WebDriver de Disparo de Eventos . . .... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 83 .
7.38 Suporte a ouvinte de eventos abstratos . . . ... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 83 .
7.39 Condições esperadas Suporte . . . . . ... . . . . . . . . . . . . . . ..... . . . . . . . . . . . 85 . 85

8 Apêndice: Perguntas Frequentes 89


8.1 Como usar o ChromeDriver ? . . . ..... . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 89
8.2 O Selenium 2 suporta XPath 2.0? ... . . . . . . . . . . . . . . ..... . . . . . . . . . . . . 89
8.3 Como rolar para o final de uma página? . . . . . . . . . . . . . ..... . . . . . . . . . . . . 89
8.4 Como salvar arquivos automaticamente usando o perfil personalizado do Firefox? . . . . . . . . . ..... . . . . . . . . . . . . 90 .
8.5 Como fazer upload de arquivos em entradas de arquivo? . . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . . 90 . 91
8.6 Como usar o firebug com o Firefox ? . . . . . . . . . . . . . . . . . . . ..... . . . . . . . . . . .

ii
Machine Translated by Google

8.7 Como fazer uma captura de tela da janela atual ? . . . . . . . . . . . . ..... . . . . . . . . . . . . 91

9 índices e tabelas 93

Índice do Módulo Python 95

Índice 97

iii
Machine Translated by Google

4
Machine Translated by Google

Selenium Python Bindings, Versão 2

Autor Baiju Muthukadan

Licença Este documento está licenciado sob Creative Commons Attribution-ShareAlike 4.0 International
Licença.

Nota: Esta não é uma documentação oficial. Se quiser contribuir com esta documentação, você pode bifurcar este projeto no GitHub e enviar
solicitações pull. Você também pode enviar seus comentários para o meu e-mail: baiju.m.mail AT gmail DOT com. Até agora, mais de 50
membros da comunidade contribuíram para este projeto (veja as solicitações fechadas). Encorajo os colaboradores a adicionar mais seções e
torná-la uma documentação incrível! Se você conhece alguma tradução deste documento, envie um PR para atualizar a lista abaixo.

Traduções:

• chinês

• japonês

Conteúdo 1
Machine Translated by Google

Selenium Python Bindings, Versão 2

2 Conteúdo
Machine Translated by Google

CAPÍTULO 1

Instalação

1.1 Introdução

As ligações do Selenium Python fornecem uma API simples para escrever testes funcionais/de aceitação usando o Selenium WebDriver.
Através da Selenium Python API você pode acessar todas as funcionalidades do Selenium WebDriver de forma intuitiva.

As ligações do Selenium Python fornecem uma API conveniente para acessar Selenium WebDrivers como Firefox, Ie, Chrome, Remote
etc. As versões atuais do Python suportadas são 3.5 e superiores.

Esta documentação explica a API Selenium 2 WebDriver. Selenium 1 / Selenium RC API não é abordado aqui.

1.2 Instalando ligações Python para Selenium

Usar pip para instalar o pacote Selenium. Python 3 tem pip disponível na biblioteca padrão. Usando o pip, você pode instalar o Selenium
assim:

pip instalar selênio

Você pode considerar usar virtualenv para criar ambientes Python isolados. Python 3 tem venv que é quase o mesmo que virtualenv.

Você também pode baixar as ligações Python para Selenium na página PyPI para o pacote Selenium. e instale manualmente.

1.3 Instruções para usuários do Windows

1. Instale o Python 3 usando o MSI disponível na página de download python.org.


2. Inicie um prompt de comando usando o programa cmd.exe e execute o comando pip conforme indicado abaixo para instalar
selênio.

3
Machine Translated by Google

Selenium Python Bindings, Versão 2

C:\Python39\Scripts\pip.exe instalar o selênio

Agora você pode executar seus scripts de teste usando Python. Por exemplo, se você criou um script baseado em Selenium e o salvou em
C:\my_selenium_script.py, você pode executá-lo assim:

C:\Python39\python.exe C:\my_selenium_script.py

1.4 Instalando a partir de fontes do Git

Para construir o Selenium Python a partir do código-fonte, clone o repositório oficial. Ele contém o código-fonte para todos os sabores oficiais
do Selenium, como Python, Java, Ruby e outros. O código Python reside no diretório /py. Para construir, você também precisará do Bazel
sistema de construção.

Nota: Atualmente, conforme o Selenium se aproxima da versão 4.0.0, ele requer o Bazel 3.2.0 (instruções de instalação), mesmo que 3.3.0
já esteja disponível.

Para construir um Wheel a partir dos fontes, execute o seguinte comando na raiz do repositório:

bazel //py:selenium-roda

Este comando preparará o código-fonte com alguns arquivos JS pré-processados necessários para alguns módulos do webdriver e construirá
o pacote .whl dentro do diretório ./bazel-bin/py/. Depois, você pode usar o pip para instalá-lo.

1.5 Drivers

O Selenium requer um driver para fazer a interface com o navegador escolhido. Firefox, por exemplo, requer geckodriver, que precisa ser
instalado antes que os exemplos abaixo possam ser executados. Certifique-se de que esteja em seu PATH, por exemplo, coloque-o em /usr/
bin ou /usr/local/bin.

A não observância desta etapa resultará em um erro selenium.common.exceptions.WebDriverException: Mensagem: o executável 'geck
odriver' precisa estar em PATH.

Outros navegadores suportados terão seus próprios drivers disponíveis. Seguem links para alguns dos drivers de navegador mais populares.

Chrome: https://sites.google.com/chromium.org/driver/ Borda: https://


developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
Firefox: https://github.com/mozilla/geckodriver/releases Safari: https://webkit.org/
blog/6900/webdriver-support-in-safari-10/

Para obter mais informações sobre a instalação do driver, consulte a documentação oficial.

1.6 Baixando o servidor Selenium

Nota: O servidor Selenium só é necessário se você quiser usar o WebDriver remoto. Consulte a seção Usando Selenium com
WebDriver remoto para obter mais detalhes. Se você é iniciante aprendendo Selenium, pode pular esta seção

4 Capítulo 1. Instalação
Machine Translated by Google

Selenium Python Bindings, Versão 2

e prossiga com o próximo capítulo.

O servidor Selenium é um programa Java. Java Runtime Environment (JRE) 1.6 ou versão mais recente é recomendado para executar
o servidor Selenium.

Você pode baixar o servidor Selenium 2.x na página de download do site da Selenium. O nome do arquivo deve ser algo assim:
selenium-server-standalone-2.xxjar. Você sempre pode baixar a versão 2.x mais recente do servidor Selenium.

Se o Java Runtime Environment (JRE) não estiver instalado em seu sistema, você poderá fazer o download do JRE no site da Oracle.
Se você estiver usando um sistema GNU/Linux e tiver acesso root em seu sistema, também poderá usar as instruções do sistema
operacional para instalar o JRE.

Se o comando java estiver disponível no PATH (variável de ambiente), você pode iniciar o servidor Selenium usando este comando:

java -jar selenium-server-standalone-2.xxjar

Substitua 2.xx pela versão atual do servidor Selenium que você baixou do site.

Se o JRE estiver instalado como um usuário não raiz e/ou se não estiver disponível no PATH (variável de ambiente), você pode digitar o
caminho relativo ou absoluto para o comando java. Da mesma forma, você pode fornecer um caminho relativo ou absoluto para o arquivo
jar do servidor Selenium. Então, o comando ficará mais ou menos assim:

/caminho/para/java -jar /caminho/para/selenium-server-standalone-2.xxjar

1.6. Baixando o servidor Selenium 5


Machine Translated by Google

Selenium Python Bindings, Versão 2

6 Capítulo 1. Instalação
Machine Translated by Google

CAPÍTULO 2

Começando

2.1 Uso Simples


Se você instalou as ligações do Selenium Python, pode começar a usá-lo a partir do Python assim.

from selenium import webdriver from


selenium.webdriver.common.keys import Chaves de
selenium.webdriver.common.by import By

driver = webdriver.Firefox() driver.get("http://


www.python.org") assert "Python" em driver.title elem
= driver.find_element(By.NAME, "q") elem.clear()

elem.send_keys("pycon")
elem.send_keys(Keys.RETURN) assert
"Nenhum resultado encontrado." não em driver.page_source driver.close()

O script acima pode ser salvo em um arquivo (por exemplo:- python_org_search.py), então pode ser executado assim:

python python_org_search.py

O python que você está executando deve ter o módulo Selenium instalado.

2.2 Exemplo Explicado


O módulo selenium.webdriver fornece todas as implementações do WebDriver. As implementações do WebDriver atualmente suportadas são
Firefox, Chrome, IE e Remote. A classe Keys fornece teclas no teclado como RETURN, F1, ALT etc. A classe By é usada para localizar
elementos dentro de um documento.

7
Machine Translated by Google

Selenium Python Bindings, Versão 2

from selenium import webdriver from


selenium.webdriver.common.keys import Chaves de
selenium.webdriver.common.by import By

Em seguida, a instância do Firefox WebDriver é criada.

driver = webdriver.Firefox()

O método driver.get navegará para uma página fornecida pela URL. O WebDriver aguardará até que a página seja totalmente carregada (ou seja, o
evento “onload” foi acionado) antes de retornar o controle ao seu teste ou script. Esteja ciente de que, se sua página usa muito AJAX no carregamento,
o WebDriver pode não saber quando foi totalmente carregado:

driver.get("http://www.python.org")

A próxima linha é uma afirmação para confirmar que o título contém a palavra “Python”:

afirmar "Python" em driver.title

O WebDriver oferece várias maneiras de localizar elementos usando o método find_element. Por exemplo, o elemento de texto de entrada pode ser
localizado por seu atributo name usando o método find_element e usando By.NAME como seu primeiro parâmetro.
Uma explicação detalhada sobre como encontrar elementos está disponível no capítulo Localizando Elementos :

elem = driver.find_element(By.NAME, "q")

Em seguida, estamos enviando chaves, isso é semelhante a inserir chaves usando o teclado. Chaves especiais podem ser enviadas usando a classe
Keys importada de selenium.webdriver.common.keys. Por segurança, primeiro limparemos qualquer texto pré-preenchido no campo de entrada (por
exemplo, "Pesquisar") para que não afete nossos resultados de pesquisa:

elem.clear()
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)

Após o envio da página, você deve obter o resultado, se houver. Para garantir que alguns resultados sejam encontrados, faça uma afirmação:

assert "Nenhum resultado encontrado." não em driver.page_source

Finalmente, a janela do navegador é fechada. Você também pode chamar o método quit em vez de close. O método quit sairá do navegador,
enquanto close fechará uma guia, mas se apenas uma guia estiver aberta, por padrão, a maioria dos navegadores fechará completamente.:

driver.close()

2.3 Usando Selenium para escrever testes

Selenium é usado principalmente para escrever casos de teste. O pacote Selenium em si não fornece uma ferramenta/framework de teste.
Você pode escrever casos de teste usando o módulo unittest do Python. As outras opções para uma ferramenta/estrutura são pytest e nariz.

Neste capítulo, usamos unittest como o framework de escolha. Aqui está o exemplo modificado que usa o módulo unittest. Este é um teste para a
funcionalidade de pesquisa do python.org:

import unittest from


selenium import webdriver from
selenium.webdriver.common.keys import keys from
selenium.webdriver.common.by import by
(continua na próxima página)

8 Capítulo 2. Introdução
Machine Translated by Google

Selenium Python Bindings, Versão 2

(continuação da página anterior)

class PythonOrgSearch(unittest.TestCase):

def setUp(self): self.driver


= webdriver.Firefox()

def test_search_in_python_org(self): driver = self.driver


driver.get("http://www.python.org") self.assertIn("Python",
driver.title) elem = driver.find_element(By.NAME, " q")
elem.send_keys("pycon") elem.send_keys(Keys.RETURN)
self.assertNotIn("Nenhum resultado encontrado.", driver.page_source)

def tearDown(self):
self.driver.close()

if __name__ == "__main__": unittest.main()

Você pode executar o caso de teste acima a partir de um shell como este:

python test_python_org_search.py
.
-------------------------------------------------- --------------------

Realizou 1 teste em 15,566s

OK

O resultado acima mostra que o teste foi concluído com sucesso.

Observação: para executar o teste acima no IPython ou Jupyter, você deve passar alguns argumentos para a função principal, conforme
mostrado abaixo:

unittest.main(argv=['first-arg-is-ignored'], exit=False)

2.4 Passo a passo do exemplo


Inicialmente, todos os módulos básicos necessários são importados. O teste unitário module é um módulo Python integrado baseado no
JUnit do Java. Este módulo fornece a estrutura para organizar os casos de teste. O módulo selenium.webdriver fornece todas as
implementações do WebDriver. As implementações do WebDriver atualmente suportadas são: Firefox, Chrome, IE e Remote. A classe
Keys fornece teclas no teclado como RETURN, F1, ALT etc. A classe By é usada para localizar elementos dentro de um documento.

import unittest from


selenium import webdriver from
selenium.webdriver.common.keys import keys from
selenium.webdriver.common.by import by

A classe de caso de teste é herdada de unittest.TestCase. Herdar da classe TestCase é a maneira de dizer ao módulo unittest que este é
um caso de teste:

2.4. Passo a passo do exemplo 9


Machine Translated by Google

Selenium Python Bindings, Versão 2

class PythonOrgSearch(unittest.TestCase):

O método setUp faz parte da inicialização. Este método será chamado antes de cada função de teste que você escreverá nesta classe de
caso de teste. Aqui você está criando uma instância de um Firefox WebDriver.

def setUp(self): self.driver


= webdriver.Firefox()

Este é o método do caso de teste. O método de caso de teste deve sempre começar com o teste de caracteres. A primeira linha dentro
deste método cria uma referência local ao objeto driver criado no método setUp.

def test_search_in_python_org(self): driver = self.driver

O método driver.get navegará para uma página fornecida pela URL. O WebDriver aguardará até que a página seja totalmente carregada
(ou seja, o evento “onload” foi acionado) antes de retornar o controle ao seu teste ou script. Esteja ciente de que, se sua página usa muito
AJAX no carregamento, o WebDriver pode não saber quando foi totalmente carregado:

driver.get("http://www.python.org")

A próxima linha é uma afirmação para confirmar que o título contém a palavra “Python”:

self.assertIn("Python", driver.title)

O WebDriver oferece várias maneiras de localizar elementos usando o método find_element. Por exemplo, o elemento de texto de entrada
pode ser localizado por seu atributo name usando o método find_element. Uma explicação detalhada sobre como encontrar elementos
está disponível no capítulo Localizando Elementos :

elem = driver.find_element(By.NAME, "q")

Em seguida, estamos enviando chaves, isso é semelhante a inserir chaves usando o teclado. Chaves especiais podem ser enviadas
usando a classe Keys importada de selenium.webdriver.common.keys:

elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)

Após o envio da página, você deve obter o resultado de acordo com a pesquisa, se houver. Para garantir que alguns resultados sejam
encontrados, faça uma afirmação:

self.assertNotIn("Nenhum resultado encontrado.", driver.page_source)

O método tearDown será chamado após cada método de teste. Este é um lugar para fazer todas as ações de limpeza. No método atual, a
janela do navegador é fechada. Você também pode chamar o método quit em vez de close. O método quit fechará todo o navegador,
enquanto close fechará uma guia, mas se for a única guia aberta, por padrão, a maioria dos navegadores fechará completamente.:

def tearDown(self):
self.driver.close()

As linhas finais são algum código clichê para executar o conjunto de testes:

if __name__ == "__main__": unittest.main()

10 Capítulo 2. Introdução
Machine Translated by Google

Selenium Python Bindings, Versão 2

2.5 Usando Selenium com WebDriver remoto


Para usar o WebDriver remoto, você deve ter o servidor Selenium em execução. Para executar o servidor, use este comando:

java -jar selenium-server-standalone-2.xxjar

Ao executar o servidor Selenium, você pode ver uma mensagem como esta:

15:43:07.541 INFO - As instâncias do RemoteWebDriver devem se conectar a: http://127.0.0. ÿÿ1:4444/wd/hub

A linha acima diz que você pode usar este URL para se conectar ao WebDriver remoto. aqui estão alguns exemplos:

do selenium import webdriver

driver = webdriver.Remote(
command_executor='http://127.0.0.1:4444/wd/hub',
options=webdriver.ChromeOptions()
)

driver = webdriver.Remote(
command_executor='http://127.0.0.1:4444/wd/hub', options=webdriver.FirefoxOptions()

2.5. Usando Selenium com WebDriver remoto 11


Machine Translated by Google

Selenium Python Bindings, Versão 2

12 Capítulo 2. Introdução
Machine Translated by Google

CAPÍTULO 3

Navegação

A primeira coisa que você deseja fazer com o WebDriver é navegar até um link. A maneira normal de fazer isso é chamando o método get:

driver.get("http://www.google.com")

O WebDriver aguardará até que a página seja totalmente carregada (ou seja, o evento onload foi acionado) antes de retornar o controle ao
seu teste ou script. Esteja ciente de que, se sua página usar muito AJAX no carregamento, o WebDriver pode não saber quando foi
totalmente carregado. Se você precisar garantir que essas páginas sejam totalmente carregadas, poderá usar waits.

3.1 Interagindo com a página

Apenas ser capaz de ir a lugares não é muito útil. O que realmente gostaríamos de fazer é interagir com as páginas ou, mais
especificamente, com os elementos HTML de uma página. Primeiro de tudo, precisamos encontrar um. O WebDriver oferece várias
maneiras de localizar elementos. Por exemplo, dado um elemento definido como:

<input type="text" name="passwd" id="passwd-id" />

você pode encontrá-lo usando qualquer um dos seguintes:

elemento = driver.find_element(By.ID, "passwd-id") elemento =


driver.find_element(By.NAME, "passwd") elemento =
driver.find_element(By.XPATH, "//input[@id='passwd -id']") element =
driver.find_element(By.CSS_SELECTOR, "input#passwd-id")

Você também pode procurar um link pelo texto, mas cuidado! O texto deve ser uma correspondência exata! Você também deve ter cuidado
ao usar o XPATH no WebDriver. Se houver mais de um elemento que corresponda à consulta, apenas o primeiro será retornado. Se nada
for encontrado, uma NoSuchElementException será lançada.

O WebDriver possui uma API “baseada em objeto”; representamos todos os tipos de elementos usando a mesma interface. Isso significa
que, embora você possa ver muitos métodos possíveis que podem ser invocados ao pressionar a combinação de teclas de preenchimento
automático do IDE, nem todos farão sentido ou serão válidos. Não se preocupe! O WebDriver tentará fazer a coisa certa,

13
Machine Translated by Google

Selenium Python Bindings, Versão 2

e se você chamar um método que não faz sentido (“setSelected()” em uma tag “meta”, por exemplo) uma exceção será levantada.

Então, você tem um elemento. O que você pode fazer com isso? Primeiro de tudo, você pode querer inserir algum texto em um campo de texto:

element.send_keys("algum texto")

Você pode simular o pressionamento das teclas de seta usando a classe “Keys”:

element.send_keys(" and some", Keys.ARROW_DOWN)

É possível chamar send_keys em qualquer elemento, o que possibilita testar atalhos de teclado como os usados no GMail. Um efeito colateral disso
é que digitar algo em um campo de texto não o limpará automaticamente. Em vez disso, o que você digitar será acrescentado ao que já está lá.
Você pode facilmente limpar o conteúdo de um campo de texto ou textarea com o método clear:

element.clear()

3.2 Preenchimento de formulários

Já vimos como inserir texto em uma área de texto ou campo de texto, mas e os outros elementos? Você pode “alternar” o estado do menu suspenso
e usar “setSelected” para definir algo como uma tag OPTION selecionada. Lidar com tags SELECT não é tão ruim:

element = driver.find_element(By.XPATH, "//select[@name='name']") all_options =


element.find_elements(By.TAG_NAME, "option") para opção em all_options:

print("O valor é: %s" % option.get_attribute("value")) option.click()

Isso localizará o primeiro elemento “SELECT” na página e percorrerá cada uma de suas OPTIONs, imprimindo seus valores e selecionando cada
um por sua vez.

Como você pode ver, esta não é a maneira mais eficiente de lidar com elementos SELECT. As classes de suporte do WebDriver incluem uma
chamada “Select”, que fornece métodos úteis para interagir com eles:

from selenium.webdriver.support.ui import Select select =


Select(driver.find_element(By.NAME, 'name')) select.select_by_index(index)
select.select_by_visible_text("text") select.select_by_value(value)

O WebDriver também fornece recursos para desmarcar todas as opções selecionadas:

select = Select(driver.find_element(By.ID, 'id')) select.deselect_all()

Isso desmarcará todas as OPÇÕES desse SELECT específico na página.

Suponha que em um teste, precisamos da lista de todas as opções selecionadas padrão, a classe Select fornece um método de propriedade que retorna
uma lista:

select = Select(driver.find_element(By.XPATH, "//select[@name='name']")) all_selected_options = select.all_selected_options

Para obter todas as opções disponíveis:

14 Capítulo 3. Navegando
Machine Translated by Google

Selenium Python Bindings, Versão 2

opções = selecionar.opções

Depois de terminar de preencher o formulário, você provavelmente deseja enviá-lo. Uma maneira de fazer isso seria encontrar o botão
“enviar” e clicar nele:

# Suponha que o botão tenha o ID "enviar" :)


driver.find_element_by_id("enviar").click()

Como alternativa, o WebDriver possui o método de conveniência “enviar” em cada elemento. Se você chamar isso em um elemento
dentro de um formulário, o WebDriver percorrerá o DOM até encontrar o formulário anexo e, em seguida, chamará o submit nele. Se o
elemento não estiver em um formulário, o NoSuchElementException será gerado:

element.submit()

3.3 Arrastar e soltar

Você pode usar arrastar e soltar, movendo um elemento por uma certa quantidade ou para outro elemento:

element = driver.find_element(By.NAME, "source") target =


driver.find_element(By.NAME, "target")

from selenium.webdriver import ActionChains action_chains =


ActionChains(driver) action_chains.drag_and_drop(elemento,
alvo).perform()

3.4 Movendo-se entre janelas e molduras

É raro um aplicativo da Web moderno não ter nenhum quadro ou ser restrito a uma única janela. O WebDriver suporta a movimentação
entre janelas nomeadas usando o método “switch_to.window”:

driver.switch_to.window("windowName")

Todas as chamadas ao driver agora serão interpretadas como sendo direcionadas para a janela específica. Mas como você sabe o
nome da janela? Dê uma olhada no javascript ou no link que o abriu:

<a href="somewhere.html" target="windowName"> Clique aqui para abrir uma nova janela</a>

Alternativamente, você pode passar um “manípulo de janela” para o método “switch_to.window()”. Sabendo disso, é possível iterar em
todas as janelas abertas da seguinte forma:

para identificador em driver.window_handles:


driver.switch_to.window(handle)

Você também pode alternar entre os quadros (ou em iframes):

driver.switch_to.frame("frameName")

É possível acessar os subframes separando o caminho com um ponto, e você também pode especificar o frame pelo seu índice.
Aquilo é:

driver.switch_to.frame("frameName.0.child")

3.3. Arraste e solte 15


Machine Translated by Google

Selenium Python Bindings, Versão 2

iria para o frame chamado “child” do primeiro subframe do frame chamado “frameName”. Todos os quadros são avaliados como se
fossem *de cima*.

Quando terminarmos de trabalhar nos quadros, teremos que voltar ao quadro pai, o que pode ser feito usando:

driver.switch_to.default_content()

3.5 Diálogos pop-up

O Selenium WebDriver possui suporte integrado para lidar com caixas de diálogo pop-up. Depois de acionar uma ação que abriria um pop-
up, você pode acessar o alerta com o seguinte:

alert = driver.switch_to.alert

Isso retornará o objeto de alerta atualmente aberto. Com este objeto, agora você pode aceitar, descartar, ler seu conteúdo ou até mesmo
digitar em um prompt. Essa interface funciona igualmente bem em alertas, confirmações e prompts. Consulte a documentação da API
para obter mais informações.

3.6 Navegação: histórico e localização

Anteriormente, abordamos a navegação para uma página usando o comando “get” ( driver.get("http://www.example.com")). Como você
viu, o WebDriver tem várias interfaces menores e focadas em tarefas, e a navegação é uma tarefa útil.
Para navegar para uma página, você pode usar o método get:

driver.get("http://www.example.com")

Para retroceder e avançar no histórico do seu navegador:

driver.forward() driver.back()

Esteja ciente de que essa funcionalidade depende inteiramente do driver subjacente. É possível que algo inesperado aconteça quando
você chamar esses métodos se estiver acostumado com o comportamento de um navegador em detrimento de outro.

3.7 Cookies

Antes de passar para a próxima seção do tutorial, você pode estar interessado em entender como usar cookies. Antes de tudo, você
precisa estar no domínio para o qual o cookie será válido:

# Vá para o domínio correto driver.get("http://


www.example.com")

# Agora defina o cookie. Este é válido para todo o domínio


cookie = {'nome' : 'foo', 'valor' : 'barra'} driver.add_cookie(cookie)

# E agora imprima todos os cookies disponíveis para a URL atual driver.get_cookies()

16 Capítulo 3. Navegando
Machine Translated by Google

CAPÍTULO 4

Localizando Elementos

Existem várias estratégias para localizar elementos em uma página. Você pode usar o mais adequado para o seu caso. O Selenium fornece o
seguinte método para localizar elementos em uma página:

• find_element

Para encontrar vários elementos (esses métodos retornarão uma lista):

• encontrar_elementos

Exemplo de uso:

de selenium.webdriver.common.by importar por

driver.find_element(By.XPATH, '//button[text()="Algum texto"]') driver.find_elements(By.XPATH, '//


button')

Os atributos disponíveis para a classe By são usados para localizar elementos em uma página. Estes são os atributos disponíveis para Por classe:

ID = "id"
NOME = "nome"
XPATH = "xcaminho"
LINK_TEXT = "texto do link"
PARTIAL_LINK_TEXT = "texto do link parcial"
TAG_NAME = "nome da etiqueta"
CLASS_NAME = "nome da turma"
CSS_SELECTOR = "seletor de css"

A classe 'By' é usada para especificar qual atributo é usado para localizar elementos em uma página. Estas são as várias maneiras pelas quais os
atributos são usados para localizar elementos em uma página:

find_element(By.ID, "id")
find_element(By.NAME, "name")
find_element(By.XPATH, "xpath")
find_element(By.LINK_TEXT, "link text")
(continua na próxima página)

17
Machine Translated by Google

Selenium Python Bindings, Versão 2

(continuação da página anterior)


find_element(By.PARTIAL_LINK_TEXT, "texto do link parcial")
find_element(By.TAG_NAME, "nome da tag") find_element(By.CLASS_NAME, "nome
da classe") find_element(By.CSS_SELECTOR, "seletor css")

Se você deseja localizar vários elementos com o mesmo atributo, substitua find_element por find_elements.

4.1 Localizando por Id

Use isso quando você souber o atributo id de um elemento. Com esta estratégia, o primeiro elemento com um atributo id correspondente será
retornado. Se nenhum elemento tiver um atributo id correspondente, uma NoSuchElementException será gerada.

Por exemplo, considere esta fonte de página:

<html>
<body>
<form id="loginForm"> <input
name="username" type="text" /> <input name="password"
type="password" /> <input name="continue" type="submit "
value="Login" />
</form>
</body>
</html>

O elemento de formulário pode ser localizado assim:

login_form = driver.find_element(By.ID, 'loginForm')

4.2 Localizando por Nome

Use isso quando você souber o atributo de nome de um elemento. Com esta estratégia, o primeiro elemento com um atributo de nome
correspondente será retornado. Se nenhum elemento tiver um atributo de nome correspondente, uma NoSuchElementException será lançada.

Por exemplo, considere esta fonte de página:

<html>
<body>
<form id="loginForm"> <input
name="username" type="text" /> <input name="password"
type="password" /> <input name="continue" type="submit "
value="Login" /> <input name="continue" type="button" value="Clear" /> </form> </
body> </html>

Os elementos de nome de usuário e senha podem ser localizados assim:

nome de usuário = driver.find_element(By.NAME, 'username') senha =


driver.find_element(By.NAME, 'password')

Isso dará o botão “Login” como ocorre antes do botão “Clear”:

18 Capítulo 4. Localizando Elementos


Machine Translated by Google

Selenium Python Bindings, Versão 2

continue = driver.find_element(By.NAME, 'continue')

4.3 Localizando por XPath

XPath é a linguagem usada para localizar nós em um documento XML. Como o HTML pode ser uma implementação de XML (XHTML), os usuários do
Selenium podem aproveitar essa poderosa linguagem para direcionar elementos em seus aplicativos da web. XPath oferece suporte a métodos simples de
localização por atributos de id ou nome e os estende abrindo todos os tipos de novas possibilidades, como localizar a terceira caixa de seleção na página.

Uma das principais razões para usar o XPath é quando você não tem um atributo id ou name adequado para o elemento que deseja localizar. Você pode
usar XPath para localizar o elemento em termos absolutos (não recomendado) ou relativo a um elemento que tenha um atributo id ou name. Os
localizadores XPath também podem ser usados para especificar elementos por meio de atributos diferentes de id e nome.

Os XPaths absolutos contêm a localização de todos os elementos da raiz (html) e, como resultado, provavelmente falharão com apenas o menor ajuste no
aplicativo. Ao localizar um elemento próximo com um atributo id ou name (idealmente um elemento pai), você pode localizar seu elemento de destino com
base no relacionamento. Isso tem muito menos probabilidade de mudar e pode tornar seus testes mais robustos.

Por exemplo, considere esta fonte de página:

<html>
<body>
<form id="loginForm"> <input
name="username" type="text" /> <input name="password"
type="password" /> <input name="continue" type="submit "
value="Login" /> <input name="continue" type="button" value="Clear" /> </form> </
body> </html>

Os elementos do formulário podem ser localizados assim:

login_form = driver.find_element(By.XPATH, "/html/body/form[1]") login_form =


driver.find_element(By.XPATH, "//form[1]") login_form = driver.find_element(By.XPATH , "//
form[@id='loginForm']")

1. Caminho absoluto (quebraria se o HTML fosse alterado apenas ligeiramente)

2. Primeiro elemento de formulário no HTML

3. O elemento de formulário com ID de atributo definido como loginForm

O elemento username pode ser localizado assim:

nome de usuário = driver.find_element(By.XPATH, "//form[input/@name='nome de usuário']") nome de usuário =


driver.find_element(By.XPATH, "//form[@id='loginForm']/input [1]") nome de usuário = driver.find_element(By.XPATH,
"//input[@name='username']")

1. Primeiro elemento de formulário com um elemento filho de entrada com nome definido como nome de usuário

2. Primeiro insira o elemento filho do elemento de formulário com id de atributo definido como loginForm

3. Primeiro elemento de entrada com nome de atributo definido como nome de usuário

O elemento do botão “Limpar” pode ser localizado assim:

4.3. Localização por XPath 19


Machine Translated by Google

Selenium Python Bindings, Versão 2

clear_button = driver.find_element(By.XPATH, "//input[@name='continue'][@type='button ÿÿ']") clear_button =


driver.find_element(By.XPATH, "//form[@ id='loginForm']/input[4]")

1. Entrada com nome de atributo definido para continuar e tipo de atributo definido como botão

2. Quarto elemento filho de entrada do elemento de formulário com ID de atributo definido como loginForm

Esses exemplos cobrem alguns conceitos básicos, mas para aprender mais, as seguintes referências são recomendadas:

• Tutorial XPath do W3Schools

• Recomendação W3C XPath

• Tutorial XPath - com exemplos interativos.

Aqui estão alguns complementos muito úteis que podem ajudar a descobrir o XPath de um elemento:

• xPath Finder - Plugin para obter os elementos xPath.

• Auxiliar XPath - para Google Chrome

4.4 Localizando hiperlinks pelo texto do link

Use isso quando souber o texto do link usado em uma marca de âncora. Com esta estratégia, o primeiro elemento com o texto do link correspondente
ao valor fornecido será retornado. Se nenhum elemento tiver um atributo de texto de link correspondente, uma NoSuchElementException será lançada.

Por exemplo, considere esta fonte de página:

<html>
<body>
<p>Tem certeza de que deseja fazer isso?</p> <a
href="continue.html">Continuar</a> <a
href="cancel.html">Cancelar</a> < /corpo> </html>

O link continue.html pode ser localizado assim:

continue_link = driver.find_element(By.LINK_TEXT, 'Continue') continue_link =


driver.find_element(By.PARTIAL_LINK_TEXT, 'Continue')

4.5 Localizando Elementos por Nome de Tag

Use isso quando quiser localizar um elemento pelo nome da marca. Com esta estratégia, será retornado o primeiro elemento com o nome da tag
informado. Se nenhum elemento tiver um nome de tag correspondente, uma NoSuchElementException será gerada.

Por exemplo, considere esta fonte de página:

<html>
<body>
<h1>Bem-vindo</h1>
<p>O conteúdo do site vai aqui.</p> </body>
</html>

20 Capítulo 4. Localizando Elementos


Machine Translated by Google

Selenium Python Bindings, Versão 2

O elemento cabeçalho (h1) pode ser localizado assim:

cabeçalho1 = driver.find_element(By.TAG_NAME, 'h1')

4.6 Localizando Elementos por Nome de Classe

Use isso quando quiser localizar um elemento pelo nome da classe. Com essa estratégia, o primeiro elemento com o atributo de nome de
classe correspondente será retornado. Se nenhum elemento tiver um atributo de nome de classe correspondente, uma
NoSuchElementException será lançada.

Por exemplo, considere esta fonte de página:

<html>
<body>
<p class="content"> O conteúdo do site vai aqui.</p> </body> </html>

O elemento “p” pode ser localizado assim:

content = driver.find_element(By.CLASS_NAME, 'content')

4.7 Localizando Elementos por Seletores CSS

Use isso quando quiser localizar um elemento usando o seletor CSS sintaxe. Com esta estratégia, o primeiro elemento correspondente ao
seletor CSS fornecido será retornado. Se nenhum elemento corresponder ao seletor CSS fornecido, uma NoSuchElementException será
lançada.

Por exemplo, considere esta fonte de página:

<html>
<body>
<p class="content"> O conteúdo do site vai aqui.</p> </body> </html>

O elemento “p” pode ser localizado assim:

content = driver.find_element(By.CSS_SELECTOR, 'p.content')

Sauce Labs tem boa documentação em seletores CSS.

4.6. Localizando Elementos por Nome de Classe 21


Machine Translated by Google

Selenium Python Bindings, Versão 2

22 Capítulo 4. Localizando Elementos


Machine Translated by Google

CAPÍTULO 5

espera

Atualmente, a maioria dos aplicativos da web está usando técnicas AJAX. Quando uma página é carregada pelo navegador, os elementos
dessa página podem ser carregados em diferentes intervalos de tempo. Isso dificulta a localização de elementos: se um elemento ainda não
estiver presente no DOM, uma função de localização gerará uma exceção ElementNotVisibleException. Usando esperas, podemos resolver
esse problema. A espera fornece alguma folga entre as ações executadas - principalmente localizar um elemento ou qualquer outra operação
com o elemento.

O Selenium Webdriver fornece dois tipos de espera - implícito e explícito. Uma espera explícita faz com que o WebDriver espere que uma
determinada condição ocorra antes de prosseguir com a execução. Uma espera implícita faz com que o WebDriver pesquise o DOM por um
determinado período de tempo ao tentar localizar um elemento.

5.1 Esperas Explícitas

Uma espera explícita é um código que você define para aguardar a ocorrência de uma determinada condição antes de prosseguir no código.
O caso extremo disso é time.sleep(), que define a condição para um período de tempo exato de espera. Existem alguns métodos de
conveniência fornecidos que o ajudam a escrever código que aguardará apenas o tempo necessário. WebDriverWait em combinação com
ExpectedCondition é uma maneira de fazer isso.

de selenium importar webdriver de


selenium.webdriver.common.by importar By de
selenium.webdriver.support.wait importar WebDriverWait de selenium.webdriver.support
importar esperadas_condições como EC

driver = webdriver.Firefox() driver.get("http://


somedomain/url_that_delays_loading") tente: element = WebDriverWait(driver,
10).until(

EC.presence_of_element_located((By.ID, "myDynamicElement"))

) finalmente:
driver.quit()

23
Machine Translated by Google

Selenium Python Bindings, Versão 2

No código acima, o Selenium esperará no máximo 10 segundos para que um elemento que corresponda aos critérios fornecidos seja encontrado.
Se nenhum elemento for encontrado nesse tempo, um TimeoutException será lançado. Por padrão, WebDriverWait chama ExpectedCondition a
cada 500 milissegundos até retornar com sucesso. ExpectedCondition retornará true (Boolean) em caso de sucesso ou não nulo se falhar em
localizar um elemento.

Condições esperadas

Existem algumas condições comuns que são frequentemente usadas ao automatizar os navegadores da web. Abaixo estão os nomes de cada um.
A ligação Selenium Python fornece alguns métodos convenientes portanto, você não precisa codificar uma classe de condição_esperada por conta
própria ou criar seu próprio pacote de utilitários para ela.

• title_is

• título_contém

• presença_do_elemento_localizado

• visibilidade_do_elemento_localizado

• visibilidade_de

• presença_de_todos_elementos_localizados

• text_to_be_present_in_element

• text_to_be_present_in_element_value

• frame_to_be_available_and_switch_to_it

• invisibilidade_do_elemento_localizado

• element_to_be_clickable

• staleness_of

• elemento_a_ser_selecionado

• element_located_to_be_selected

• element_selection_state_to_be

• element_located_selection_state_to_be

• alert_is_present

de selenium.webdriver.support , importe as condições esperadas como EC

wait = WebDriverWait(driver, 10) element =


wait.until(EC.element_to_be_clickable((By.ID, 'someid')))

O módulo Expected_conditions contém um conjunto de condições predefinidas para usar com WebDriverWait.

Condições de espera personalizadas

Você também pode criar condições de espera personalizadas quando nenhum dos métodos de conveniência anteriores atender aos seus requisitos.
Uma condição de espera personalizada pode ser criada usando uma classe com o método __call__ que retorna False quando a condição não
corresponde.

classe element_has_css_class(objeto):
"""Uma expectativa para verificar se um elemento possui uma classe CSS específica.

localizador - usado para encontrar o elemento

retorna o WebElement assim que tiver a classe css específica


"""

def __init__(self, localizador, css_class):


(continua na próxima página)

24 Capítulo 5. Esperas
Machine Translated by Google

Selenium Python Bindings, Versão 2

(continuação da página anterior)


self.locator = localizador
self.css_class = css_class

def __call__(self, driver):


element = driver.find_element(*self.locator) # Encontrando o elemento referenciado if self.css_class in element.get_attribute("class"):

elemento de retorno
outro:
retorna falso

# Espera até que um elemento com id='myNewInput' tenha classe 'myCSSClass' wait = WebDriverWait(driver,
10) element = wait.until(element_has_css_class((By.ID, 'myNewInput'), "myCSSClass"))

Nota: Biblioteca polling2

Você também pode considerar o uso de polling2 biblioteca que você precisa instalar separadamente.

5.2 Esperas implícitas

Uma espera implícita informa ao WebDriver para pesquisar o DOM por um determinado período de tempo ao tentar localizar qualquer elemento
(ou elementos) não imediatamente disponível. A configuração padrão é 0 (zero). Depois de definida, a espera implícita é definida para a vida útil
do objeto WebDriver.

do selenium import webdriver

driver = webdriver.Firefox()
driver.implicitly_wait(10) # segundos driver.get("http://
somedomain/url_that_delays_loading") myDynamicElement =
driver.find_element_by_id("myDynamicElement")

5.2. Esperas implícitas 25


Machine Translated by Google

Selenium Python Bindings, Versão 2

26 Capítulo 5. Esperas
Machine Translated by Google

CAPÍTULO 6

Objetos de página

Este capítulo é um tutorial de introdução ao padrão de design Page Objects. Um objeto de página representa uma área onde o teste interage na interface
com o usuário do aplicativo da web.

Benefícios de usar o padrão de objeto de página:

• Casos de teste fáceis de ler

• Criação de código reutilizável que pode ser compartilhado em vários casos de teste

• Reduzir a quantidade de código duplicado

• Se a interface do usuário for alterada, a correção precisará ser alterada em apenas um local

6.1 Caso de teste

Aqui está um caso de teste que procura uma palavra no site python.org e garante alguns resultados. A seção a seguir apresentará o módulo de página
onde os objetos de página serão definidos.

import unittest da
página de importação do selenium import
webdriver

class PythonOrgSearch(unittest.TestCase):
"""Uma classe de teste de amostra para mostrar como o objeto de página funciona"""

def setUp(self): self.driver


= webdriver.Firefox() self.driver.get("http://
www.python.org")

def test_search_in_python_org(self):
"""Testa o recurso de pesquisa do python.org. Pesquisa a palavra "pycon" e verifica se alguns resultados são
exibidos. Observe que ele não procura nenhum texto específico na página de resultados da pesquisa. Esse
teste verifica se os resultados não estavam vazios. """

(continua na próxima página)

27
Machine Translated by Google

Selenium Python Bindings, Versão 2

(continuação da página anterior)

#Carregue a página principal. Nesse caso, a página inicial do Python.org. main_page = page.MainPage(self.driver)

#Verifica se a palavra "Python" está no título


self.assertTrue(main_page.is_title_matches(), "python.org title does not match.
ÿÿ")
#Define o texto da caixa de texto de pesquisa como "pycon"
main_page.search_text_element = "pycon" main_page.click_go_button()
search_results_page = page.SearchResultsPage(self.driver)

#Verifica se a página de resultados não está vazia


self.assertTrue(search_results_page.is_results_found(), "Nenhum resultado encontrado.")

def derrubar(self):
self.driver.close()

if __name__ == "__main__": unittest.main()

6.2 Classes de objetos de página

O padrão de objeto de página pretende criar um objeto para cada parte de uma página da web. Essa técnica ajuda a criar uma
separação entre o código de teste e o código real que interage com a página da web.

O page.py ficará assim:

do elemento import BasePageElement dos localizadores


import MainPageLocators

classe SearchTextElement(BasePageElement):
"""Esta classe obtém o texto de pesquisa do localizador especificado"""

#O localizador da caixa de pesquisa onde a string de pesquisa é inserida locator = 'q'

classe BasePage(objeto):
"""Classe base para inicializar a página base que será chamada de todas as páginas"""

def __init__(self, driver):


self.driver = motorista

class MainPage(BasePage): """Os métodos


de ação da página inicial vêm aqui. Ou seja, Python.org"""

#Declara uma variável que conterá o texto recuperado


search_text_element = SearchTextElement()

def is_title_matches(self):
"""Verifica se o texto codificado "Python" aparece no título da página"""

retorna "Python" em self.driver.title


(continua na próxima página)

28 Capítulo 6. Objetos de página


Machine Translated by Google

Selenium Python Bindings, Versão 2

(continuação da página anterior)

def click_go_button(self):
"""Aciona a pesquisa"""

element = self.driver.find_element(*MainPageLocators.GO_BUTTON) element.click()

classe SearchResultsPage(BasePage):
"""Os métodos de ação da página de resultados de pesquisa vêm aqui"""

def is_results_found(self):
# Provavelmente deve procurar por este texto no elemento específico da página #, mas por
enquanto funciona bem, retorne "Nenhum resultado encontrado." não em self.driver.page_source

6.3 Elementos da página

O element.py ficará assim:

de selenium.webdriver.support.ui importar WebDriverWait

classe BasePageElement(objeto):
"""Classe de página base que é inicializada em cada classe de objeto de página."""

def __set__(self, obj, valor):


"""Define o texto para o valor fornecido"""

driver = obj.driver
WebDriverWait(driver, 100).until( lambda driver:
driver.find_element_by_name(self.locator))
driver.find_element_by_name(self.locator).clear()
driver.find_element_by_name(self.locator).send_keys(value)

def __get__(self, obj, owner):


"""Obtém o texto do objeto especificado"""

driver = obj.driver
WebDriverWait(driver, 100).until( lambda driver:
driver.find_element_by_name(self.locator))
element = driver.find_element_by_name(self.locator) return element.get_attribute("value")

6.4 Localizadores

Uma das práticas é separar as strings do localizador do local onde estão sendo utilizadas. Neste exemplo, os
localizadores da mesma página pertencem à mesma classe.
O locators.py ficará assim:

6.3. Elementos da página 29


Machine Translated by Google

Selenium Python Bindings, Versão 2

de selenium.webdriver.common.by importar por

class MainPageLocators(object): """Uma classe para


localizadores de página principal. Todos os localizadores de página principal devem vir aqui"""

GO_BUTTON = (Por.ID, 'enviar')

classe SearchResultsPageLocators(objeto):
"""Uma classe para localizadores de resultados de pesquisa. Todos os localizadores de resultados de pesquisa devem
venha aqui"""

passar

30 Capítulo 6. Objetos de página


Machine Translated by Google

CAPÍTULO 7

API do WebDriver

Nota: Esta não é uma documentação oficial. A documentação oficial da API está disponível aqui.

Este capítulo cobre todas as interfaces do Selenium WebDriver.

Estilo de importação recomendado

As definições de API neste capítulo mostram a localização absoluta das classes. No entanto, o estilo de importação recomendado é o
seguinte:

do selenium import webdriver

Então, você pode acessar as classes assim:

webdriver.Firefox
webdriver.FirefoxProfile
webdriver.Chrome
webdriver.ChromeOptions
webdriver.Ie
webdriver.Opera
webdriver.PhantomJS
webdriver.Remote
webdriver.DesiredCapabilities
webdriver.ActionChains
webdriver.TouchActions
webdriver.Proxy

A classe de chaves especiais (Keys) pode ser importada assim:

from selenium.webdriver.common.keys import Keys

As classes de exceção podem ser importadas assim (substitua TheNameOfTheExceptionClass pelo nome de classe real fornecido
abaixo):

31
Machine Translated by Google

Selenium Python Bindings, Versão 2

from selenium.common.exceptions import [TheNameOfTheExceptionClass]

Convenções usadas na API

Alguns atributos podem ser chamados (ou métodos) e outros não podem ser chamados (propriedades). Todos os atributos que podem ser chamados
terminam com colchetes.

Aqui está um exemplo de propriedade:

• url_atual

URL da página atualmente carregada.

Uso:

driver.current_url

Aqui está um exemplo de um método:

• fechar()

Fecha a janela atual.

Uso:

driver.close()

7.1 Exceções

Exceções que podem acontecer em todo o código do webdriver.

exceção selenium.common.exceptions.ElementClickInterceptedException(msg:

Opcional[str]
=
Nenhum,
tela:

Opcional[str]
=

Nenhum, pilha
vestígio:

Opcional[Sequência[str]]
=
Nenhum)
Bases: selenium.common.exceptions.WebDriverException

O comando Element Click não pôde ser concluído porque o elemento que recebe os eventos está ocultando o elemento que foi
solicitado para ser clicado.

32 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

exceção selenium.common.exceptions.ElementNotInteractableException(msg:

Opcional[str]
=
Nenhum,
tela:

Opcional[str]
=

Nenhum, pilha
vestígio:

Opcional[Sequência[str]]
=
Nenhum)
Bases: selenium.common.exceptions.InvalidElementStateException

Lançado quando um elemento está presente no DOM, mas as interações com esse elemento atingirão outro elemento devido à
ordem de pintura

exceção selenium.common.exceptions.ElementNotSelectableException(msg: Op tional[str]

= Nenhum,
tela:

Opcional[str]
= Nenhum,
rastreamento
de pilha:
Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.InvalidElementStateException

Lançado ao tentar selecionar um elemento não selecionável.

Por exemplo, selecionando um elemento 'script'.

exceção selenium.common.exceptions.ElementNotVisibleException(msg: tional[str] = Nenhum, tela: Opcional[str] Op

= Nenhum, pilha
vestígio:

Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.InvalidElementStateException

Lançado quando um elemento está presente no DOM, mas não é visível e, portanto, não pode ser interagido.

Mais comumente encontrado ao tentar clicar ou ler o texto de um elemento que está oculto na visualização.

7.1. Exceções 33
Machine Translated by Google

Selenium Python Bindings, Versão 2

exceção selenium.common.exceptions.ImeActivationFailedException(msg: Opcional[str]

= Nenhum,
tela:
Opcional[str]
= Nenhum,
pilha
trace:
Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Lançado quando a ativação de um mecanismo IME falhou.

exceção selenium.common.exceptions.ImeNotAvailableException(msg: tional[str] Op


=
tela:

Nenhum, Opcional[str]
= Nenhum, pilha
vestígio:

Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Lançado quando o suporte IME não está disponível. Essa exceção é lançada para cada chamada de método relacionada a IME se o
suporte a IME não estiver disponível na máquina.

exceção selenium.common.exceptions.InsecureCertificateException(msg: Opcional[str]

= Nenhum,
tela:
Opcional[str]
= Nenhum,
pilha
trace:
Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

A navegação fez com que o agente do usuário atingisse um aviso de certificado, que geralmente é o resultado de um certificado TLS
expirado ou inválido.

exceção selenium.common.exceptions.InvalidArgumentException(msg: tional[str] Op


=
tela:

Nenhum, Opcional[str]
= Nenhum, pilha
vestígio:

Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Os argumentos passados para um comando são inválidos ou malformados.

34 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

exceção selenium.common.exceptions.InvalidCookieDomainException(msg: Opcional[str]

= Nenhum,
tela:
Opcional[str]
= Nenhum,
pilha
trace:
Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Lançado ao tentar adicionar um cookie em um domínio diferente do URL atual.

exceção selenium.common.exceptions.InvalidCoordinatesException(msg: Op
cional[str]
=
Nenhum, tela:
Opcional[str] =
Nenhum,
rastreamento
de pilha: Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

As coordenadas fornecidas para a operação de uma interação são inválidas.

exceção selenium.common.exceptions.InvalidElementStateException(msg: Opcional[str]

= Nenhum,
tela:
Opcional[str]
= Nenhum,
pilha
trace:
Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Lançado quando um comando não pôde ser concluído porque o elemento está em um estado inválido.

Isso pode ser causado pela tentativa de limpar um elemento que não é editável e redefinível.

exceção selenium.common.exceptions.InvalidSelectorException(msg: tional[str] Op


=
tela:

Nenhum, Opcional[str]
= Nenhum, pilha
vestígio:

Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Lançado quando o seletor que é usado para localizar um elemento não retorna um WebElement. Atualmente, isso só
acontece quando o seletor é uma expressão xpath e é sintaticamente inválido (ou seja, não é uma expressão xpath) ou a
expressão não seleciona WebElements (por exemplo, “count(//input)”).

7.1. Exceções 35
Machine Translated by Google

Selenium Python Bindings, Versão 2

exceção selenium.common.exceptions.InvalidSessionIdException(msg: Opcional[str] = Nenhum, tela: Opcional[str]

= Nenhum, pilha
vestígio:

Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Ocorre se o ID de sessão fornecido não estiver na lista de sessões ativas, o que significa que a sessão não existe ou não está
ativa.

exceção selenium.common.exceptions.InvalidSwitchToTargetException(msg:

Opcional[str]
= Nenhum,
tela:

Opcional[str]
= Nenhum,
pilha
vestígio:

Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Lançado quando o alvo do quadro ou da janela a ser alternado não existe.

exceção selenium.common.exceptions.JavascriptException(msg: Opcional[str]


= Nenhum, tela: Opcional[str]
= Nenhum, stacktrace:

Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Ocorreu um erro ao executar o JavaScript fornecido pelo usuário.

exceção selenium.common.exceptions.MoveTargetOutOfBoundsException(msg:

Opcional[str]
= Nenhum,
tela:

Opcional[str]
= Nenhum,
pilha
vestígio:

Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Lançado quando o destino fornecido ao método move() ActionsChains é inválido, ou seja, fora do documento.

36 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

exceção selenium.common.exceptions.NoAlertPresentException(msg: Opcional[str]


= Nenhum, tela:
Opcional[str]
= Nenhum, pilha
vestígio:

Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Lançado ao alternar para nenhum alerta apresentado.

Isso pode ser causado pela chamada de uma operação na classe Alert() quando um alerta ainda não está na tela.

exceção selenium.common.exceptions.NoSuchAttributeException(msg: tional[str] Op


=
tela:

Nenhum, Opcional[str]
= Nenhum, pilha
vestígio:

Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Lançado quando o atributo do elemento não pôde ser encontrado.

Você pode verificar se o atributo existe no navegador específico em que está testando. Alguns navegadores podem ter nomes de
propriedade diferentes para a mesma propriedade. (.innerText do IE8 vs. Firefox .textContent)

exceção selenium.common.exceptions.NoSuchCookieException(msg: Opcional[str]


= Nenhum, tela:
Opcional[str] = Nenhum,
stacktrace:
Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Nenhum cookie correspondente ao nome de caminho fornecido foi encontrado entre os cookies associados do documento ativo do
contexto de navegação atual.

exceção selenium.common.exceptions.NoSuchElementException(msg: Opcional[str]


= Nenhum, tela:
Opcional[str] = Nenhum,
stacktrace:
Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Lançado quando o elemento não pôde ser encontrado.

Se você encontrar essa exceção, verifique o seguinte:

• Verifique seu seletor usado em seu find_by. . .

• O elemento pode ainda não estar na tela no momento da operação de localização (a página da Web ainda está sendo carregada).
Consulte selenium.webdriver.support.wait.WebDriverWait() para saber como escrever um wrapper de espera para aguardar a
exibição de um elemento.

7.1. Exceções 37
Machine Translated by Google

Selenium Python Bindings, Versão 2

exceção selenium.common.exceptions.NoSuchFrameException(msg: Opcional[str]


= Nenhum, tela:
Opcional[str] = Nenhum,
stacktrace:
Opcional[Sequência[str]] =
Nenhum)
Bases: selenium.common.exceptions.InvalidSwitchToTargetException

Lançado quando o alvo do quadro a ser trocado não existe.

exceção selenium.common.exceptions.NoSuchShadowRootException(msg: Opcional[str] = Nenhum, tela: Opcional[str]

= Nenhum, pilha
vestígio:

Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Lançado ao tentar acessar a raiz de sombra de um elemento quando ele não possui uma raiz de sombra anexada.

exceção selenium.common.exceptions.NoSuchWindowException(msg: Opcional[str]


= Nenhum, tela:
Opcional[str] = Nenhum,
stacktrace:
Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.InvalidSwitchToTargetException

Lançado quando o destino da janela a ser trocado não existe.

Para localizar o conjunto atual de identificadores de janela ativos, você pode obter uma lista dos identificadores de janela ativos da seguinte
maneira:

imprimir driver.window_handles

exceção selenium.common.exceptions.ScreenshotException(msg: Opcional[str]


= Nenhum, tela: Opcional[str]
= Nenhum, stacktrace:
Opcional[Sequência[str]]

= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Uma captura de tela tornou-se impossível.

exceção selenium.common.exceptions.SeleniumManagerException(msg: tional[str] Op


=
tela:

Nenhum, Opcional[str]
= Nenhum, pilha
vestígio:

Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Gerado quando ocorre um problema de interação com o gerenciador de selênio.

38 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

exceção selenium.common.exceptions.SessionNotCreatedException(msg: Opcional[str] = Nenhum, tela: Opcional[str]

= Nenhum, pilha
vestígio:

Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Não foi possível criar uma nova sessão.

exceção selenium.common.exceptions.StaleElementReferenceException(msg:

Opcional[str]
= Nenhum,
tela:

Opcional[str]
= Nenhum,
pilha
vestígio:

Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Lançado quando uma referência a um elemento agora é "velho".

Stale significa que o elemento não aparece mais no DOM da página.

Possíveis causas de StaleElementReferenceException incluem, mas não se limitam a:

• Você não está mais na mesma página ou a página pode ter sido atualizada desde que o elemento foi localizado.

• O elemento pode ter sido removido e adicionado novamente à tela, desde que foi localizado. Como um elemento sendo
realocado. Isso pode acontecer normalmente com uma estrutura javascript quando os valores são atualizados e o nó é
reconstruído.

• O elemento pode estar dentro de um iframe ou outro contexto que foi atualizado.

exceção selenium.common.exceptions.TimeoutException(msg: Opcional[str] = Nenhum, Opcional[str] = Nenhum, stacktrace:


tela: Opcional[Sequência[str]]

=
Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Lançado quando um comando não é concluído em tempo suficiente.

exceção selenium.common.exceptions.UnableToSetCookieException(msg: Opcional[str] = Nenhum, tela: Opcional[str]

= Nenhum, pilha
vestígio:

Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Lançado quando um driver falha ao definir um cookie.

7.1. Exceções 39
Machine Translated by Google

Selenium Python Bindings, Versão 2

exceção selenium.common.exceptions.UnexpectedAlertPresentException(msg:

Opcional[str]
=
Nenhum,
tela:

Opcional[str]
=

Nenhum, pilha
vestígio:

Opcional[Sequência[str]]
=

Nenhum, alert_text:

Opcional[str]
=
Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Lançado quando um alerta inesperado apareceu.

Geralmente gerado quando um modal inesperado está impedindo o webdriver de executar comandos.

__init__(msg: Opcional[str] = Nenhum, tela: Opcional[str] = Nenhum, stacktrace: Opcional[Sequência[str]] = Nenhum,


alert_text: Opcional[str] = Nenhum) ÿ Nenhum Inicializar self. Consulte help(type(self)) para obter uma
assinatura precisa.

exceção selenium.common.exceptions.UnexpectedTagNameException(msg: Opcional[str] = Nenhum, tela: Opcional[str]

= Nenhum, pilha
vestígio:

Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

Lançado quando uma classe de suporte não obteve um elemento da web esperado.

exceção selenium.common.exceptions.UnknownMethodException(msg: Opcional[str]


= Nenhum, tela:
Opcional[str] = Nenhum,
stacktrace:
Opcional[Sequência[str]]
= Nenhum)
Bases: selenium.common.exceptions.WebDriverException

O comando solicitado corresponde a um URL conhecido, mas não corresponde a nenhum método para esse URL.

exceção selenium.common.exceptions.WebDriverException(msg: Opcional[str]


= Nenhum, tela: Opcional[str] =
Nenhum, stacktrace:

Opcional[Sequência[str]]
= Nenhum)

40 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

Bases: Exceção

Exceção do driver da web base.

__init__(msg: Opcional[str] = Nenhum, tela: Opcional[str] = Nenhum, stacktrace: Op


tional[Sequence[str]] = None) ÿ None Inicializa
self. Consulte help(type(self)) para obter uma assinatura precisa.

7.2 Cadeias de Ação

A implementação ActionChains,

classe selenium.webdriver.common.action_chains.ActionChains(driver, tion=250) dura

Bases: objeto

ActionChains são uma maneira de automatizar interações de baixo nível, como movimentos do mouse, ações do botão do mouse,
pressionamento de tecla e interações do menu de contexto. Isso é útil para realizar ações mais complexas, como passar o mouse e
arrastar e soltar.

Gerar ações do usuário. Quando você chama métodos para ações no objeto ActionChains, as ações são armazenadas em uma fila no
objeto ActionChains. Quando você chama perform(), os eventos são acionados na ordem em que são enfileirados.

ActionChains pode ser usado em um padrão de cadeia:

menu = driver.find_element(By.CSS_SELECTOR, ".nav") hidden_submenu =


driver.find_element(By.CSS_SELECTOR, ".nav #submenu1")

ActionChains(driver).move_to_element(menu).click(hidden_submenu).perform()

Ou as ações podem ser enfileiradas uma a uma e depois executadas.:

menu = driver.find_element(By.CSS_SELECTOR, ".nav") hidden_submenu =


driver.find_element(By.CSS_SELECTOR, ".nav #submenu1")

ações = ActionChains(driver)
actions.move_to_element(menu)
actions.click(hidden_submenu)
ações.perform()

De qualquer forma, as ações são executadas na ordem em que são chamadas, uma após a outra.

__init__(condutor, duração=250)
Cria um novo ActionChains.

argumentos

• driver: A instância do WebDriver que executa as ações do usuário.

• duração: substitui os 250 msegs padrão de DEFAULT_MOVE_DURATION no ponteiro


Entrada

click(on_element=Nenhum)
Clica em um elemento.

argumentos

• on_element: O elemento para clicar. Se Nenhum, clica na posição atual do mouse.

7.2. cadeias de ação 41


Machine Translated by Google

Selenium Python Bindings, Versão 2

click_and_hold(on_element=Nenhum)
Mantém pressionado o botão esquerdo do mouse em um elemento.

argumentos

• on_element: O elemento para o mouse para baixo. Se Nenhum, clica na posição atual do mouse.

context_click(on_element=Nenhum)

Executa um clique de contexto (clique com o botão direito) em um elemento.

argumentos

• on_element: O elemento para clicar no contexto. Se Nenhum, clica na posição atual do mouse.

double_click(on_element=Nenhum)
Clique duas vezes em um elemento.

argumentos

• on_element: O elemento para clicar duas vezes. Se Nenhum, clica na posição atual do mouse.

drag_and_drop(origem, destino)

Mantém pressionado o botão esquerdo do mouse no elemento de origem, move-se para o elemento de destino e solta
o botão do mouse.

argumentos

• fonte: O elemento para o mouse para baixo.

• target: O elemento para o mouse para cima.

drag_and_drop_by_offset(fonte, xoffset, yoffset)

Mantém pressionado o botão esquerdo do mouse no elemento de origem, então move para o deslocamento de destino e libera
o botão do mouse.

argumentos

• fonte: O elemento para o mouse para baixo.

• xoffset: deslocamento X para o qual mover.

• yoffset: deslocamento Y para o qual mover.

key_down(valor, elemento=Nenhum)

Envia apenas um pressionamento de tecla, sem soltá-la. Deve ser usado apenas com teclas modificadoras (Control, Alt e
Mudança).

argumentos

• value: A tecla modificadora a ser enviada. Os valores são definidos na classe Keys.

• elemento: O elemento para enviar as chaves. Se Nenhum, envia uma chave para o elemento em foco atual.

Exemplo, pressionando ctrl+c:

ActionChains(driver).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.
ÿÿCONTROL).perform()

key_up(valor, elemento=Nenhum)
Libera uma tecla modificadora.

42 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

argumentos

• value: A tecla modificadora a ser enviada. Os valores são definidos na classe Keys.

• elemento: O elemento para enviar as chaves. Se Nenhum, envia uma chave para o elemento em foco atual.

Exemplo, pressionando ctrl+c:

ActionChains(driver).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.
ÿÿCONTROL).perform()

move_by_offset(xoffset, yoffset)
Mover o mouse para um deslocamento da posição atual do mouse.

argumentos

• xoffset: deslocamento X para o qual mover, como um número inteiro positivo ou negativo.

• yoffset: Deslocamento Y para o qual mover, como um inteiro positivo ou negativo.

move_to_element(to_element)
Mover o mouse para o meio de um elemento.

argumentos

• to_element: O WebElement para o qual mover.

move_to_element_with_offset(to_element, xoffset, yoffset)

Mova o mouse por um deslocamento do elemento especificado. Os deslocamentos são relativos ao canto superior esquerdo da
elemento.

argumentos

• to_element: O WebElement para o qual mover.

• xoffset: deslocamento X para o qual mover.

• yoffset: deslocamento Y para o qual mover.

pausa(segundos)
Pausar todas as entradas pela duração especificada em segundos

executar()
Executa todas as ações armazenadas.

release(on_element=None)
Liberar um botão do mouse pressionado em um elemento.

argumentos

• on_element: O elemento para o mouse para cima. Se Nenhum, libera na posição atual do mouse.

reset_actions()
Limpa as ações que já estão armazenadas localmente e na extremidade remota

scroll(x: int, y: int, delta_x: int, delta_y: int, duração: int = 0, origem: str = 'viewport')
Envia informações de rolagem da roda para o navegador para serem processadas.

argumentos

• x: coordenada X inicial

• y: coordenada Y inicial

• delta_x: a distância que o mouse percorrerá no eixo x

7.2. cadeias de ação 43


Machine Translated by Google

Selenium Python Bindings, Versão 2

• delta_y: a distância que o mouse percorrerá no eixo y

scroll_by_amount(delta_x: int, delta_y: int)


Rola por valores fornecidos com a origem no canto superior esquerdo da janela de visualização.

argumentos

• delta_x: Distância ao longo do eixo X para rolar usando a roda. Um valor negativo rola para a esquerda.

• delta_y: Distância ao longo do eixo Y para rolar usando a roda. Um valor negativo rola para cima.

scroll_from_origin(scroll_origin: selenium.webdriver.common.actions.wheel_input.ScrollOrigin, delta_x: int, delta_y: int)

Rola por quantidade fornecida com base em uma origem fornecida. A origem da rolagem é o centro de um elemento ou a parte
superior esquerda da viewport mais quaisquer deslocamentos. Se a origem for um elemento e o elemento não estiver na viewport, a
parte inferior do elemento será primeiro rolada para a parte inferior da viewport.

argumentos

• origin: Onde a rolagem se origina (viewport ou centro do elemento) mais os deslocamentos fornecidos.

• delta_x: Distância ao longo do eixo X para rolar usando a roda. Um valor negativo rola para a esquerda.

• delta_y: Distância ao longo do eixo Y para rolar usando a roda. Um valor negativo rola para cima.

Aumenta se a origem com deslocamento estiver fora da viewport. - MoveTargetOutOfBoundsEx


ception - Se a origem com deslocamento estiver fora da viewport.

scroll_to_element(elemento: selenium.webdriver.remote.webelement.WebElement)
Se o elemento estiver fora da viewport, rola a parte inferior do elemento até a parte inferior da viewport.

argumentos

• elemento: Qual elemento rolar para a viewport.

send_keys(*keys_to_send)
Envia chaves para o elemento focado atual.

argumentos

• keys_to_send: As chaves a serem enviadas. As constantes de teclas modificadoras podem ser encontradas na classe 'Chaves'.

send_keys_to_element(elemento, *keys_to_send)
Envia chaves para um elemento.

argumentos

• elemento: O elemento para enviar as chaves.

• keys_to_send: As chaves a serem enviadas. As constantes de teclas modificadoras podem ser encontradas na classe 'Chaves'.

7.3 Alertas

A implementação do Alerta.

classe selenium.webdriver.common.alert.Alert(driver)
Bases: objeto

Permite trabalhar com alertas.

Use esta classe para interagir com prompts de alerta. Ele contém métodos para descartar, aceitar, inserir e obter texto de prompts de alerta.

44 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

Aceitando/descartando prompts de alerta:

Alert(motorista).accept()
Alert(motorista).dismiss()

Inserindo um valor em um prompt de alerta:

name_prompt = Alerta (motorista) name_prompt.send_keys(“Willian Shakesphere”)


name_prompt.accept()

Lendo o texto de um prompt para verificação:

alert_text = Alert(motorista).text self.assertEqual(“Deseja sair?”, alert_text)

__init__(driver)
Cria um novo Alerta.

argumentos

• driver: A instância do WebDriver que executa as ações do usuário.

aceitar()
Aceita o alerta disponível.

Usage:: Alert(driver).accept() # Confirma uma caixa de diálogo de alerta.

liberar()
Dispensa o alerta disponível.

send_keys(keysToSend)
Enviar Chaves para o Alerta.

argumentos

• keysToSend: O texto a ser enviado ao Alert.

texto
Obtém o texto do Alert.

7.4 Teclas Especiais

A implementação das Chaves.

classe selenium.webdriver.common.keys.Keys Bases: objeto

Conjunto de códigos de chaves especiais.

ADICIONAR = '\ue025'

ALT = '\ue00a'

ARROW_DOWN = '\ue015'

ARROW_LEFT = '\ue012'

ARROW_RIGHT = '\ue014'

ARROW_UP = '\ue013'

BACKSPACE = '\ue003'

BACK_SPACE = '\ue003'

CANCELAR = '\ue001'

7.4. Chaves Especiais 45


Machine Translated by Google

Selenium Python Bindings, Versão 2

LIMPAR = '\ue005'
COMANDO = '\ue03d'
CONTROL = '\ue009'
DECIMAL = '\ue028'
APAGAR = '\ue017'
DIVIDIR = '\ue029'
PARA BAIXO = '\ue015'

FIM = '\ue010'
ENTER = '\ue007'
IGUAL = '\ue019'
ESCAPE = '\ue00c'
F1 = '\ue031'
F10 = '\ue03a'
F11 = '\ue03b'
F12 = '\ue03c'
F2 = '\ue032'
F3 = '\ue033'
F4 = '\ue034'
F5 = '\ue035'
F6 = '\ue036'
F7 = '\ue037'
F8 = '\ue038'
F9 = '\ue039'
AJUDA = '\ue002'
HOME = '\ue011'
INSERIR = '\ue016'
ESQUERDA = '\ue012'

LEFT_ALT = '\ue00a'
LEFT_CONTROL = '\ue009'
LEFT_SHIFT = '\ue008'
META = '\ue03d'
MULTIPLICAR = '\ue024'
NULO = '\ue000'
NUMPAD0 = '\ue01a'
NUMPAD1 = '\ue01b'
NUMPAD2 = '\ue01c'

46 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

NUMPAD3 = '\ue01d'

NUMPAD4 = '\ue01e'

NUMPAD5 = '\ue01f'

NUMPAD6 = '\ue020'

NUMPAD7 = '\ue021'

NUMPAD8 = '\ue022'

NUMPAD9 = '\ue023'

PAGE_DOWN = '\ue00f'

PAGE_UP = '\ue00e'

PAUSA = '\ue00b'

RETORNAR = '\ue006'

DIREITA = '\ue014'

SEMÍCOLON = '\ue018'

SEPARADOR = '\ue026'

SHIFT = '\ue008'

ESPAÇO = '\ue00d'

SUBTRAIR = '\ue027'

TAB = '\ue004'

PARA CIMA = '\ue013'

ZENKAKU_HANKAKU = '\ue040'

7.5 Localizar elementos por

Estes são os atributos que podem ser usados para localizar elementos. Veja o capítulo Localizando Elementos para exemplos de uso.

A implementação Por.

classe selenium.webdriver.common.by.By Bases: objeto

Conjunto de estratégias de localizador suportadas.

CLASS_NAME = 'nome da turma'

CSS_SELECTOR = 'seletor de css'

ID = 'id'

LINK_TEXT = 'texto do link'

NOME = 'nome'

PARTIAL_LINK_TEXT = 'texto do link parcial'

TAG_NAME = 'nome da etiqueta'

XPATH = 'xpath'

7.5. Localizar elementos por 47


Machine Translated by Google

Selenium Python Bindings, Versão 2

7.6 Capacidades Desejadas

Consulte a seção Usando o Selenium com WebDriver remoto para obter exemplos de uso dos recursos desejados.

A implementação dos recursos desejados.

classe selenium.webdriver.common.desired_capabilities.DesiredCapabilities
Bases: objeto

Conjunto de recursos desejados com suporte padrão.

Use isso como ponto de partida para criar um objeto de recursos desejado para solicitar webdrivers remotos para
conectar ao servidor Selenium ou grade Selenium.

Exemplo de uso:

do selenium import webdriver

selenium_grid_url = "http://198.0.0.1:4444/wd/hub"

# Crie um objeto de recursos desejado como ponto de partida. capacidades =


DesiredCapabilities.FIREFOX.copy() capacidades['plataforma'] = "WINDOWS"
capacidades['versão'] = "10"

# Instanciar uma instância do Remote WebDriver com os recursos desejados. driver =


webdriver.Remote(desired_capabilities=capacidades,
command_executor=selenium_grid_url)

Nota: Sempre use '.copy()' no objeto DesiredCapabilities para evitar os efeitos colaterais de alterar a instância da
classe Global.

CHROME = {'nome do navegador': 'cromo'}

EDGE = {'browserName': 'MicrosoftEdge'}

FIREFOX = {'acceptInsecureCerts': Verdadeiro, 'browserName': 'firefox', 'moz:debuggerAddre

HTMLUNIT = {'browserName': 'htmlunit', 'plataforma': 'QUALQUER', 'versão': ''}

HTMLUNITWITHJS = {'browserName': 'htmlunit', 'javascriptEnabled': Verdadeiro, 'plataforma':

INTERNETEXPLORER = {'browserName': 'internet explorer', 'platformName': 'windows'}

IPAD = {'browserName': 'iPad', 'plataforma': 'mac', 'versão': ''}

IPHONE = {'browserName': 'iPhone', 'plataforma': 'mac', 'versão': ''}

SAFARI = {'browserName': 'safari', 'platformName': 'mac'}

WEBKITGTK = {'browserName': 'MiniBrowser', 'plataforma': 'QUALQUER', 'versão': ''}

WPEWEBKIT = {'browserName': 'MiniBrowser', 'plataforma': 'QUALQUER', 'versão': ''}

7.7 Ações de toque

7.8 Procuração

A implementação do Proxy.

48 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

classe selenium.webdriver.common.proxy.Proxy(raw=None)
Bases: objeto

Proxy contém informações sobre o tipo de proxy e as configurações de proxy necessárias.

__init__(raw=Nenhum)
Cria um novo proxy.
argumentos

• raw: dados proxy brutos. Se Nenhum, os valores de classe padrão serão usados.

add_to_capabilities(capacidades)
Adiciona informações de proxy como recurso em recursos especificados.

argumentos

• capacidades: As capacidades às quais o proxy será adicionado.

auto_detect Retorna

a configuração de detecção automática.

detecção automática = Falso

''
ftpProxy =

ftp_proxy
Retorna a configuração do proxy ftp.
''
httpProxy =

http_proxy
Retorna a configuração do proxy http.
''
noProxy =

no_proxy
Retorna a configuração noproxy.
''
proxyAutoconfigUrl =

proxyType = {'ff_value': 6, 'string': 'NÃO ESPECIFICADO'}

proxy_autoconfig_url Retorna a
configuração de url de configuração automática do proxy.

proxy_type
Retorna o tipo de proxy como ProxyType.
meiasSenha = ''

''
meiasProxy =
meiasUsername = ''

meiaVersão = Nenhum

meias_senha Retorna
a configuração de senha do proxy meias.

meias_proxy
Retorna a configuração de proxy meias.

meias_usuário Retorna
a configuração de nome de usuário do proxy meias.

7.8. Proxy 49
Machine Translated by Google

Selenium Python Bindings, Versão 2

meias_versão Retorna
a configuração da versão do proxy meias.
''
sslProxy =

ssl_proxy
Retorna a configuração do proxy https.

classe selenium.webdriver.common.proxy.ProxyType Bases: objeto

Conjunto de possíveis tipos de proxy.

Cada tipo de proxy tem 2 propriedades: 'ff_value' é o valor da preferência de perfil do Firefox, 'string' é o id do tipo de proxy.

classmethod load(valor)

AUTODETECT = {'ff_value': 4, 'string': 'AUTODETECT'}

DIRETO = {'ff_value': 0, 'string': 'DIRETO'}

MANUAL = {'ff_value': 1, 'string': 'MANUAL'}

PAC = {'ff_value': 2, 'string': 'PAC'}

RESERVADO_1 = {'ff_value': 3, 'string': 'RESERVADO1'}

SISTEMA = {'ff_value': 5, 'string': 'SISTEMA'}

NÃO ESPECIFICADO = {'ff_value': 6, 'string': 'NÃO ESPECIFICADO'}

classe selenium.webdriver.common.proxy.ProxyTypeFactory
Bases: objeto

Fábrica para tipos de proxy.

make estático (ff_value, string)

7.9 Utilitários

Os métodos Utils.

selenium.webdriver.common.utils.find_connectable_ip(host: Union[str, bytes, bytear ray, Nenhum], porta: Opcional[int]


= Nenhum) ÿ Opcional[str]

Resolva um nome de host para um IP, preferindo endereços IPv4.

Preferimos o IPv4 para não alterar o comportamento das implementações anteriores apenas para IPv4 e porque alguns
drivers (por exemplo, FirefoxDriver) não suportam conexões IPv6.

Se o número da porta opcional for fornecido, apenas os IPs que escutam na porta fornecida serão considerados.

argumentos

• host - um nome de host.

• porta - número de porta opcional.

Retorna Um único endereço IP, como uma string. Se algum endereço IPv4 for encontrado, um será retornado. Caso contrário,
se algum endereço IPv6 for encontrado, um será retornado. Se nenhum, nenhum será retornado.

selenium.webdriver.common.utils.free_port() ÿ int
Determina uma porta livre usando soquetes.

50 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

selenium.webdriver.common.utils.is_connectable(porta: int, host: Opcional[str] = 'local


host') ÿ bool
Tenta se conectar ao servidor na porta para ver se está em execução.

argumentos

• porta - A porta a ser conectada.

selenium.webdriver.common.utils.is_url_connectable(port: Union[int, str]) ÿ bool Tenta se conectar ao servidor HTTP no caminho /status
e porta especificada para ver se ele responde com sucesso.

argumentos

• porta - A porta a ser conectada.

selenium.webdriver.common.utils.join_host_port(host: str, porta: int) ÿ str Junta um nome de host e uma porta.

Esta é uma implementação mínima destinada a lidar com literais IPv6. Por exemplo, _join_host_port('::1', 80) == '[::1]:80'.

argumentos

• host - um nome de host.

• porta - Uma porta inteira.

selenium.webdriver.common.utils.keys_to_typing(value: Iterable[Union[str, int, float]])


ÿ Lista[str]
Processa os valores que serão digitados no elemento.

7.10 Serviço

class selenium.webdriver.common.service.Service(executable: str, port: int = 0, log_file: Union[int, IO[Any]] = -3, env: Op tional[Mapping[Any,
Any]] = None , start_error_message: Opcional[str]
= Nenhum)

Bases: abc.ABC

A classe base abstrata para todos os objetos de serviço. Os serviços normalmente iniciam um programa filho em um novo processo como um
processo intermediário para se comunicar com um navegador.

Parâmetros

• executável – caminho de instalação do executável.

• port – Porta na qual o serviço será executado, o padrão é 0, onde o sistema operacional decidirá.

• log_file – (Opcional) descritor de arquivo (pos int) ou objeto de arquivo com um descritor de arquivo válido.
subprocess.PIPE e subprocess.DEVNULL também são valores válidos.

• env – (Opcional) Mapeamento de variáveis de ambiente para o novo processo, padrão para
os.environ.

__init__(executável: str, port: int = 0, log_file: Union[int, IO[Any]] = -3, env: Op tional[Mapping[Any, Any]] = None, start_error_message:
Optional[str] = None ) ÿ Nenhum
Inicializar auto. Consulte help(type(self)) para obter uma assinatura precisa.

assert_process_still_running() ÿ Nenhum Verifique se o processo


subjacente ainda está em execução.

7.10. Serviço 51
Machine Translated by Google

Selenium Python Bindings, Versão 2

command_line_args() ÿ Lista[str]
Uma lista de argumentos do programa (excluindo o executável).

is_connectable() ÿ bool
Estabelece uma conexão de soquete para determinar se o serviço em execução na porta está acessível.

send_remote_shutdown_command() ÿ Nenhum
Despache uma solicitação HTTP para o endpoint de desligamento do serviço na tentativa de interrompê-lo.

start() ÿ None Inicia o


serviço.

Exceções

• WebDriverException : gerado quando não pode iniciar o serviço ou quando não pode se conectar
ao serviço

stop() ÿ Nenhum
Interrompe o serviço.

service_url
Obtém a url do serviço

7.11 Cache do Aplicativo

A implementação do ApplicationCache.

classe selenium.webdriver.common.html5.application_cache.ApplicationCache(driver)
Bases: objeto

__init__(driver)
Cria um novo Cache de Aplicativo.

argumentos

• driver: A instância do WebDriver que executa as ações do usuário.

VERIFICAÇÃO = 2

BAIXANDO = 3

IDLE = 1

OBSOLETO = 5

SEM CACHE = 0

UPDATE_READY = 4

status
Retorna um status atual do cache do aplicativo.

52 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

7.12 Firefox WebDriver

class selenium.webdriver.firefox.webdriver.WebDriver(firefox_profile=None, fire fox_binary=None, capabilities=None, proxy=None,


exe cutable_path='geckodriver',
options=None,
vice_log_path='geckodriver.log',
service_args= Nenhum, Ser

serviço=Nenhum,
sired_capabilities=Nenhum,
de
log_path=Nenhum, keep_alive=Verdadeiro)

Bases: selenium.webdriver.remote.webdriver.WebDriver

__init__(firefox_profile=Nenhum, firefox_binary=Nenhum, capacidades=Nenhum, proxy=Nenhum, ex options=Nenhum,


ecutable_path='geckodriver', service_log_path='geckodriver.log', service=Nenhum,
desejado_capabilities=Nenhum,
service_args=Nenhum, log_path=Nenhum,
keep_alive=True)
Inicia uma nova sessão local do Firefox.

Com base na combinação e especificidade dos vários argumentos de palavras-chave, será construído um dicionário de recursos
que será passado para a extremidade remota.

Os argumentos de palavra-chave fornecidos a este construtor são auxiliares para permitir mais facilmente que as sessões do
Firefox WebDriver sejam personalizadas com diferentes opções. Eles são mapeados para um dicionário de capacidades que é
passado para a extremidade remota.

Como algumas das opções, como firefox_profile e options.profile são mutuamente exclusivas, a precedência é dada de quão
específica é a configuração. capacidades é o argumento de palavra-chave menos específico, seguido por opções, seguido por
firefox_binary e firefox_profile.

Na prática, isso significa que, se firefox_profile e options.profile estiverem definidos, a instância de perfil selecionada sempre
virá da variável mais específica. Nesse caso, seria firefox_profile. Isso fará com que options.profile seja ignorado porque é
considerado uma configuração menos específica do que o argumento de palavra-chave firefox_profile de nível superior. Da
mesma forma, se você especificou um recurso [“moz:firefoxOptions”][“perfil”]
String Base64, isso seria classificado abaixo de options.profile.

Parâmetros

• firefox_profile – obsoleto: instância do objeto FirefoxProfile ou uma string.


Se indefinido, um novo perfil será criado em um local temporário no sistema.

• firefox_binary – obsoleto: instância de FirefoxBinary ou caminho completo para o binário do Firefox. Se


indefinido, a instalação do Firefox padrão do sistema será usada.

• capacidades – Obsoleto: Dicionário das capacidades desejadas.



proxy – obsoleto: as configurações de proxy a serem usadas ao se comunicar com o Firefox por meio da
conexão de extensão.

• executável_path – obsoleto: caminho completo para substituir qual binário do geckodriver usar para o Firefox
47.0.1 e superior, cujo padrão é selecionar o binário do caminho do sistema.

• opções – Instância de opções. Opções.

• service – instância de serviço (opcional) para gerenciar o início e a parada do


motorista.

• service_log_path – obsoleto: onde registrar as informações do driver.

7.12. Firefox WebDriver 53


Machine Translated by Google

Selenium Python Bindings, Versão 2

• service_args – Obsoleto: lista de argumentos a serem passados para o serviço de driver

• desejado_capabilities – obsoleto: alias de recursos. Em versões futuras desta biblioteca, isso substituirá
'capacidades'. Isso tornará a assinatura consistente com RemoteWebDriver.

• keep_alive – Se deve configurar remote_connection.RemoteConnection para usar


HTTP Keep-Alive.

contexto(contexto)
Define o contexto em que os comandos do Selenium estão sendo executados usando uma instrução with. O estado do
contexto no servidor é salvo antes de entrar no bloco e restaurado ao sair dele.

Parâmetros context – Context, pode ser uma das propriedades da classe CONTEXT_CHROME ou
CONTEXT_CONTENT.

Exemplo de uso:

with selenium.context(selenium.CONTEXT_CHROME): # chrome scope ...


do stuff ...

get_full_page_screenshot_as_base64() ÿ str

Obtém a captura de tela completa do documento da janela atual como uma string codificada em base64 que é útil
em imagens incorporadas em HTML.

Uso

driver.get_full_page_screenshot_as_base64()

get_full_page_screenshot_as_file(nome do arquivo) ÿ bool

Salva uma captura de tela completa do documento da janela atual em um arquivo de imagem PNG. Retorna False se houver
algum IOError, senão retorna True. Use caminhos completos em seu nome de arquivo.

argumentos

• nome do arquivo: o caminho completo no qual você deseja salvar sua captura de tela. Isso deve terminar com um .png
extensão.

Uso

driver.get_full_page_screenshot_as_file('/Screenshots/foo.png')

get_full_page_screenshot_as_png() ÿ bytes Obtém a captura de


tela completa do documento da janela atual como dados binários.

Uso

driver.get_full_page_screenshot_as_png()

install_addon(caminho, temporário=Falso) ÿ str


Instala o complemento do Firefox.

Retorna o identificador do addon instalado. Esse identificador pode ser usado posteriormente para desinstalar o complemento.

Parâmetros path – Caminho absoluto para o addon que será instalado.

Uso

54 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

driver.install_addon('/caminho/para/firebug.xpi')

quit() ÿ None Sai do


driver e fecha todas as janelas associadas.

save_full_page_screenshot(nome do arquivo) ÿ bool

Salva uma captura de tela completa do documento da janela atual em um arquivo de imagem PNG. Retorna False se houver
algum IOError, senão retorna True. Use caminhos completos em seu nome de arquivo.

argumentos

• nome do arquivo: o caminho completo no qual você deseja salvar sua captura de tela. Isso deve terminar com um .png
extensão.

Uso

driver.save_full_page_screenshot('/Screenshots/foo.png')

set_context(contexto) ÿ Nenhum

desinstalar_addon(identificador) ÿ Nenhum
Desinstala o complemento do Firefox usando seu identificador.

Uso

driver.uninstall_addon('addon@foo.com')

CONTEXT_CHROME = 'cromo'

CONTEXT_CONTENT = 'conteúdo'

firefox_profile

7.13 Opções do Firefox WebDriver

classe selenium.webdriver.firefox.options.Log
Bases: objeto

__iniciar__()
Inicializar auto. Consulte help(type(self)) para obter uma assinatura precisa.

to_capabilities() ÿ dict

classe selenium.webdriver.firefox.options.Options
Bases: selenium.webdriver.common.options.ArgOptions

__iniciar__()
Inicializar auto. Consulte help(type(self)) para obter uma assinatura precisa.

enable_mobile(android_package: str = 'org.mozilla.firefox', android_activity=None, de vice_serial=None)

Permite o uso do navegador móvel para navegadores compatíveis

Args android_activity: O nome do pacote android para iniciar

set_preference(nome: str, valor: Union[str, int, bool])


Define uma preferência.

7.13. Opções do Firefox WebDriver 55


Machine Translated by Google

Selenium Python Bindings, Versão 2

to_capabilities() ÿ dict
Organiza as opções do Firefox para um objeto moz:firefoxOptions.

KEY = 'moz:firefoxOptions'

binário
Retorna a instância FirefoxBinary

local_binário

Retorna A localização do binário.

default_capabilities
Retorne os recursos mínimos necessários como um dicionário.

sem cabeça

Retorna True se o argumento headless estiver definido, senão False

preferências

Retorna Um ditado de preferências.

perfil

Retorna O perfil do Firefox a ser usado.

7.14 Perfil do Firefox WebDriver

exceção selenium.webdriver.firefox.firefox_profile.AddonFormatError Bases: exceção

Exceção para arquivos de manifesto de complemento não bem formados

classe selenium.webdriver.firefox.firefox_profile.FirefoxProfile(profile_directory=None)
Bases: objeto

__init__(profile_directory=Nenhum)
Inicializa uma nova instância de um perfil do Firefox

argumentos

• profile_directory: Diretório do perfil que você deseja usar. Se um diretório for passado, ele será
clonado e o diretório clonado será usado pelo driver quando instanciado. O padrão é Nenhum e
criará um novo diretório quando o objeto for criado.

add_extension(extension='webdriver.xpi')

set_preference(key, value) define


a preferência que queremos no perfil.

atualizar_preferências()

ANONYMOUS_PROFILE_NAME = 'WEBDRIVER_ANONYMOUS_PROFILE'

DEFAULT_PREFERENCES = Nenhum

accept_untrusted_certs

assume_untrusted_cert_issuer

codificado
Uma cadeia de caracteres compactada e codificada em base64 do diretório de perfil para uso com o protocolo de conexão WebDriver JSON remoto

56 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

caminho
Obtém o diretório do perfil que está sendo usado no momento

porta
Obtém a porta em que o WebDriver está trabalhando

7.15 Firefox WebDriver Binário


classe selenium.webdriver.firefox.firefox_binary.FirefoxBinary(firefox_path=Nenhum,
log_file=Nenhum)
Bases: objeto

__init__(firefox_path=Nenhum, log_file=Nenhum)
Cria uma nova instância do binário do Firefox.

argumentos

• firefox_path - Caminho para o executável do Firefox. Por padrão, ele será detectado a partir do
locais padrão.

• log_file - Um objeto de arquivo para redirecionar a saída do processo firefox. Pode ser sys.stdout.
Observe que, com execução paralela, a saída não será síncrona. Por padrão, ele será redirecionado
para /dev/null.

add_command_line_options(*args)

matar()
Mate o navegador.

Isso é útil quando o navegador está travado.

launch_browser(perfil, tempo limite=30)


Inicia o navegador para o nome de perfil fornecido. Presume-se que o perfil já exista.

qual(fnome)
Retorna o caminho totalmente qualificado pesquisando o caminho do nome fornecido

NO_FOCUS_LIBRARY_NAME = 'x_ignore_nofocus.so'

7.16 Conexão da extensão Firefox WebDriver

exceção selenium.webdriver.firefox.extension_connection.ExtensionConnectionError
Bases: Exceção

Ocorreu um erro interno na extensão.

Pode ser causado por entrada incorreta ou bugs no webdriver

classe selenium.webdriver.firefox.extension_connection.ExtensionConnection(host, fire fox_profile, fire fox_binary=Nenhum, tempo

limite=30)

Bases: selenium.webdriver.remote.remote_connection.RemoteConnection

__init__(host, firefox_profile, firefox_binary=Nenhum, tempo limite=30)


Inicializar auto. Consulte help(type(self)) para obter uma assinatura precisa.

7.15. Firefox WebDriver Binário 57


Machine Translated by Google

Selenium Python Bindings, Versão 2

conectar()
Conecta-se à extensão e recupera o ID da sessão.

classmethod connect_and_quit()
Conecta-se a um navegador em execução e sai imediatamente.

classmethod is_connectable ()
Tenta se conectar ao ramal, mas não recupera o contexto.

quit(sessionId=Nenhum)

7.17 Driver da Web do Chrome

class selenium.webdriver.chrome.webdriver.WebDriver(executable_path='chromedriver', porta=0, opções: sele


nium.webdriver.chrome.options.Options
Nenhum, =
service_args=Nenhum,
desejado_capabilities=Nenhum,
service_log_path=Nenhum, chrome_options=
Nenhum, serviço: selecione
nium.webdriver.chrome.service.Service =
Nenhum, keep_alive=Nenhum)

Bases: selenium.webdriver.chromium.webdriver.ChromiumDriver

Controla o ChromeDriver e permite que você conduza o navegador. Você precisará baixar o executável do ChromeDriver em http://
chromedriver.storage.googleapis.com/index.html

__init__(executable_path='chromedriver', opções: nium.webdriver.chrome.options.Options


porta=0,
=
service_args=Nenhum, sired_capabilities=Nenhum, service_log_path=Nenhum,
Nenhum, chrome_options=Nenhum, selecione de

serviço: selenium.webdriver.chrome.service.Service = Nenhum, keep_alive =Nenhum)

Cria uma nova instância do driver chrome. Inicia o serviço e cria uma nova instância do driver chrome.

argumentos

• executable_path - Obsoleto: caminho para o executável. Se o padrão for usado, ele assume que o executável
está no $PATH

• port - Obsoleto: porta que você gostaria que o serviço fosse executado, se deixado como 0, uma porta livre será
encontrado.

• opções - isso leva uma instância de ChromeOptions

• service - Objeto de serviço para lidar com o driver do navegador se você precisar passar detalhes extras

• service_args - Obsoleto: lista de argumentos a serem passados para o serviço de driver

• desejado_capabilities - obsoleto: objeto de dicionário apenas com recursos não específicos do navegador,
como “proxy” ou “loggingPref”.

• service_log_path - obsoleto: onde registrar as informações do driver.

• keep_alive - obsoleto: se deve configurar ChromeRemoteConnection para usar HTTP


mantenha vivo.

58 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

7.18 Opções do Chrome WebDriver

classe selenium.webdriver.chrome.options.Options
Bases: selenium.webdriver.chromium.options.ChromiumOptions

enable_mobile(android_package: str = 'com.android.chrome', android_activity: Opcional[str] =


Nenhum, device_serial: Opcional[str] = Nenhum) ÿ Nenhum
Permite o uso do navegador móvel para navegadores compatíveis

Args android_activity: O nome do pacote android para iniciar

default_capabilities
Retorne os recursos mínimos necessários como um dicionário.

7.19 Serviço Chrome WebDriver

class selenium.webdriver.chrome.service.Service(executable_path: str = 'chromedriver', porta: int = 0, service_args:


Opcional[Lista[str]] = Nenhum, log_path:
Opcional[str] = Nenhum, env: Op
tional[Mapping[str, str]] = Nenhum)

Bases: selenium.webdriver.chromium.service.ChromiumService

Uma classe Service que é responsável por iniciar e parar o chromedriver.


Parâmetros

• executável_path – caminho de instalação do executável do chromedriver, o padrão é


chromedriver.

• port – Porta na qual o serviço será executado, o padrão é 0, onde o sistema operacional decidirá.

• service_args – (Opcional) Lista de argumentos a serem passados para o subprocesso ao iniciar


o executável.

• log_path – (Opcional) String a ser passada para o executável como –log-path.

• env – (Opcional) Mapeamento de variáveis de ambiente para o novo processo, padrão para
os.environ.

__init__(executable_path: str = 'chromedriver', porta: int = 0, service_args: Opcional[List[str]] =


Nenhum, log_path: Opcional[str] = Nenhum, env: Opcional[Mapeamento[str, str]] = Nenhum) ÿ Nenhum
Inicializar auto. Consulte help(type(self)) para obter uma assinatura precisa.

7.20 Driver Web Remoto

A implementação do WebDriver.
classe selenium.webdriver.remote.webdriver.BaseWebDriver
Bases: objeto

Classe base abstrata para todos os subtipos de Webdriver. O ABC permite que implementações personalizadas do Webdriver sejam
registradas para que as verificações do tipo isinstance sejam bem-sucedidas.

7.18. Opções do Chrome WebDriver 59


Machine Translated by Google

Selenium Python Bindings, Versão 2

class selenium.webdriver.remote.webdriver.WebDriver(command_executor='http://127.0.0.1:4444', desejado_capabilities=Nenhum,


browser_profile=Nenhum, proxy=Nenhum,
keep_alive=Verdadeiro, file_detector=Nenhum,
opções:
União[selenium .webdriver.common.options.BaseOptions
List[selenium.webdriver.common.options.BaseOptions]]

= Nenhum)
Bases: selenium.webdriver.remote.webdriver.BaseWebDriver

Controla um navegador enviando comandos para um servidor remoto. Espera-se que este servidor esteja executando o protocolo de
conexão do driver da Web conforme definido em https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol

Atributos

• session_id - String ID da sessão do navegador iniciada e controlada por este WebDriver.

• capacidades - Dicionário de capacidades efetivas desta sessão do navegador conforme retornado


pelo servidor remoto. Consulte https://github.com/SeleniumHQ/selenium/wiki/
Capacidades Desejadas

• command_executor - objeto remote_connection.RemoteConnection usado para executar com


mandos.

• error_handler - objeto errorhandler.ErrorHandler usado para lidar com erros.

__init__(command_executor='http://127.0.0.1:4444', desejado_capabilities=Nenhum, browser_profile=Nenhum, keep_alive=True,


file_detector=Nenhum, proxy=Nenhum, opções: Union[selenium.webdriver.common.options.BaseOptions,
List[selenium.webdriver.common.options.BaseOptions]]
= Nenhum)

Crie um novo driver que emitirá comandos usando o protocolo de fio.

argumentos

• command_executor - Uma string representando o URL do servidor remoto ou um


objeto remote_connection.RemoteConnection. 4444/wd/ O padrão é 'http://127.0.0.1:
hub'.

• required_capabilities - Um dicionário de recursos a serem solicitados ao iniciar o


sessão do navegador. Parâmetro obrigatório.

• browser_profile - Um objeto selenium.webdriver.firefox.firefox_profile.FirefoxProfile.


Usado apenas se o Firefox for solicitado. Opcional.

• proxy - Um objeto selenium.webdriver.common.proxy.Proxy. A sessão do navegador será


ser iniciado com determinadas configurações de proxy, se possível. Opcional.

• keep_alive - Se deve configurar remote_connection.RemoteConnection para usar HTTP keep-


alive. O padrão é Verdadeiro.

• file_detector - Passe o objeto detector de arquivo personalizado durante a instanciação. Se


Nenhum, o LocalFileDetector() padrão será usado.

• opções - instância de opções de um driver. Classe de opções

add_cookie(cookie_dict) ÿ Nenhum
Adiciona um cookie à sua sessão atual.

argumentos

• cookie_dict: Um objeto de dicionário, com as chaves necessárias - “nome” e “valor”; chaves opcionais
- “caminho”, “domínio”, “seguro”, “httpOnly”, “expiry”, “sameSite”

60 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

Uso: driver.add_cookie({'name' : 'foo', 'value' : 'bar'}) driver.add_cookie({'name' : 'foo', 'value' : 'bar', 'path' : ' /'})
driver.add_cookie({'name' : 'foo', 'value' : 'bar', 'path' : '/', 'secure':True}) driver.add_cookie({'name': ' foo', 'value':
'bar', 'sameSite': 'Strict'})

add_credential(credential: selenium.webdriver.common.virtual_authenticator.Credential) ÿ Nenhum

Injeta uma credencial no autenticador.

add_virtual_authenticator(opções: selenium.webdriver.common.virtual_authenticator.VirtualAuthenticatorOptions)
ÿ Nenhum
Adiciona um autenticador virtual com as opções fornecidas.

back() ÿ None Vai


um passo para trás no histórico do navegador.

Uso

driver.back()

bidi_connection()

close() ÿ Nenhum
Fecha a janela atual.

Uso

driver.close()

create_web_element(element_id: str) ÿ selenium.webdriver.remote.webelement.WebElement


Cria um elemento da web com o element_id especificado.

delete_all_cookies() ÿ Nenhum Exclui


todos os cookies no escopo da sessão.

Uso

driver.delete_all_cookies()

delete_cookie(name) ÿ Nenhum Exclui


um único cookie com o nome fornecido.

Uso

driver.delete_cookie('meu_cookie')

execute(driver_command: str, params: dict = None) ÿ dict


Envia um comando para ser executado por um command.CommandExecutor.

argumentos

• driver_command: O nome do comando a ser executado como string.

• params: Um dicionário de parâmetros nomeados para enviar com o comando.

Retorna A resposta JSON do comando carregada em um objeto de dicionário.

execute_async_script(script: str, *args)


Executa JavaScript de forma assíncrona na janela/quadro atual.

argumentos

• script: O JavaScript a ser executado.

• *args: Qualquer argumento aplicável para seu JavaScript.

7.20. WebDriver Remoto 61


Machine Translated by Google

Selenium Python Bindings, Versão 2

Uso

script = "var retorno de chamada = argumentos[argumentos.comprimento - 1]; " \


"window.setTimeout(function(){ callback('timeout') }, ÿÿ3000);"
driver.execute_async_script(script)

execute_script(script, *args)
Executa JavaScript de forma síncrona na janela/quadro atual.

argumentos

• script: O JavaScript a ser executado.

• *args: Qualquer argumento aplicável para seu JavaScript.

Uso

driver.execute_script('return document.title;')

file_detector_context(file_detector_class, *args, **kwargs)


Substitui o detector de arquivo atual (se necessário) em contexto limitado. Garante que o detector de arquivo original seja definido
posteriormente.

Exemplo:

com webdriver.file_detector_context(UselessFileDetector): someinput.send_keys('/etc/hosts')

argumentos

• file_detector_class - Classe do detector de arquivo desejado. Se a classe for diferente de


o file_detector atual, então a classe é instanciada com args e kwargs e usada como um detector
de arquivo durante a duração do gerenciador de contexto.

• args - Argumentos opcionais que são passados para a classe do detector de arquivo durante
instanciação.

• kwargs - Argumentos de palavra-chave, passados da mesma forma que args.

find_element(by='id', valor: Opcional[str] = Nenhum) ÿ selecionar


nium.webdriver.remote.webelement.WebElement
Encontre um elemento dado uma estratégia e um localizador By.

Uso

element = driver.find_element(By.ID, 'foo')

Tipo de retorno WebElement

find_elements(by='id', Opcional[str] valor: = Nenhum) ÿ


List[selenium.webdriver.remote.webelement.WebElement]
Encontre os elementos dados por estratégia e localizador.

Uso

elementos = driver.find_elements(By.CLASS_NAME, 'foo')

Lista de tipos de retorno de WebElement

forward() ÿ None Avança


um passo no histórico do navegador.

Uso

62 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

driver.forward()

fullscreen_window() ÿ Nenhum
Invoca a operação de 'tela cheia' específica do gerenciador de janelas

get(url: str) ÿ Nenhum


Carrega uma página da web na sessão atual do navegador.

get_cookie(nome) ÿ Opcional[Dict[KT, VT]]


Obtenha um único cookie por nome. Retorna o cookie se encontrado, None se não.

Uso

motorista.get_cookie('meu_cookie')

get_cookies() ÿ Lista[dict]
Retorna um conjunto de dicionários, correspondentes aos cookies visíveis na sessão atual.

Uso

driver.get_cookies()

get_credentials() ÿ List[selenium.webdriver.common.virtual_authenticator.Credential]
Retorna a lista de credenciais de propriedade do autenticador.

get_log(log_type)
Obtém o log para um determinado tipo de log

argumentos

• log_type: tipo de log que será retornado

Uso

driver.get_log('navegador')
driver.get_log('driver') driver.get_log('cliente')
driver.get_log('servidor')

get_pinned_scripts() ÿ Lista[str]

get_screenshot_as_base64() ÿ str

Obtém a captura de tela da janela atual como uma string codificada em base64 que é útil em
imagens em HTML.

Uso

driver.get_screenshot_as_base64()

get_screenshot_as_file(nome do arquivo) ÿ bool

Salva uma captura de tela da janela atual em um arquivo de imagem PNG. Retorna False se houver algum IOError, senão
retorna True. Use caminhos completos em seu nome de arquivo.

argumentos

• nome do arquivo: o caminho completo no qual você deseja salvar sua captura de tela. Isso deve terminar com um .png
extensão.

Uso

7.20. WebDriver Remoto 63


Machine Translated by Google

Selenium Python Bindings, Versão 2

driver.get_screenshot_as_file('/Screenshots/foo.png')

get_screenshot_as_png() ÿ bytes Obtém a


captura de tela da janela atual como dados binários.

Uso

driver.get_screenshot_as_png()

get_window_position(windowHandle='current') ÿ dict Obtém a posição


x,y da janela atual.

Uso

driver.get_window_position()

get_window_rect() ÿ dict
Obtém as coordenadas x, y da janela, bem como a altura e a largura da janela atual.

Uso

driver.get_window_rect()

get_window_size(windowHandle: str = 'atual') ÿ dict


Obtém a largura e a altura da janela atual.

Uso

driver.get_window_size()

implicitly_wait(time_to_wait: float) ÿ Nenhum

Define um tempo limite fixo para aguardar implicitamente a localização de um elemento ou a conclusão de um
comando. Este método só precisa ser chamado uma vez por sessão. Para definir o tempo limite para chamadas
para exe cute_async_script, consulte set_script_timeout.

argumentos

• time_to_wait: Tempo de espera (em segundos)

Uso

driver.implicitly_wait(30)

maximize_window() ÿ Nenhum
Maximiza a janela atual que o webdriver está usando

minimize_window() ÿ Nenhum
Invoca a operação 'minimizar' específica do gerenciador de janelas

pin_script(script: str, script_key=None) ÿ selenium.webdriver.remote.script_key.ScriptKey Armazena scripts


javascript comuns para serem executados posteriormente por um ID hashable exclusivo.

print_page(print_options: Opcional[selenium.webdriver.common.print_page_options.PrintOptions]
= Nenhum) ÿ str
Obtém o PDF da página atual. O driver se esforça ao máximo para retornar um PDF com base nos parâmetros
fornecidos.

quit() ÿ None Sai


do driver e fecha todas as janelas associadas.

64 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

Uso

driver.quit()

refresh() ÿ None Atualiza


a página atual.

Uso

driver.refresh()

remove_all_credentials() ÿ Nenhum
Remove todas as credenciais do autenticador.

remove_credential(credential_id: Union[str, bytearray]) ÿ Nenhum


Remove uma credencial do autenticador.

remove_virtual_authenticator() ÿ Nenhum
Remove um autenticador virtual adicionado anteriormente. O autenticador não é mais válido após a remoção, portanto,
nenhum método pode ser chamado.

save_screenshot(nome do arquivo) ÿ bool

Salva uma captura de tela da janela atual em um arquivo de imagem PNG. Retorna False se houver algum IOError, senão
retorna True. Use caminhos completos em seu nome de arquivo.

argumentos

• nome do arquivo: o caminho completo no qual você deseja salvar sua captura de tela. Isso deve terminar com um .png
extensão.

Uso

driver.save_screenshot('/Screenshots/foo.png')

set_page_load_timeout(time_to_wait: float) ÿ Nenhum

Defina o tempo de espera para que o carregamento da página seja concluído antes de lançar um erro.

argumentos

• time_to_wait: A quantidade de tempo de espera

Uso

driver.set_page_load_timeout(30)

set_script_timeout(time_to_wait: float) ÿ Nenhum

Defina a quantidade de tempo que o script deve esperar durante uma chamada execute_async_script antes de lançar
em um erro.

argumentos

• time_to_wait: A quantidade de tempo de espera (em segundos)

Uso

driver.set_script_timeout(30)

7.20. WebDriver Remoto 65


Machine Translated by Google

Selenium Python Bindings, Versão 2

set_user_verified(verificado: bool) ÿ Nenhum


Define se o autenticador simulará sucesso ou falha na verificação do usuário. verificado: Verdadeiro se o autenticador
passar na verificação do usuário, Falso caso contrário.

set_window_position(x, y, windowHandle: str = 'current') ÿ dict Define a posição


x,y da janela atual. (window.moveTo)

argumentos

• x: a coordenada x em pixels para definir a posição da janela


• y: a coordenada y em pixels para definir a posição da janela

Uso

driver.set_window_position(0,0)

set_window_rect(x=None, y=None, width=None, height=None) ÿ dict Define as


coordenadas x, y da janela, bem como a altura e a largura da janela atual. Este método é suportado apenas por
navegadores compatíveis com W3C; outros navegadores devem usar set_window_position e set_window_size.

Uso

driver.set_window_rect(x=10, y=10)
driver.set_window_rect(width=100, height=200) driver.set_window_rect(x=10,
y=10, width=100, height=200)

set_window_size(width, height, windowHandle: str = 'current') ÿ None Define a largura e


a altura da janela atual. (window.resizeTo)

argumentos

• largura: a largura em pixels para definir a janela para

• altura: a altura em pixels para definir a janela para

Uso

driver.set_window_size(800.600)

start_client()
Chamado antes de iniciar uma nova sessão. Este método pode ser substituído para definir o comportamento de inicialização personalizado.

start_session(capacities: dict, browser_profile=None) ÿ None Cria uma nova


sessão com os recursos desejados.

argumentos

• capacidades - um ditado de capacidades para iniciar a sessão.

• browser_profile - Um objeto selenium.webdriver.firefox.firefox_profile.FirefoxProfile. Usado apenas se


o Firefox for solicitado.

stop_client()
Chamado após a execução de um comando quit. Este método pode ser substituído para definir o comportamento de desligamento
personalizado.

unpin(script_key: selenium.webdriver.remote.script_key.ScriptKey) ÿ Nenhum


Remova um script fixado do armazenamento.

application_cache
Retorna um objeto ApplicationCache para interagir com o cache do aplicativo do navegador

66 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

capacidades
retorna os recursos atuais dos drivers que estão sendo usados.

url_atual
Obtém a URL da página atual.

Uso

driver.current_url

current_window_handle Retorna
o identificador da janela atual.

Uso

driver.current_window_handle

capacidades_desejadas
retorna os recursos atuais desejados dos drivers que estão sendo usados

detector_de_arquivo

log_types
Obtém uma lista dos tipos de log disponíveis. Isso só funciona com navegadores compatíveis com w3c.

Uso

driver.log_types

móvel

nome
Retorna o nome do navegador subjacente para esta instância.

Uso

nome = motorista.nome

orientação
Obtém a orientação atual do dispositivo

Uso

orientação = motorista.orientação

fonte da página
Obtém a origem da página atual.

Uso

driver.page_source

troque para

devoluções

• SwitchTo: um objeto contendo todas as opções para mudar o foco

Uso

7.20. WebDriver Remoto 67


Machine Translated by Google

Selenium Python Bindings, Versão 2

element = driver.switch_to.active_element alert = driver.switch_to.alert


driver.switch_to.default_content() driver.switch_to.frame('frame_name')
driver.switch_to.frame(1)

driver.switch_to.frame(driver.find_elements(By.TAG_NAME, "iframe
ÿÿ")[0])
driver.switch_to.parent_frame()
driver.switch_to.window('main')

limites de tempo
Obtenha todos os tempos limites que foram definidos na sessão atual

Uso

:: driver.timeouts

Tipo de retorno Timeout

title
Retorna o título da página atual.

Uso

título = motorista.título

virtual_authenticator_id Retorna o id
do autenticador virtual.

window_handles
Retorna os identificadores de todas as janelas na sessão atual.

Uso

driver.window_handles

selenium.webdriver.remote.webdriver.create_matches(opções:
List[selenium.webdriver.common.options.BaseOptions]) ÿ
Dict[KT, VT]
selenium.webdriver.remote.webdriver.get_remote_connection(capacidades, mand_executor, keep_alive, com

eu
nore_local_proxy=False)
selenium.webdriver.remote.webdriver.import_cdp()

7.21 WebElement do WebDriver Remoto


classe selenium.webdriver.remote.webelement.BaseWebElement
Bases: objeto

Classe base abstrata para WebElement. O ABC permitirá que tipos personalizados sejam registrados como um WebElement para passar nas
verificações de tipo.

classe selenium.webdriver.remote.webelement.WebElement(parent, id_)


Bases: selenium.webdriver.remote.webelement.BaseWebElement

Representa um elemento DOM.

68 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

Geralmente, todas as operações interessantes que interagem com um documento serão realizadas por meio dessa interface.

Todas as chamadas de método farão uma verificação de atualização para garantir que a referência do elemento ainda seja válida.
Isso determina essencialmente se o elemento ainda está anexado ao DOM. Se esse teste falhar, uma StaleElementReferenceException
será lançada e todas as chamadas futuras para essa instância falharão.

__init__(pai, id_)
Inicializar auto. Consulte help(type(self)) para obter uma assinatura precisa.

clear() ÿ None Limpa


o texto se for um elemento de entrada de texto.

click() ÿ None Clica no


elemento.

find_element(by='id', value=None) ÿ selenium.webdriver.remote.webelement.WebElement


Encontre um elemento dado uma estratégia e um localizador By.

Uso

element = element.find_element(By.ID, 'foo')

Tipo de retorno WebElement

find_elements(by='id', value=None) ÿ list[WebElement]


Encontre os elementos dados por estratégia e localizador.

Uso

element = element.find_elements(By.CLASS_NAME, 'foo')

Lista de tipos de retorno de WebElement

get_attribute(name) ÿ str Obtém o


determinado atributo ou propriedade do elemento.

Este método primeiro tentará retornar o valor de uma propriedade com o nome fornecido. Se não existir uma propriedade
com esse nome, retorna o valor do atributo com o mesmo nome. Se não houver nenhum atributo com esse nome, None será
retornado.

Valores considerados verdadeiros, ou seja, iguais a “verdadeiro” ou “falso”, são retornados como booleanos. Todos os outros
valores diferentes de None são retornados como strings. Para atributos ou propriedades que não existem, None é retornado.

Para obter o valor exato do atributo ou propriedade, use os métodos get_dom_attribute() ou get_property() respectivamente.

argumentos

• nome - Nome do atributo/propriedade a ser recuperado.

Exemplo:

# Verifique se a classe CSS "ativa" é aplicada a um elemento. is_active = "active" em


target_element.get_attribute("class")

get_dom_attribute(nome) ÿ str
Obtém o atributo fornecido do elemento. Ao contrário de get_attribute(), este método retorna apenas atributos declarados na
marcação HTML do elemento.

argumentos

• nome - Nome do atributo a ser recuperado.

Uso

7.21. Remoto WebDriver WebElement 69


Machine Translated by Google

Selenium Python Bindings, Versão 2

text_length = target_element.get_dom_attribute("classe")

get_property(nome) ÿ str | bool | WebElemento | dict Obtém a propriedade


fornecida do elemento.

argumentos

• nome - Nome da propriedade a ser recuperada.

Uso

text_length = target_element.get_property("text_length")

is_displayed() ÿ bool Se o elemento


está visível para um usuário.

is_enabled() ÿ bool
Retorna se o elemento está ativado.

is_selected() ÿ bool
Retorna se o elemento está selecionado.

Pode ser usado para verificar se uma caixa de seleção ou botão de opção está selecionado.

captura de tela (nome do arquivo) ÿ bool

Salva uma captura de tela do elemento atual em um arquivo de imagem PNG. Retorna False se houver algum IOError, senão
retorna True. Use caminhos completos em seu nome de arquivo.

argumentos

• nome do arquivo: o caminho completo no qual você deseja salvar sua captura de tela. Isso deve terminar com um .png
extensão.

Uso

element.screenshot('/Screenshots/foo.png')

send_keys(*valor) ÿ Nenhum
Simula a digitação no elemento.

argumentos

• value - Uma string para digitação ou configuração de campos de formulário. Para definir entradas de arquivo, isso pode ser um
caminho do arquivo local.

Use isso para enviar eventos de chave simples ou para preencher campos de formulário:

form_textfield = driver.find_element(By.NAME, 'username') form_textfield.send_keys("admin")

Isso também pode ser usado para definir entradas de arquivo.

file_input = driver.find_element(By.NAME, 'profilePic') file_input.send_keys("caminho/


para/profilepic.gif")
# Em geral, é melhor agrupar o caminho do arquivo em um dos métodos # em os.path para retornar o
caminho real para oferecer suporte a testes entre sistemas operacionais. #
file_input.send_keys(os.path.abspath("caminho/para/profilepic.gif"))

enviar()
Envia um formulário.

70 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

value_of_css_property(property_name) ÿ str O valor de uma


propriedade CSS.

access_name
Retorna o nível ARIA do webelement atual

aria_role
Retorna a função ARIA do elemento da web atual

eu ia

ID interno usado pelo selênio.

Isto é principalmente para uso interno. Casos de uso simples, como verificar se 2 webelements se referem ao mesmo
elemento, podem ser feitos usando ==:

se elemento1 == elemento2:
print("Estes 2 são iguais")

location A
localização do elemento na tela renderizável.

location_once_scrolled_into_view
ESTA PROPRIEDADE PODE MUDAR SEM AVISO. Use isso para descobrir onde na tela um
elemento é para que possamos clicar nele. Este método deve fazer com que o elemento seja rolado para exibição.

Retorna a localização do canto superior esquerdo da tela ou None se o elemento não estiver visível.

parent
Referência interna à instância do WebDriver a partir da qual esse elemento foi encontrado.

retificar
Um dicionário com o tamanho e a localização do elemento.

screenshot_as_base64 Obtém a
captura de tela do elemento atual como uma string codificada em base64.

Uso

img_b64 = element.screenshot_as_base64

screenshot_as_png Obtém
a captura de tela do elemento atual como dados binários.

Uso

element_png = element.screenshot_as_png

shadow_root
Retorna uma raiz de sombra do elemento se houver um ou um erro. Só funciona a partir do Chromium 96 em diante.
Versões anteriores de navegadores baseados no Chromium lançarão uma exceção de declaração.

devoluções

• Objeto ShadowRoot ou

• NoSuchShadowRoot - se nenhuma raiz de sombra foi anexada ao elemento

tamanho O tamanho do elemento.

tag_name A
propriedade tagName deste elemento.

7.21. Remoto WebDriver WebElement 71


Machine Translated by Google

Selenium Python Bindings, Versão 2

texto
O texto do elemento.

7.22 Comando Remoto WebDriver


classe selenium.webdriver.remote.command.Command
Bases: objeto

Define constantes para os comandos padrão do WebDriver.

Embora essas constantes não tenham significado em si mesmas, elas são usadas para organizar comandos por meio de um
serviço que implementa o protocolo de conexão remota do WebDriver:

https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol

ADD_COOKIE = 'adicionarCookie'

ADD_CREDENTIAL = 'adicionarCredencial'

ADD_VIRTUAL_AUTHENTICATOR = 'addVirtualAuthenticator'

CLEAR_ELEMENT = 'clearElement'

CLICK_ELEMENT = 'clickElement'

FECHAR = 'fechar'

CONTEXT_HANDLES = 'getContextHandles'

CURRENT_CONTEXT_HANDLE = 'getCurrentContextHandle'

DELETE_ALL_COOKIES = 'deleteAllCookies'

DELETE_COOKIE = 'excluirCookie'

DELETE_SESSION = 'deleteSession'

ELEMENT_SCREENSHOT = 'captura de tela do elemento'

EXECUTE_ASYNC_SCRIPT = 'executeAsyncScript'

FIND_CHILD_ELEMENT = 'findChildElement'

FIND_CHILD_ELEMENTS = 'encontrarElementosFilhos'

FIND_ELEMENT = 'encontrarElemento'

FIND_ELEMENTS = 'encontrarElementos'

FIND_ELEMENTS_FROM_SHADOW_ROOT = 'findElementsFromShadowRoot'

FIND_ELEMENT_FROM_SHADOW_ROOT = 'findElementFromShadowRoot'

FULLSCREEN_WINDOW = 'fullscreenWindow'

GET = 'obter'

GET_ALL_COOKIES = 'getCookies'

GET_AVAILABLE_LOG_TYPES = 'getAvailableLogTypes'

GET_COOKIE = 'getCookie'

GET_CREDENTIALS = 'getCredentials'

GET_CURRENT_URL = 'getCurrentUrl'

72 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

GET_ELEMENT_ARIA_LABEL = 'getElementAriaLabel'

GET_ELEMENT_ARIA_ROLE = 'getElementAriaRole'

GET_ELEMENT_ATTRIBUTE = 'getElementAttribute'

GET_ELEMENT_PROPERTY = 'getElementProperty'

GET_ELEMENT_RECT = 'getElementRect'

GET_ELEMENT_TAG_NAME = 'getElementTagName'

GET_ELEMENT_TEXT = 'getElementText'

GET_ELEMENT_VALUE_OF_CSS_PROPERTY = 'getElementValueOfCssProperty'

GET_LOG = 'getLog'

GET_NETWORK_CONNECTION = 'getNetworkConnection'

GET_PAGE_SOURCE = 'getPageSource'

GET_SCREEN_ORIENTATION = 'getScreenOrientation'

GET_SHADOW_ROOT = 'getShadowRoot'

GET_TIMEOUTS = 'getTimeouts'

GET_TITLE = 'getTitle'

GET_WINDOW_RECT = 'getWindowRect'

GO_BACK = 'voltar'

GO_FORWARD = 'irEm frente'

IS_ELEMENT_ENABLED = 'isElementEnabled'

IS_ELEMENT_SELECTED = 'isElementSelected'

MINIMIZE_WINDOW = 'minimizeWindow'

NEW_SESSION = 'novaSessão'

NEW_WINDOW = 'newWindow'

PRINT_PAGE = 'imprimirPágina'

SAIR = 'sair'
ATUALIZAR = 'atualizar'

REMOVE_ALL_CREDENTIALS = 'removeAllCredentials'

REMOVE_CREDENTIAL = 'removeCredential'

REMOVE_VIRTUAL_AUTHENTICATOR = 'removeVirtualAuthenticator'

CAPTURA DE TELA = 'captura de tela'

SEND_KEYS_TO_ELEMENT = 'sendKeysToElement'

SET_NETWORK_CONNECTION = 'setNetworkConnection'

SET_SCREEN_ORIENTATION = 'setScreenOrientation'

SET_TIMEOUTS = 'setTimeouts'

SET_USER_VERIFIED = 'setUserVerified'

SET_WINDOW_RECT = 'setWindowRect'

7.22. Comando Remoto do WebDriver 73


Machine Translated by Google

Selenium Python Bindings, Versão 2

SWITCH_TO_CONTEXT = 'switchToContext'

SWITCH_TO_FRAME = 'switchToFrame'

SWITCH_TO_PARENT_FRAME = 'switchToParentFrame'

SWITCH_TO_WINDOW = 'switchToWindow'

UPLOAD_FILE = 'uploadArquivo'

W3C_ACCEPT_ALERT = 'w3cAcceptAlert'

W3C_ACTIONS = 'ações'

W3C_CLEAR_ACTIONS = 'clearActionState'

W3C_DISMISS_ALERT = 'w3cDismissAlert'

W3C_EXECUTE_SCRIPT = 'w3cExecuteScript'

W3C_EXECUTE_SCRIPT_ASYNC = 'w3cExecuteScriptAsync'

W3C_GET_ACTIVE_ELEMENT = 'w3cGetActiveElement'

W3C_GET_ALERT_TEXT = 'w3cGetAlertText'

W3C_GET_CURRENT_WINDOW_HANDLE = 'w3cGetCurrentWindowHandle'

W3C_GET_WINDOW_HANDLES = 'w3cGetWindowHandles'

W3C_MAXIMIZE_WINDOW = 'w3cMaximizeWindow'

W3C_SET_ALERT_VALUE = 'w3cSetAlertValue'

7.23 Manipulador de erros do WebDriver remoto

classe selenium.webdriver.remote.errorhandler.ErrorCode
Bases: objeto

Códigos de erro definidos no protocolo de fio WebDriver.

ELEMENT_CLICK_INTERCEPTED = [64, 'clique de elemento interceptado']

ELEMENT_IS_NOT_SELECTABLE = [15, 'elemento não selecionável']

ELEMENT_NOT_INTERACTABLE = [60, 'elemento não interativo']

ELEMENT_NOT_VISIBLE = [11, 'elemento não visível']

IME_ENGINE_ACTIVATION_FAILED = [31, 'falha na ativação do mecanismo ime']

IME_NOT_AVAILABLE = [30, 'tempo não disponível']

INSECURE_CERTIFICATE = ['certificado inseguro']

INVALID_ARGUMENT = [61, 'argumento inválido']

INVALID_COOKIE_DOMAIN = [24, 'domínio de cookie inválido']

INVALID_COORDINATES = ['coordenadas inválidas']

INVALID_ELEMENT_COORDINATES = [29, 'coordenadas inválidas do elemento']

INVALID_ELEMENT_STATE = [12, 'estado de elemento inválido']

INVALID_SELECTOR = [32, 'seletor inválido']

INVALID_SESSION_ID = ['id de sessão inválida']

74 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

INVALID_XPATH_SELECTOR = [51, 'seletor inválido']

INVALID_XPATH_SELECTOR_RETURN_TYPER = [52, 'seletor inválido']

JAVASCRIPT_ERROR = [17, 'erro de javascript']

METHOD_NOT_ALLOWED = [405, 'operação não suportada']

MOVE_TARGET_OUT_OF_BOUNDS = [34, 'mover alvo para fora dos limites']

NO_ALERT_OPEN = [27, 'nenhum alerta']

NO_SUCH_COOKIE = [62, 'não existe tal cookie']

NO_SUCH_ELEMENT = [7, 'nenhum tal elemento']

NO_SUCH_FRAME = [8, 'nenhum quadro']

NO_SUCH_SHADOW_ROOT = ['nenhuma raiz sombra']

NO_SUCH_WINDOW = [23, 'nenhuma janela']

SCRIPT_TIMEOUT = [28, 'tempo limite do script']

SESSION_NOT_CREATED = [33, 'sessão não criada']

STALE_ELEMENT_REFERENCE = [10, 'referência de elemento obsoleto']


SUCESSO = 0

TEMPO LIMITE = [21, 'tempo limite']

UNABLE_TO_CAPTURE_SCREEN = [63, 'não foi possível capturar a tela']

UNABLE_TO_SET_COOKIE = [25, 'não foi possível definir o cookie']

UNEXPECTED_ALERT_OPEN = [26, 'alerta inesperado aberto']

UNKNOWN_COMMAND = [9, 'comando desconhecido']

UNKNOWN_ERROR = [13, 'erro desconhecido']

UNKNOWN_METHOD = ['exceção de método desconhecido']

XPATH_LOOKUP_ERROR = [19, 'seletor inválido']


classe selenium.webdriver.remote.errorhandler.ErrorHandler
Bases: objeto

Lida com erros retornados pelo servidor WebDriver.

check_response(response: Dict[str, Any]) ÿ None Verifica


se uma resposta JSON do WebDriver não contém um erro.

argumentos

• response - A resposta JSON do servidor WebDriver como um objeto de dicionário.

Aumenta se a resposta contiver uma mensagem de erro.

7.24 Remote WebDriver Mobile


classe selenium.webdriver.remote.mobile.Mobile(driver)
Bases: objeto

classe ConnectionType(máscara)
Bases: objeto

7.24. WebDriver remoto móvel 75


Machine Translated by Google

Selenium Python Bindings, Versão 2

__init__(máscara)
Inicializar auto. Consulte help(type(self)) para obter uma assinatura precisa.

modo avião

dados

Wi-fi

__init__(driver)
Inicializar auto. Consulte help(type(self)) para obter uma assinatura precisa.

set_network_connection(rede)
Defina a conexão de rede para o dispositivo remoto.

Exemplo de configuração do modo avião:

driver.mobile.set_network_connection(driver.mobile.AIRPLANE_MODE)

AIRPLANE_MODE = <selenium.webdriver.remote.mobile.Mobile.ConnectionType object>

ALL_NETWORK = <selenium.webdriver.remote.mobile.Mobile.ConnectionType object>

DATA_NETWORK = <selenium.webdriver.remote.mobile.Mobile.ConnectionType object>

WIFI_NETWORK = <selenium.webdriver.remote.mobile.Mobile.ConnectionType object>

contexto
retorna o contexto atual (Native ou WebView).

contextos
retorna uma lista de contextos disponíveis

conexão de rede

7.25 Conexão Remota do WebDriver Remoto


classe selenium.webdriver.remote.remote_connection.RemoteConnection(remote_server_addr:
str,
keep_alive:
bool =
Falso, ig
nore_proxy:
bool =
Falso)
Bases: objeto

Uma conexão com o servidor Remote WebDriver.

Comunica-se com o servidor usando o protocolo de fio WebDriver: https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol

__init__(remote_server_addr: str, keep_alive: bool = False, ignore_proxy: bool = False)


Inicializar auto. Consulte help(type(self)) para obter uma assinatura precisa.

fechar()
Limpe os recursos quando terminar com o remote_connection

execute(comando, parâmetros)
Envie um comando para o servidor remoto.

76 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

Quaisquer substituições de caminho necessárias para a URL mapeada para o comando devem ser incluídas nos parâmetros do
comando.

argumentos

• command - Uma string especificando o comando a ser executado.

• params - Um dicionário de parâmetros nomeados para enviar com o comando como carga de pagamento JSON.

classmethod get_certificate_bundle_path()

Retorna Caminhos do certificado codificado em .pem para verificar a conexão com o executor do comando

classmethod get_remote_connection_headers(parsed_url, keep_alive=False)


Obtenha cabeçalhos para solicitação remota.

argumentos

• parsed_url - O URL analisado

• keep_alive (Boolean) - Esta é uma conexão keep-alive (padrão: Falso)

classmethod get_timeout()

Retorna o valor do Timeout em segundos para todas as requisições http feitas à Conexão Remota

classmethod reset_timeout()
Redefina o tempo limite da solicitação http para socket._GLOBAL_DEFAULT_TIMEOUT

classmethod set_certificate_bundle_path(path)
Defina o caminho para o pacote de certificados para verificar a conexão com o executor do comando. Também pode ser definido como Nenhum
para desabilitar a validação do certificado.

argumentos

• caminho - caminho de uma cadeia de certificados codificada em .pem.

classmethod set_timeout(timeout)
Substituir o tempo limite padrão

argumentos

• timeout - valor de tempo limite para solicitações http em segundos

browser_name = Nenhum

7.26 Utilitários do WebDriver Remoto

selenium.webdriver.remote.utils.dump_json(json_struct: Qualquer) ÿ str

selenium.webdriver.remote.utils.load_json(s: Union[str, bytes]) ÿ Qualquer

7.26. Utilitários remotos do WebDriver 77


Machine Translated by Google

Selenium Python Bindings, Versão 2

7.27 Internet Explorer WebDriver


classe selenium.webdriver.ie.webdriver.WebDriver(executable_path='IEDriverServer.exe', capacidades=Nenhum, porta=0, tempo
limite=30, host=Nenhum, log_level=Nenhum,
service_log_path=Nenhum, opções: sele
nium.webdriver .ie.options.Options = Nenhum,
serviço: sele nium.webdriver.ie.service.Service =
Nenhum, desejado_capabilities=Nenhum,
keep_alive=Nenhum)

Bases: selenium.webdriver.remote.webdriver.WebDriver

Controla o IEServerDriver e permite que você conduza o Internet Explorer

__init__(executable_path='IEDriverServer.exe', capacidades=Nenhum, out=30, host=Nenhum, porta=0, tempo

log_level=Nenhum, service_log_path=Nenhum, opções: nium.webdriver.ie.options.Options = Nenhum, selecionar

serviço: selenium.webdriver. ie.service.Service = Nenhum, desejado_capabilities=Nenhum, keep_alive=Nenhum)

Cria uma nova instância do driver Ie.

Inicia o serviço e cria uma nova instância do driver Ie.

argumentos

• executable_path - Obsoleto: caminho para o executável. Se o padrão for usado, ele assume que o executável está
no $PATH

• capacidades - Obsoleto: objeto de dicionário de capacidades

• port - Obsoleto: porta que você gostaria que o serviço fosse executado, se deixado como 0, uma porta livre será
encontrado.

• timeout - obsoleto: não é mais usado, mantido para compatibilidade com versões anteriores

• host - obsoleto: endereço IP para o serviço

• log_level - Obsoleto: nível de log que você gostaria que o serviço executasse.

• service_log_path - Obsoleto: alvo de registro de serviço, pode ser “stdout”, “stderr” ou


caminho de arquivo.

• opções - instância de opções do IE, fornecendo opções adicionais do IE

• desejado_capabilities - Obsoleto: alias de recursos; isso fará com que a assinatura con
consistente com RemoteWebDriver.

• keep_alive - obsoleto: se deve configurar RemoteConnection para usar HTTP Keep


vivo.

create_options() ÿ selenium.webdriver.ie.options.Options

quit() ÿ None Sai do


driver e fecha todas as janelas associadas.

Uso

driver.quit()

78 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

7.28 Android WebDriver

7.29 Opera WebDriver

7.30 PhantomJS WebDriver

7.31 Serviço PhantomJS WebDriver

7.32 Safari WebDriver

classe selenium.webdriver.safari.webdriver.WebDriver(porta=0, exe


cutable_path='/usr/bin/safaridriver',
reuse_service=False, de
sired_capabilities={'browserName': 'safari',
'mac'}, keep_alive=True,
'platformName':
vice_args=Nenhum,
opções: selecione nium.webdriver.safari.options.
quiet=Falso,
Ser
Opções = Nenhum, serviço: selecione
nium.webdriver.safari.service.Service =
Nenhum)

Bases: selenium.webdriver.remote.webdriver.WebDriver

Controla o SafariDriver e permite que você dirija o navegador.

__init__(porta=0, executable_path='/usr/bin/safaridriver', reuse_service=Falso, de


sired_capabilities={'browserName': 'safari', 'platformName': 'mac'}, quiet=False, keep_alive=True,
service_args=Nenhum, opções: selenium.webdriver.safari .options.Options = Nenhum, serviço:
selenium.webdriver.safari.service.Service = Nenhum)
Cria uma nova instância de driver Safari e inicia ou localiza um serviço safaridriver em execução.

argumentos

• porta - A porta na qual o serviço safaridriver deve escutar novas conexões. Se zero,
uma porta livre será encontrada.

• executable_path - Caminho para um executável de driver de safari personalizado a ser usado. Se ausente, /usr/
bin/safaridriver é usado.

• reuse_service - Se True, não gera uma instância do safaridriver; em vez disso, conecte-se a um já
serviço em execução que foi iniciado externamente.

• desejado_capabilities: objeto de dicionário com recursos desejados (pode ser usado para fornecer
vários interruptores do Safari).

• quiet - Se True, stdout e stderr do driver são suprimidos.

• keep_alive - Se deve configurar o SafariRemoteConnection para usar HTTP keep-alive.


O padrão é Verdadeiro.

• service_args : lista de argumentos a serem passados para o serviço safaridriver

• service - Objeto de serviço para lidar com o driver do navegador se você precisar passar detalhes extras

depurar()

7.28. Android WebDriver 79


Machine Translated by Google

Selenium Python Bindings, Versão 2

get_permission(permissão)

desistir()
Fecha o navegador e encerra o executável do SafariDriver que é iniciado ao iniciar o SafariDriver

set_permission(permissão, valor)

7.33 Serviço Safari WebDriver

class selenium.webdriver.safari.service.Service(executable_path: str =


'/usr/bin/safaridriver', porta: int = 0, quiet:
bool = False, service_args:
Opcional[Lista[str]] = Nenhum, env:
Opcional[Mapeamento[str, str]] = Nenhum)
Bases: selenium.webdriver.common.service.Service

Uma classe de serviço que é responsável por iniciar e parar o safaridriver Isso é suportado apenas no MAC OSX.

Parâmetros

• executável_path – caminho de instalação do executável do safaridriver, o padrão é /usr/bin/safaridriver.

• port – Porta na qual o serviço será executado, o padrão é 0, onde o sistema operacional decidirá.

• quiet – Suprime driver stdout & stderr, redireciona para os.devnull se habilitado.

• service_args – (Opcional) Lista de argumentos a serem passados para o subprocesso ao iniciar


o executável.

• env – (Opcional) Mapeamento de variáveis de ambiente para o novo processo, padrão para
os.environ.

__init__(executable_path: str = '/usr/bin/safaridriver', porta: int = 0, quiet: bool = False, ser


vice_args: Opcional[Lista[str]] = Nenhum, env: Opcional[Mapeamento[str, str]] = Nenhum)
Inicializar auto. Consulte help(type(self)) para obter uma assinatura precisa.

command_line_args() ÿ Lista[str]
Uma lista de argumentos do programa (excluindo o executável).

service_url
Obtém a url do Serviço SafariDriver

7.34 Selecione Suporte

classe selenium.webdriver.support.select.Select(webelement)
Bases: objeto

__init__(webelement) ÿ Nenhum
Construtor. É feita uma verificação de que o elemento fornecido é, de fato, uma tag SELECT. Se não for, uma
UnexpectedTagNameException será lançada.

argumentos

• webelement - SELECT elemento para agrupar

80 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

Exemplo: from selenium.webdriver.support.ui import Selecione

Select(driver.find_element(By.TAG_NAME, “select”)).select_by_index(2)

deselect_all() ÿ Nenhum
Limpa todas as entradas selecionadas. Isso só é válido quando o SELECT suporta várias seleções. lança NotImplementedError
Se o SELECT não suportar múltiplas seleções

desmarcar_por_index(índice)
Desmarque a opção no índice fornecido. Isso é feito examinando o atributo “index” de um elemento, e não apenas contando.

argumentos

• índice - A opção neste índice será desmarcada

lança NoSuchElementException Se não houver opção com índice especificado em SELECT

desmarcar_por_valor(valor)
Desmarque todas as opções que têm um valor correspondente ao argumento. Ou seja, quando dado “foo” isso desmarcaria uma
opção como:

<option value=”foo”>Barra</option>

argumentos

• valor - O valor a ser comparado

lança NoSuchElementException Se não houver opção com valor especificado em SELECT

deselect_by_visible_text(texto)
Desmarque todas as opções que exibem o texto correspondente ao argumento. Ou seja, quando dado “Bar” isso desmarcaria
uma opção como:

<option value=”foo”>Barra</option>

argumentos

• texto - O texto visível para correspondência

select_by_index(índice)
Selecione a opção no índice fornecido. Isso é feito examinando o atributo “index” de um elemento, e não apenas contando.

argumentos

• índice - A opção neste índice será selecionada

lança NoSuchElementException Se não houver opção com índice especificado em SELECT

select_by_value(valor)
Selecione todas as opções que tenham um valor correspondente ao argumento. Ou seja, quando dado “foo” isso selecionaria
uma opção como:

<option value=”foo”>Barra</option>

argumentos

• valor - O valor a ser comparado

lança NoSuchElementException Se não houver opção com valor especificado em SELECT

select_by_visible_text(texto)
Selecione todas as opções que exibem o texto correspondente ao argumento. Ou seja, quando dado “Bar” isso selecionaria uma
opção como:

7.34. Selecione Suporte 81


Machine Translated by Google

Selenium Python Bindings, Versão 2

<option value=”foo”>Barra</option>

argumentos

• texto - O texto visível para correspondência

lança NoSuchElementException Se não houver opção com o texto especificado em SELECT

all_selected_options
Retorna uma lista de todas as opções selecionadas pertencentes a esta tag selecionada

first_selected_option
A primeira opção selecionada nesta tag de seleção (ou a opção atualmente selecionada em uma seleção normal)

opções
Retorna uma lista de todas as opções pertencentes a esta tag selecionada

7.35 Suporte de espera

classe selenium.webdriver.support.wait.WebDriverWait(driver, tempo limite: float,


poll_frequency: float = 0.5,
ignore_exceptions:
Opcional[Iterable[Type[Exception]]]
= Nenhum)
Bases: objeto

__init__(driver, timeout: float, poll_frequency: float = 0.5, ignore_exceptions: Op


tional[Iterable[Type[Exception]]] = Nenhum)
Construtor, usa uma instância do WebDriver e atinge o tempo limite em segundos.

argumentos

• driver - Instância do WebDriver (Ie, Firefox, Chrome ou Remote)

• timeout - Número de segundos antes do tempo limite

• poll_frequency - intervalo de sono entre as chamadas Por padrão, é 0,5 segundo.

• ignore_exceptions - estrutura iterável de classes de exceção ignoradas durante as chamadas. por de


falha, ele contém apenas NoSuchElementException.

Exemplo:

de selenium.webdriver.support.wait importar WebDriverWait

element = WebDriverWait(driver, 10).until(lambda x: x.find_element(By.ID,


ÿÿ"someId"))

is_disappeared = WebDriverWait(driver, 30, 1, (ElementNotVisibleException)).\

until_not(lambda x: x.find_element(By.ID, "someId").is_


ÿÿexibido())

até(método, mensagem: str = ”)


Chama o método fornecido com o driver como um argumento até que o valor de retorno não seja avaliado como False.

Parâmetros

• método – callable(WebDriver)

• message – mensagem opcional para TimeoutException

82 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

Retorna o resultado da última chamada ao método

Gera selenium.common.exceptions.TimeoutException se o tempo limite ocorrer

until_not(método, mensagem: str = ”)


Chama o método fornecido com o driver como um argumento até que o valor de retorno seja avaliado como False.

Parâmetros

• método – callable(WebDriver)

• message – mensagem opcional para TimeoutException

Retorna o resultado da última chamada ao método, ou True se o método gerou um dos ignorados
exceções

Gera selenium.common.exceptions.TimeoutException se o tempo limite ocorrer

7.36 Suporte de cores

class selenium.webdriver.support.color.Color(red: Any, green: Any, blue: Any, alpha:


Qualquer = 1)
Bases: objeto

Classe de suporte de conversão de cores

Exemplo:

de selenium.webdriver.support.color import Color

print(Color.from_string('#00ff33').rgba)
print(Color.from_string('rgb(1, 255, 3)').hex)
print(Color.from_string('blue').rgba)

__init__(vermelho: Qualquer, verde: Qualquer, azul: Qualquer, alfa: Qualquer = 1) ÿ Nenhum


Inicializar auto. Consulte help(type(self)) para obter uma assinatura precisa.

classmethod from_string(str_: str) ÿ selenium.webdriver.support.color.Color

hexadecimal

rgb

rgba

7.37 Suporte para WebDriver de Disparo de Eventos

classe selenium.webdriver.support.event_firing_webdriver.EventFiringWebDriver(driver:
se
o
nium.webdriver.rem
event_listener:
se
le
nium.webdriver.sup
Bases: objeto

Um wrapper em torno de uma instância arbitrária do WebDriver que suporta eventos de disparo

7.36. Suporte de cores 83


Machine Translated by Google

Selenium Python Bindings, Versão 2

__init__(driver: selenium.webdriver.remote.webdriver.WebDriver, event_listener: selecionar

nium.webdriver.support.abstract_event_listener.AbstractEventListener) ÿ Nenhum
Cria uma nova instância do EventFiringWebDriver

argumentos

• driver: Uma instância do WebDriver

• event_listener : Instância de uma classe que subclasse AbstractEventListener e implementa


isso total ou parcialmente

Exemplo:

from selenium.webdriver import Firefox from


selenium.webdriver.support.events import EventFiringWebDriver, ÿÿAbstractEventListener

classe MyListener(AbstractEventListener):
def before_navigate_to(self, url, driver):
print("Antes de navegar para %s" % url) def
after_navigate_to(self, url, driver): print("Depois de navegar para
%s" % url)

driver = Firefox() ef_driver


= EventFiringWebDriver(driver, MyListener()) ef_driver.get("http://www.google.co.in/")

voltar() ÿ Nenhum

fechar () ÿ Nenhum

execute_async_script(script, *args)

execute_script(script, *args)

find_element(by='id', value=None) ÿ selenium.webdriver.remote.webelement.WebElement

find_elements(by='id', value=None) ÿ List[selenium.webdriver.remote.webelement.WebElement]

forward() ÿ Nenhum

get(url: str) ÿ Nenhum

quit() ÿ Nenhum

driver_envolvido
Retorna a instância do WebDriver agrupada por este EventsFiringWebDriver

classe selenium.webdriver.support.event_firing_webdriver.EventFiringWebElement(webelement:
se
le
nium.webdriver.re
ef_driver:
se
le
nium.webdriver.su
Bases: objeto

Um wrapper em torno da instância WebElement que suporta eventos de disparo

__init__(webelement: selenium.webdriver.remote.webelement.WebElement, ef_driver: selecionar

nium.webdriver.support.event_firing_webdriver.EventFiringWebDriver) ÿ Nenhum Cria uma


nova instância do EventFiringWebElement

84 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

clear() ÿ Nenhum

click() ÿ Nenhum

find_element(by='id', value=None) ÿ selenium.webdriver.remote.webelement.WebElement

find_elements(by='id', value=None) ÿ List[selenium.webdriver.remote.webelement.WebElement]

send_keys(*valor) ÿ Nenhum

wrap_element
Retorna o WebElement agrupado por esta instância EventFiringWebElement

7.38 Suporte ao ouvinte de eventos abstratos

classe selenium.webdriver.support.abstract_event_listener.AbstractEventListener
Bases: objeto

O ouvinte de evento deve criar uma subclasse e implementá-lo total ou parcialmente

after_change_value_of(elemento, driver) ÿ Nenhum

after_click(elemento, driver) ÿ Nenhum

after_close(driver) ÿ Nenhum

after_execute_script(script, driver) ÿ Nenhum

after_find(por, valor, driver) ÿ Nenhum

after_navigate_back(driver) ÿ Nenhum

after_navigate_forward(driver) ÿ Nenhum

after_navigate_to(url: str, driver) ÿ Nenhum

after_quit(driver) ÿ Nenhum

before_change_value_of(elemento, driver) ÿ Nenhum

before_click(elemento, driver) ÿ Nenhum

before_close(driver) ÿ Nenhum

before_execute_script(script, driver) ÿ Nenhum

before_find(por, valor, driver) ÿ Nenhum

before_navigate_back(driver) ÿ Nenhum

before_navigate_forward(driver) ÿ Nenhum

before_navigate_to(url: str, driver) ÿ Nenhum

before_quit(driver) ÿ Nenhum

on_exception(exceção, driver) ÿ Nenhum

7.39 Condições esperadas Suporte

selenium.webdriver.support.expected_conditions.alert_is_present()

7.38. Suporte a ouvinte de eventos abstratos 85


Machine Translated by Google

Selenium Python Bindings, Versão 2

selenium.webdriver.support.expected_conditions.all_of(*expected_conditions)
Uma expectativa de que todas as várias condições esperadas são verdadeiras. Equivalente a um 'E' lógico. Retorna: Quando qualquer
ExpectedCondition não for atendida: False. Quando todas as ExpectedConditions forem atendidas: Uma lista com o valor de retorno
de cada condição esperada.

selenium.webdriver.support.expected_conditions.any_of(*expected_conditions)
Uma expectativa de que qualquer uma das várias condições esperadas seja verdadeira. Equivalente a um 'OU' lógico. Retorna os resultados da
primeira condição correspondente, ou False se nenhum corresponder.

selenium.webdriver.support.expected_conditions.element_attribute_to_include(localizador,
no
tributo_)
Uma expectativa para verificar se o atributo fornecido está incluído no elemento especificado. localizador, atributo

selenium.webdriver.support.expected_conditions.element_located_selection_state_to_be(localizador, is_selec

Uma expectativa para localizar um elemento e verificar se o estado de seleção especificado está naquele estado. locator é uma tupla
de (by, path) is_selected é um booleano

selenium.webdriver.support.expected_conditions.element_located_to_be_selected(locator)
Uma expectativa para o elemento a ser localizado é selecionada. localizador é uma tupla de (by, path)

selenium.webdriver.support.expected_conditions.element_selection_state_to_be(element, is_selected)

Uma expectativa para verificar se o elemento fornecido está selecionado. O elemento é o objeto WebElement is_selected é um
booleano.

selenium.webdriver.support.expected_conditions.element_to_be_clickable(mark)
Uma expectativa para verificar um elemento é visível e habilitada de forma que você possa clicar nela.

elemento é um localizador (texto) ou um WebElement

selenium.webdriver.support.expected_conditions.element_to_be_selected(element)
Uma expectativa para verificar a seleção é selecionada. elemento é objeto WebElement

selenium.webdriver.support.expected_conditions.frame_to_be_available_and_switch_to_it(locato Uma expectativa para verificar se o quadro fornecido


está disponível para alternar. Se o quadro estiver disponível, ele alterna o driver fornecido para o quadro especificado.

selenium.webdriver.support.expected_conditions.invisibility_of_element(element)
Uma expectativa para verificar se um elemento é invisível ou não está presente no DOM.

elemento é um localizador (texto) ou um WebElement

selenium.webdriver.support.expected_conditions.invisibility_of_element_located(locator)
Uma expectativa para verificar se um elemento é invisível ou não está presente no DOM.

localizador usado para encontrar o elemento

selenium.webdriver.support.expected_conditions.new_window_is_opened(current_handles)
Uma expectativa de que uma nova janela será aberta e terá o número de identificadores de janelas aumentado

selenium.webdriver.support.expected_conditions.none_of(*expected_conditions)
Uma expectativa de que nenhuma de 1 ou várias condições esperadas seja verdadeira. Equivalente a um 'NÃO-OU' lógico. Retorna
um Booleano

selenium.webdriver.support.expected_conditions.number_of_windows_to_be(num_windows)
Uma expectativa de que o número de janelas seja um determinado valor.

selenium.webdriver.support.expected_conditions.presence_of_all_elements_located(locator)
Uma expectativa para verificar se há pelo menos um elemento presente em uma página da web. localizador é usado para encontrar o
elemento retorna a lista de WebElements uma vez que eles são localizados

86 Capítulo 7. API do WebDriver


Machine Translated by Google

Selenium Python Bindings, Versão 2

selenium.webdriver.support.expected_conditions.presence_of_element_located(locator)
Uma expectativa para verificar se um elemento está presente no DOM de uma página. Isso não significa necessariamente
que o elemento esteja visível. localizador - usado para encontrar o elemento retorna o WebElement uma vez localizado

selenium.webdriver.support.expected_conditions.staleness_of(element)
Aguarde até que um elemento não esteja mais anexado ao DOM. element é o elemento pelo qual esperar. retorna False se o
elemento ainda estiver anexado ao DOM, true caso contrário.

selenium.webdriver.support.expected_conditions.text_to_be_present_in_element(localizador,
texto_)
Uma expectativa para verificar se o texto fornecido está presente no elemento especificado. localizador, texto

selenium.webdriver.support.expected_conditions.text_to_be_present_in_element_attribute(local
no
tribo
texto_
Uma expectativa para verificar se o texto fornecido está presente no atributo do elemento. localizador, atributo, texto

selenium.webdriver.support.expected_conditions.text_to_be_present_in_element_value(localizador,
texto_)
Uma expectativa para verificar se o texto fornecido está presente no valor do elemento. localizador, texto

selenium.webdriver.support.expected_conditions.title_contains(title: str)
Uma expectativa para verificar se o título contém uma substring com distinção entre maiúsculas e minúsculas. title é o fragmento do título
esperado retorna True quando o título corresponder, False caso contrário

selenium.webdriver.support.expected_conditions.title_is(title: str)
Uma expectativa para verificar o título de uma página. title é o título esperado, que deve ser uma correspondência exata retorna
True se o título corresponder, false caso contrário.

selenium.webdriver.support.expected_conditions.url_changes(url: str)
Uma expectativa para verificar o URL atual. url é a url esperada, que não deve ser uma correspondência exata, retorna True
se a url for diferente, false caso contrário.

selenium.webdriver.support.expected_conditions.url_contains(url: str)
Uma expectativa para verificar se o URL atual contém uma substring que diferencia maiúsculas de minúsculas. url é o fragmento de
url esperado, retorna True quando o url corresponder, False caso contrário

selenium.webdriver.support.expected_conditions.url_matches(padrão: str)
Uma expectativa para verificar o URL atual. pattern é o padrão esperado, que deve ser uma correspondência exata retorna
True se o URL corresponder, false caso contrário.

selenium.webdriver.support.expected_conditions.url_to_be(url: str)
Uma expectativa para verificar o URL atual. url é a url esperada, que deve ser uma correspondência exata retorna True se a
url corresponder, caso contrário, false.

selenium.webdriver.support.expected_conditions.visibility_of(element)
Uma expectativa para verificar se um elemento, conhecido por estar presente no DOM de uma página, está visível. Visibilidade
significa que o elemento não é apenas exibido, mas também tem altura e largura maiores que 0. elemento é o WebElement
retorna o (mesmo) WebElement uma vez visível

selenium.webdriver.support.expected_conditions.visibility_of_all_elements_located(locator)
Uma expectativa para verificar se todos os elementos estão presentes no DOM de uma página e visíveis. Visibilidade significa
que os elementos não são apenas exibidos, mas também têm altura e largura maiores que 0. localizador - usado para
localizar os elementos retorna a lista de WebElements uma vez que eles são localizados e visíveis

selenium.webdriver.support.expected_conditions.visibility_of_any_elements_located(locator)
Uma expectativa para verificar se há pelo menos um elemento visível em uma página da web. localizador é usado para encontrar o
elemento retorna a lista de WebElements uma vez que eles são localizados

selenium.webdriver.support.expected_conditions.visibility_of_element_located(locator)
Uma expectativa para verificar se um elemento está presente no DOM de uma página e visível. Visibilidade significa que

7.39. Condições esperadas Apoio 87


Machine Translated by Google

Selenium Python Bindings, Versão 2

o elemento não é apenas exibido, mas também tem altura e largura maiores que 0. localizador - usado para localizar o
elemento retorna o WebElement assim que for localizado e visível

88 Capítulo 7. API do WebDriver


Machine Translated by Google

CAPÍTULO 8

Apêndice: Perguntas Frequentes

Outro FAQ: https://github.com/SeleniumHQ/selenium/wiki/Frequently-Asked-Questions

8.1 Como usar o ChromeDriver?

Baixe o chromedriver mais recente na página de download. Descompacte o arquivo:

descompacte chromedriver_linux64.zip

Você deve ver um executável do chromedriver. Agora você pode criar uma instância do Chrome WebDriver assim:

driver = webdriver.Chrome(executable_path="/caminho/para/chromedriver")

O restante do exemplo deve funcionar conforme fornecido em outra documentação.

8.2 O Selenium 2 suporta XPath 2.0?

Ref: http://seleniumhq.org/docs/03_webdriver.html#how-xpath-works-in-webdriver

O Selenium delega as consultas XPath para o próprio mecanismo XPath do navegador, portanto, o Selenium oferece suporte a XPath para
tudo o que o navegador suporta. Em navegadores que não possuem mecanismos XPath nativos (IE 6,7,8), o Selenium oferece suporte
apenas a XPath 1.0.

8.3 Como rolar para o final de uma página?

Ref: http://blog.varunin.com/2011/08/scrolling-on-pages-using-selenium.html

Você pode usar o método execute_script para executar javascript na página carregada. Assim, você pode chamar a API JavaScript para
rolar até o final ou qualquer outra posição de uma página.

89
Machine Translated by Google

Selenium Python Bindings, Versão 2

Aqui está um exemplo para rolar para a parte inferior de uma página:

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

a janela objeto no DOM tem um scrollTo para rolar para qualquer posição de uma janela aberta. A altura de rolagem é uma propriedade comum
a todos os elementos. O document.body.scrollHeight fornecerá a altura de todo o corpo da página.

8.4 Como salvar arquivos automaticamente usando o perfil personalizado do Firefox?

Ref: http://stackoverflow.com/questions/1176348/access-to-file-download-dialog-in-firefox

Ref: http://blog.codecentric.de/en/2010/07/file-downloads-with-selenium-mission-impossible/

O primeiro passo é identificar o tipo de arquivo que você deseja salvar automaticamente.

Para identificar o tipo de conteúdo que você deseja baixar automaticamente, você pode usar o curl:

curl -I URL | grep "Tipo de conteúdo"

Outra maneira de encontrar o tipo de conteúdo é usando as solicitações módulo, você pode usá-lo assim:

importar solicitações
content_type = requests.head('http://www.python.org').headers['content-type'] print(content_type)

Depois que o tipo de conteúdo for identificado, você poderá usá-lo para definir a preferência de perfil do firefox: browser.helperApps.
neverAsk.saveToDisk

Aqui está um exemplo:

import os

do selenium import webdriver

fp = webdriver.FirefoxProfile()

fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.manager.showWhenStarting",False) fp.set_preference("browser.download.dir",
os.getcwd()) fp. set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream ÿÿ")

navegador = webdriver.Firefox(firefox_profile=fp) navegador.get("http://


pypi.python.org/pypi/selenium")
navegador.find_element_by_partial_link_text("selenium-2").click()

No exemplo acima, application/octet-stream é usado como o tipo de conteúdo.

A opção browser.download.dir especifica o diretório onde você deseja fazer download dos arquivos.

8.5 Como fazer upload de arquivos em entradas de arquivo?

Selecione o elemento <input type="file"> e chame o método send_keys() passando o caminho do arquivo, seja o caminho relativo ao script de
teste ou um caminho absoluto. Lembre-se das diferenças nos nomes de caminho entre os sistemas Windows e Unix.

90 Capítulo 8. Apêndice: Perguntas Frequentes


Machine Translated by Google

Selenium Python Bindings, Versão 2

8.6 Como usar o firebug com o Firefox?

Primeiro baixe o arquivo Firebug XPI, depois chame o método add_extension disponível para o perfil do firefox:

do selenium import webdriver

fp = webdriver.FirefoxProfile()

fp.add_extension(extension='firebug-1.8.4.xpi')
fp.set_preference("extensions.firebug.currentVersion", "1.8.4") #Evite tela de inicialização navegador = webdriver.Firefox(firefox_profile=fp)

8.7 Como fazer uma captura de tela da janela atual?

Use o método save_screenshot fornecido pelo webdriver:

do selenium import webdriver

driver = webdriver.Firefox() driver.get('http://


www.python.org/') driver.save_screenshot('screenshot.png')
driver.quit()

8.6. Como usar o firebug com o Firefox? 91


Machine Translated by Google

Selenium Python Bindings, Versão 2

92 Capítulo 8. Apêndice: Perguntas Frequentes


Machine Translated by Google

CAPÍTULO 9

índices e tabelas

• genindex

• modindex

• procurar

93
Machine Translated by Google

Selenium Python Bindings, Versão 2

94 Capítulo 9. Índices e tabelas


Machine Translated by Google

Índice do Módulo Python

s selenium.webdriver.support.abstract_event_listener,
85
selenium.common.exceptions, 32
selenium.webdriver.chrome.options, 59 selenium.webdriver.support.color, 83
selenium.webdriver.chrome.service, 59 selenium.webdriver.support.event_firing_webdriver,
selenium.webdriver.chrome.webdriver, 58 83
selenium.webdriver.support.expected_conditions, selenium.webdriver.common.action_chains,
85
41 selenium.webdriver.common.alert, 44 selenium.webdriver.support.select, 80
selenium.webdriver.common.by, 47 selenium.webdriver.support.wait, 82
selenium.webdriver.common.desired_capabilities,
48
selenium.webdriver.common.html5.application_cache,
52
selenium.webdriver.common.keys, 45
selenium.webdriver.common.proxy, 48
selenium.webdriver.common.service, 51
selenium.webdriver.common.utils, 50
selenium.webdriver.firefox.extension_connection,
57
selenium.webdriver.firefox.firefox_binary,
57
selenium.webdriver.firefox.firefox_profile,
56
selenium.webdriver.firefox.options, 55
selenium.webdriver.firefox.webdriver,

53 selenium.webdriver.ie.webdriver, 78
selenium.webdriver.remote.command, 72
selenium.webdriver.remote.errorhandler,
74
selenium.webdriver.remote.mobile, 75
selenium.webdriver.remote.remote_connection,
76
selenium.webdriver.remote.utils, 77
selenium.webdriver.remote.webdriver, 59
selenium.webdriver.remote.webelement,
68
selenium.webdriver.safari.service, 80
selenium.webdriver.safari.webdriver, 79

95
Machine Translated by Google

Selenium Python Bindings, Versão 2

96 Índice do Módulo Python


Machine Translated by Google

Índice

Símbolos __init__() (selenium.webdriver.remote.webdriver.WebDriver method), 60 __init__()


(selenium.common.exceptions.UnexpectedAlertPresentException
__init__() (selenium.webdriver.remote.webelement.WebElement method), 40 method), 69 __init__ () (selenium.common.exceptions.WebDriverException __init__()
(selenium.webdriver.safari.service.Service method), método 41 ), 80 __init__()
(selenium.webdriver.chrome.service.Service __init__() (selenium. webdriver.safari.webdriver.WebDriver method), 59 method), 79 __init__()
(selenium.webdriver.chrome.webdriver.WebDriver __init__()
(selenium.webdriver.support.color.Color method), 58 method), 83 __init__ () (selenium.webdriver.common.action_chains.ActionChains __init__()
(selenium.webdriver.support.event_firing_webdriver.EventF
__init__() (selenium.webdriver.support.event_firing_webdriver.EventF method), 84 method), 41 method), 83

__init__() (selenium.webdriver.common.alert.Alert method), 45 __init__()


(selenium.webdriver.common.html5.application_cache.ApplicationCache
__init__() (selenium.webdriver.support.select.Select method), 52 method ), 80 __init__()
selenium.webdriver.support.wait.WebDriverWait), método 49 ), 82(selenium.webdriver.common.proxy.Proxy __init__() (método
__init__() (selenium.webdriver.common.service.Service método), 51 A
__init__()
(selenium.webdriver.firefox.extension_connection.ExtensionConnection AbstractEventListener (método de classe), 57
nium.webdriver.support.abstract_event_listener), __init__()
(selenium.webdriver.firefox.firefox_binary.FirefoxBinary 85 method) , 57 (selenium.webdriver.common.alert.Alert accept() __init__()
(selenium.webdriver.firefox.firefox_profile.FirefoxProfile method), 45
method), 56 accept_untrusted_certs

em selecionar

__init__() (método selenium.webdriver.firefox.options.Log), 55 (selecionar

nium.webdriver.firefox.firefox_profile.FirefoxProfile attribute), 56
__init__()atributo
method), 55 nium.webdriver.remote.webelement.WebElement __init__() (selenium.webdriver.firefox. (selenium.webdriver.firefox.options.Options access_name
webdriver.WebDriver), método 71 ), 53 ActionChains
__init__() (método selenium.webdriver.ie.webdriver.WebDriver), 78 (selecionar

(classe em selecionar

nium.webdriver.common.action_chains), 41
__init__() (selenium.webdriver.remote.mobile.Mobile ADD (atributo
selenium.webdriver.common.keys.Keys),
(selenium.webdriver.remote.mobile.Mobile.ConnectionType método),
add_command_line_options() método), 75 76 45 __init__()
nium.webdriver.firefox.firefox_binary.FirefoxBinary __init__()
(método selenium.webdriver.remote.remote_connection.RemoteConnection), 57 método), 76
(selecionar

97
Machine Translated by Google

Selenium Python Bindings, Versão 2

ADD_COOKIE (atributo selenium.webdriver.remote.command.Command avião_mode), 72 atributo (selecionar

nium.webdriver.remote.mobile.Mobile.ConnectionType add_cookie()), 76 Alertem


(classe
selenium.webdriver.common.alert), 44 módulo sele alert_is_present()
(em nium.webdriver.support.expected_conditions), 85
(selecione nium.webdriver.remote.webdriver.WebDriver
método), 60
(selecione ADD_CREDENTIAL nium.webdriver.remote.command.Command
attribute), 72 add_credential()
ALL_NETWORK (selenium.webdriver.remote.mobile.Mobile attribute), 76
(em sele nium.webdriver.support.expected_conditions), 85
(seleciona nium.webdriver.remote.webdriver.WebDriver tudo de() módulo
method), 61 add_extension()
(selecionar

nium.webdriver.firefox.firefox_profile.FirefoxProfile (selecione o método


(selecione
all_selected_options),
82 add_to_capabilities()
56 atributo
métodonium.webdriver.support.select.Select),
nium.webdriver.common.proxy.Proxy), 49

ALT (atributo selenium.webdriver.common.keys.Keys),


45
ADD_VIRTUAL_AUTHENTICATOR (sele ANONYMOUS_PROFILE_NAME (selecionar

nium.webdriver.remote.command.Command attribute), 72 atributo nium.webdriver.firefox.firefox_profile.FirefoxProfile), 56


add_virtual_authenticator() (sele (no sele nium.webdriver.support.expected_conditions), 86
nium.webdriver.remote.webdriver.WebDriver method), 61 qualquer_de() módulo
application_cache
AddonFormatError, 56 after_change_value_of()

(sele
(selecionar nium.webdriver.remote.webdriver.WebDriver
nium.webdriver.support.abstract_event_listener.AbstractEventListener attribute),
nium.webdriver.common.html5.application_cache),
66 method), 85 (class ApplicationCache
after_click() 52 nium.webdriver. support.abstract_event_listener.AbstractEventListener method), 85 aria_role
(selenium.webdriver.remote.webelement.WebElement em
attribute), 71 selecionar
nium.webdriver.support.abstract_event_listener.AbstractEventListener ARROW_DOWN (selenium.webdriver.common.keys.Keys
(selecionar after_close() method), 85 atributo), 45
ARROW_LEFT (selenium.webdriver.common.keys.Keys
after_execute_script() nium.webdriver.support.abstract_event_listener.AbstractEventListener atributo), 45 método), 85 ARROW_RIGHT
(selenium.webdriver.common.keys.Keys atributo), 45 after_find()ARROW_UP
nium.webdriver.support.abstract_event_listener.AbstractEventListener
(selenium.webdriver.common.keys.Keys at method), 85 tributo), 45
(selecionar after_navigate_back() assert_process_still_running()

(selecionar

(selecionar

(selecionar (selecionar

nium.webdriver.support.abstract_event_listener.AbstractEventListener nium.webdriver.common.service.Service method), 85


method), 51 after_navigate_forward() assume_untrusted_cert_issuer nium.webdriver.support.abstract_event_listener.AbstractEventListener
nium.webdriver.firefox.firefox_profile.FirefoxProfile
method) , 85 atributo), 56 after_navigate_to() nium.webdriver.support.abstract_event_listener.AbstractEventListener
(selecionar 85 after_quit() attribute), 49 attribute), 49 method), (selecionar

nium.webdriver.support.abstract_event_listener.AbstractEventListener AUTODETECT (selenium.webdriver.common.


proxy.ProxyType), método
85 atributo), 50 AIRPLANE_MODE
nium.webdriver.remote.mobile.Mobile tributo), 76
(selecionar auto_detect (selenium.webdriver.common.proxy.Proxy

detecção automática (selenium.webdriver.common.proxy.Proxy


(selecionar

(selecionar

no B
back() (selenium.webdriver.remote.webdriver.WebDriver

98 Índice
Machine Translated by Google

Selenium Python Bindings, Versão 2

método), 61 capacidades back() (método selenium.webdriver.support.event_firing_webdriver.EventFiringWebDriver), (sele

84 nium.webdriver.remote.webdriver.WebDriver attribute), 66 check_response()

nium.webdriver.remote.errorhandler.ErrorHandler method), 75 CHECKING

BACK_SPACE (atributo selenium.webdriver.common.keys.Keys), 45 BACKSPACE (selenium.webdriver.common.html5.application_cache.Applica (class attribute), 52 (selecionar

(selenium.webdriver.common.keys.Keys no tributo), 45 BaseWebDriver nium.webdriver.remote.webdriver), 59 CHROME

(selenium.webdriver.common.desired_capabilities.DesiredCapabi (atributo de

classe), 48 BaseWebElement nium.webdriver.remote.webelement), 68 CLASS_NAME (selenium.webdriver.common.by.By


em selecionar
em tributo), 47 before_change_value_of() nium.webdriver.support.abstract_event_listener.AbstractEventListener
tributo), 45 clear() (selenium.webdriver.remote.webelement.WebElement
CLEAR (selenium.webdriver.common.keys.Keys
before_click () at method), 85

nium.webdriver.support.abstract_event_listener.AbstractEventListener method), 69nium.webdriver.support.abstract_event_listener.AbstractEventListener


method), 85 clear() (selenium.webdriver.support.event_firing_webdriver.EventFirin
(sele métodomethod), 84 before_close()
CLEAR_ELEMENT), 85 n

ium.webdriver.remote.command.Command
(selenium.webdriver.remote.webelement.WebElement em selecionar
before_execute_script()(selenium.webdriver.common.action_chains.ActionChains
attribute),method),
nium.webdriver.support.abstract_event_listener.AbstractEventListener 72 nium.webdriver.support.abstract_event_listener.AbstractEventListener click()
69 method), 85 click() (selenium.webdriver.support.event_firing_webdriver.EventFirin
method), 85 method), 41 before_find() click ()

method), 85 before_navigate_back()

(selecionar

(selecionar

(selecionar

(selecionar

(selecionar

(selecionar

nium.webdriver.support.abstract_event_listener.AbstractEventListener click_and_hold() method), 85 (selecionar

nium.webdriver.common.action_chains.ActionChains method), 41 before_navigate_forward() nium.webdriver.support.abstract_event_listener.AbstractEventListener (selecionar método

before_navigate_to() nium.webdriver.support.abstract_event_listener.AbstractEventListener CLICK_ELEMENT), 85 nium. webdriver.remote.command.Command


CLOSE (selenium.webdriver.remote.command.Command
(selecionar attribute), 72
method), 85 attribute), 72 close() (selenium.webdriver.

remote.remote_connection.RemoteConnecti before_quit()
(selenium.webdriver.remote.webdriver.WebDriver method),nium.webdriver.support.abstract_event_listener.AbstractEventListener
61 bidi_connection() close() (selenium .webdriver.support.event_firing_webdriver.EventFirin
method), 76 method), 85
method),
close() 84 Color (classe em

selenium.webdriver.support.color), 83 (classe em sele Command

(selecionar

(selecionar

(sele
nium.webdriver.remote.webdriver.WebDriver method), 61

binary (selenium.webdriver.firefox.options.Options no tributo), 56 binary_location

(selecionar nium.webdriver.remote.command), 72

nium.webdriver.firefox.options.Options tributo), 56 attribute), 46 no COMANDO (selenium.webdriver.common.keys.Keys

browser_name (sele command_line_args() nium.webdriver.remote.remote_connection.RemoteConnection

nium.webdriver.common.service.Service method), 51 attribute), 77 By (classe em selenium.webdriver.common.by),


command_line_args() 47 (sele
nium.webdriver.safari.service.Service (selecionar

method), 80

C
CANCELAR (selenium.webdriver.common.keys.Keys no tributo), 45 connect() (selenium.webdriver.firefox.extension_connection.Extension method), 58

Índice 99
Machine Translated by Google

Selenium Python Bindings, Versão 2

tributo connect_and_quit()), 59 nium.webdriver.firefox.extension_connection.ExtensionConnection


(selecionar

default_capabilities class method), 58 nium.webdriver.firefox.options.Options


(selenium.webdriver.remote.mobile.Mobile
tributo), 56 contexto (selecionar

at tributo), 76 DEFAULT_PREFERENCES context() (selenium.webdriver.firefox.webdriver.WebDriver method),


54 (selecione CONTEXT_CHROME atributo no

context_click() nium.webdriver.firefox.webdriver.WebDriver), 55
(selecionar

atributo nium.webdriver.firefox.firefox_profile.FirefoxProfile), 56 DELETE


(selenium.webdriver.common.keys.Keys no tributo), 46
DELETE_ALL_COOKIES

(selecionar (selecione o atributo nium.webdriver.remote.command.Command),

método nium.webdriver.common.action_chains.ActionChains), 42 72
CONTEXT_CONTENT delete_all_cookies() nium.webdriver.remote.webdriver.WebDriver method),
(sele
61
(sele DELETE_COOKIE nium.webdriver.remote.command.Command

(selecione o atributo nium.webdriver.firefox.webdriver.WebDriver), attribute), 72 delete_cookie() (sele


55 CONTEXT_HANDLES nium.webdriver.remote.webdriver.WebDriver method) , 61 (sele
DELETE_SESSION nium.webdriver.remote.command.Command
(selecione o atributo nium.webdriver.remote.command.Command), attribute), 72 deselect_all() (sele nium.webdriver.support.select.Select
72 method), 81
contextos (selenium.webdriver.remote.mobile.Mobile
atributo), 76
AO CONTROLE (selenium.webdriver.common.keys.Keys
atributo), 46
create_matches() (em módulo selecionar

nium.webdriver.remote.webdriver), 68
criar_opções() (selecionar

nium.webdriver.ie.webdriver.WebDriver method), 78

(sele create_web_element() deselect_by_index() nium.webdriver.support.select.Select method), 81 (sele


nium.webdriver.remote.webdriver.WebDriver method), 61 CSS_SELECTOR
(selenium.webdriver.common.by.By em tributo), 47

deselect_by_value() nium.webdriver.support.select.Select method), 81 (sele

(selecione o atributo nium.webdriver.remote.command.Command (sele


deselect_by_visible_text() nium.webdriver.support.select.Select method), 81
CURRENT_CONTEXT_HANDLE), 72 current_url

(selenium.webdriver.remote.webdriver.WebDriver (selecione o
atributo desejado_capabilities), 67 atributo nium.webdriver.remote.webdriver.WebDriver), 67 current_window_handle DesiredCapabilities
nium.webdriver.common.desired_capabilities), 48 ( classe sele

(selecione o atributo nium.webdriver.remote.webdriver.WebDriver), em

67

D DIRETO (atributo selenium.webdriver.common.proxy.ProxyType), 50

data (atributo selenium.webdriver.remote.mobile.Mobile.ConnectionType), 76


dispense() (selenium.webdriver.common.alert.Alert
DATA_NETWORK nium.webdriver.remote.mobile.Mobile tributo), 46 tributo),
76 double_click() debug() (selenium.webdriver.safari.webdriver. WebDriver
(selecionar
método), 45
nium.webdriver.common.action_chains.ActionChains method),no DIVIDE (selenium.webdriver.common.keys.Keys em
79 method),
42
(selenium.webdriver.common.keys.Keys DECIMAL DOWN (selenium.webdriver.common.keys.Keys
attribute), (selecionar

atributo), 46
46
default_capabilities (selecionar

nium.webdriver.chrome.options.Options no BAIXANDO (selenium.webdriver.common.html5.application_cache.Ap

100 Índice
Machine Translated by Google

Selenium Python Bindings, Versão 2

atributo), 52 enable_mobile() (selecionar

drag_and_drop() método (selecionar nium.webdriver.chrome.options.Options


nium.webdriver.common.action_chains.ActionChains), 42 method), 59 enable_mobile()
drag_and_drop_by_offset() método nium.webdriver.firefox.options.Options method), 55 (selecionar

nium.webdriver.common.action_chains.ActionChains), 42 dump_json()
(selecionar codificado
(selenium.webdriver.firefox.firefox_profile.FirefoxProfile
attribute), 56 END (selenium atributo .webdriver.common.keys.Keys),
(no módulo selecionar

nium.webdriver.remote.utils), 77
46
E ENTER (selenium.webdriver.common.keys.Keys no atributo), 46
(selenium.webdriver.common.desired_capabilities.DesiredCapabilities EQUALSEDGE
(selenium.webdriver.common.keys.Keys no atributo),
48 tributo), 46 element_attribute_to_include()

ErrorCode
módulo sele nium.webdriver.support.expected_conditions), 86 (no (classe em selecionar

nium.webdriver.remote.errorhandler), 74
ErrorHandler (classe em selecionar

ELEMENT_CLICK_INTERCEPTED (selecionar
nium.webdriver.remote.errorhandler), 75
atributo nium.webdriver.remote.errorhandler.ErrorCode), ESCAPE (selenium.webdriver.common.keys.Keys no tributo),
74 46 EventFiringWebDriver (classe em
ELEMENT_IS_NOT_SELECTABLE (selecionar nium.webdriver.support.event_firing_webdriver), 83 selecionar

atributo nium.webdriver.remote.errorhandler.ErrorCode), EventFiringWebElement (classe em


74 nium.webdriver.support.event_firing_webdriver), 84
módulo element_located_selection_state_to_be() (em selecionar

nium.webdriver.support.expected_conditions), 86

execute() (método selenium.webdriver.remote.remote_connection.RemoteConn), 76


element_located_to_be_selected() (no módulo sele execute() (método selenium.webdriver.remote.webdriver.WebDriver), 61
nium.webdriver.support.expected_conditions),
86 EXECUTE_ASYNC_SCRIPT

(sele
ELEMENT_NOT_INTERACTABLE nium.webdriver.remote.command.Command
(selecione o atributo attribute), 72 (sele execute_async_script()
nium.webdriver.remote.errorhandler.ErrorCode), 74 nium.webdriver.remote.webdriver.WebDriver method), 61
(selecione ELEMENT_NOT_VISIBLE atributo execute_async_script()
nium.webdriver.remote.errorhandler.ErrorCode), 74
ELEMENT_SCREENSHOT (sele
(sele nium.webdriver.support.event_firing_webdriver.EventFiringWeb method),
nium.webdriver.remote.command.Command 84 execute_script()
attribute), 72 element_selection_state_to_be() (no
módulo sele nium.webdriver.support.expected_conditions), 86 (selecione nium.webdriver.remote.webdriver.WebDriver
method), 62
execute_script() (selecionar

nium.webdriver.support.event_firing_webdriver.EventFiringWeb method),
element_to_be_clickable() (no módulo sele 84 ExtensionConnection (classe sele
nium.webdriver.support.expected_conditions), 86 nium.webdriver.firefox.extension_connection), 57 em

element_to_be_selected() (no módulo sele


nium.webdriver.support.expected_conditions), 86 ExtensionConnectionError, 57
ElementClickInterceptedException, 32
ElementNotInteractableException, 32
F
ElementNotSelectableException, 33 ElementNotVisibleException, F1 (atributo selenium.webdriver.common.keys.Keys), 46 F10
33 (atributo selenium.webdriver.common.keys.Keys),
46

Índice 101
Machine Translated by Google

Selenium Python Bindings, Versão 2

F11 (atributo selenium.webdriver.common.keys.Keys), nium.webdriver.support.event_firing_webdriver.EventFiringWeb method), 84


46 find_elements() nium.webdriver.support.event_firing_webdriver.EventFiringWeb
F12 (atributo selenium.webdriver.common.keys.Keys), method), 85 (selecionar

46
F2 (atributo selenium.webdriver.common.keys.Keys), 46 F3 (atributo
selenium.webdriver.common.keys.Keys), 46 F4 (atributo FIND_ELEMENTS_FROM_SHADOW_ROOT (sele
selenium.webdriver.common.keys.Keys), 46 F5 (atributo nium.webdriver.remote.command.Command attribute), 72
selenium.webdriver .common.keys.Keys attribute), 46 F6 FIREFOX
(selenium.webdriver.common.keys.Keys attribute), 46 F7 (selenium.webdriver.common.desired_capabilities.DesiredCapa attribute), 48 (sele
(selenium.webdriver.common.keys.Keys attribute), 46 F8 firefox_profile nium.webdriver.firefox.webdriver.WebDriver attribute), 55 (classe
(selenium.webdriver.common.keys. Keys attribute), 46 F9 nium .webdriver.firefox.firefox_binary), 57 (classe FirefoxProfile FirefoxBinary
(selenium.webdriver.common.keys.Keys attribute), 46 (sele file_detector nium.webdriver.firefox.firefox_profile), 56 first_selected_option (sele
nium.webdriver.remote.webdriver.WebDriver attribute), 67 nium.webdriver.support.select.Select attribute), 82
file_detector_context() em selecionar

(sele em selecionar

nium.webdriver.remote.webdriver.WebDriver method), 62
FIND_CHILD_ELEMENT

(selecione o atributo
nium.webdriver.remote.command.Command), 72 forward() (método selenium.webdriver.remote.webdriver.WebDriver), 62
(selecione o atributo FIND_CHILD_ELEMENTS forward() (método
nium.webdriver.remote.command.Command), 72 selenium.webdriver.support.event_firing_webdriver.EventFi), 84
frame_to_be_available_and_switch_to_it()
find_connectable_ip() (no módulo sele
nium.webdriver.common.utils), 50 módulo selecionar

FIND_ELEMENT nium.webdriver.remote.command.Command),
(selecione o atributo
72 (em nium.webdriver.support.expected_conditions), 86
(no módulo (selecione nium.webdriver.common.utils), 50
find_element() nium.webdriver.remote. webdriver.WebDriver from_string()
Porto Livre()method), 62 nium.webdriver.support.color.Color selecionar

ftp_proxy (selenium.webdriver.common.proxy.Proxy method), 69method),


atributo),83
49find_element()
ftpProxy nium.webdriver.remote.webelement.WebElement
(selenium.webdriver.common.proxy.Proxy
find_element() nium.webdriver.support.event_firing_webdriver.EventFiringWebDriver
FULLSCREEN_WINDOW atributo), 49 método), 84 (sele (sele
nium.webdriver.remote.command.Command find_element() atributo classe
nium.webdriver.support.event_firing_webdriver.EventFiringWebElement),
(selecionar 72 método), 85 fullscreen_window() (sele (sele
nium.webdriver.remote.webdriver.WebDriver FIND_ELEMENT_FROM_SHADOW_ROOT
nium.webdriver.remote.command.Command method), 63 atributo), 72
(selecione o atributo FIND_ELEMENTS nium.webdriver.remote.command.Command),
nium.webdriver.remote.webdriver.WebDriver
72 find_elem ents() (selecione
(selecionar

(selecionar

G
GET (selenium.webdriver.remote.command.Command em
homenagem), 72

get() (selenium.webdriver.remote.webdriver.WebDriver
método), 63
método), 62 get() (método selenium.webdriver.support.event_firing_webdriver.EventFiringW), 84
find_elements() método (selecionar
GET_ALL_COOKIES
nium.webdriver.remote.webelement.WebElement), 69
find_elements() (selecione o atributo
(selecionar
nium.webdriver.remote.command.Command), 72

102 Índice
Machine Translated by Google

Selenium Python Bindings, Versão 2

get_attribute() método (selecionar (método selenium.webdriver.firefox.webdriver.WebDriver),


nium.webdriver.remote.webelement.WebElement), 69 54
get_full_page_screenshot_as_file() (se (sele
GET_AVAILABLE_LOG_TYPES lenium.webdriver.firefox.webdriver.WebDriver
nium.webdriver.remote.command.Command method),
54 attribute), 72 get_full_page_screenshot_as_png() (sele (sele nium.webdriver.firefox.webdriver.WebDriver
get_certificate_bundle_path ()
nium.webdriver.remote.remote_connection.RemoteConnection method), 54 class method), 77 GET_LOG attribute), 73
(selenium.webdriver.remote.command.Command
get_log() (selenium.webdriver.remote.webdriver.WebDriver
GET_NETWORK_CONNECTION method) , 63

GET_COOKIE (selenium.webdriver.remote.command.Command
attribute), 72 get_cookie()
(sele
nium.webdriver.remote.webdriver.WebDriver (sele
method), 63 (sele get_cookies() nium.webdriver.remote.command.Command
nium.webdriver.remote.webdriver.WebDriver method), 63 attribute), 73 GET_PAGE_SOURCE
GET_CREDENTIALS
(selecione o atributo
nium.webdriver.remote.command.Command), 73
(selecione o atributo get_permission() (sele
nium.webdriver.remote.command.Command), 72 nium.webdriver.safari.webdriver.WebDriver method),
get_credentials() (sele 79 get_pinned_scripts() (sele
nium.webdriver.remote.webdriver.WebDriver nium.webdriver.remote.webdriver.WebDriver method), 63
method), 63 GET_CURRENT_URL get_property()
(sele nium.webdriver.remote.webelement.WebElement
nium.webdriver.remote.command.Command method), 70 get_remote_connection () (no módulo sele (selecionar

attribute), 72 get_dom_attribute() nium.webdriver.remote.webdriver), 68


(selecionar

nium.webdriver.remote.webelement.WebElement
method), 69 (sele GET_ELEMENT_ARIA_LABEL
nium.webdriver.remote.command.Command attribute), 72 (sele get_remote_connection_headers() (sele
GET_ELEMENT_ARIA_ROLE nium.webdriver.remote.remote_connection.RemoteConnection método
nium.webdriver.remote.command.Command attribute), de classe), 77
(sele GET_ELEMENT_ATTRIBUTE nium. 73 GET_SCREEN_ORIENTATION (sele
webdriver.remote.command.Command attribute), 73 nium.webdriver.remote.command.Command
GET_ELEMENT_PROPERTY attribute), 73 (sele get_screenshot_as_base64()
nium.webdriver.remote.webdriver.WebDriver method), 63 (sele
get_screenshot_as_file()
nium.webdriver.remote.webdriver.WebDriver
method), 63
(selecione o atributo
nium.webdriver.remote.command.Command), 73
GET_ELEMENT_RECT get_screenshot_as_png() (sele
(selecione o atributo nium.webdriver.remote.webdriver.WebDriver
nium.webdriver.remote.command.Command), 73 method), 64 GET_SHADOW_ROOT
GET_ELEMENT_TAG_NAME (sele
(selecione o atributo nium.webdriver.remote.command.Command
nium.webdriver.remote.command.Command), 73 attribute), 73 get_timeout() (sele
GET_ELEMENT_TEXT nium.webdriver.remote.remote_connection.RemoteConnection
class
(selecione nium.webdriver.remote.command.Command method), 77
atributo), 73
GET_ELEMENT_VALUE_OF_CSS_PROPERTY (sele GET_TIMEOUTS (sele
nium.webdriver.remote.command.Command nium.webdriver.remote.command.Command
attribute), 73 get_full_page_screenshot_as_base64() attribute), 73 GET_TITLE
(selenium.webdriver.remote.command.Command

Índice 103
Machine Translated by Google

Selenium Python Bindings, Versão 2

atributo), 73 import_cdp() (no módulo selecionar

get_window_position() (sele nium.webdriver.remote.webdriver), 68


nium.webdriver.remote.webdriver.WebDriver method), INSECURE_CERTIFICATE (selecionar

64 GET_WINDOW_RECT nium.webdriver.remote.errorhandler.ErrorCode
atributo), 74
(selecione o atributo InsecureCertificateException, 34 INSERT
nium.webdriver.remote.command.Command), 73 (selenium.webdriver.common.keys.Keys at tributo), 46 (sele
get_window_rect() install_addon() nium.webdriver.firefox.webdriver.WebDriver
(seleciona nium.webdriver.remote.webdriver.WebDriver method), 54
method), 64 get_window_size()
(sele
nium.webdriver.remote.webdriver.WebDriver method), INTERNET EXPLORER (selecionar

64 nium.webdriver.common.desired_capabilities.DesiredCapabilitie GO_BACK (selenium.webdriver.remote.command.Command attribute), 48


attribute), 73 INVALID_ARGUMENT GO_FORWARD (selenium.webdriver. atributo remote.command.Command), 73
(sele
nium.webdriver.remote.errorhandler.ErrorCode
attribute), 74 INVALID_COOKIE_DOMAIN
(selecionar

H atributo nium.webdriver.remote.errorhandler.ErrorCode),

headless (atributo selenium.webdriver.firefox.options.Options), 56 74


INVALID_COORDINATES (selecionar

AJUDA (atributo selenium.webdriver.common.keys.Keys), nium.webdriver.remote.errorhandler.ErrorCode


46 attribute), 74 INVALID_ELEMENT_COORDINATES
hex (atributo selenium.webdriver.support.color.Color), nium.webdriver.remote.errorhandler.ErrorCode attribute), 74(selecionar
(sele
83 INVALID_ELEMENT_STATE

HOME (atributo selenium.webdriver.common.keys.Keys), nium.webdriver.remote.errorhandler.ErrorCode


46 HTMLUNIT (selenium.webdriver.common.desired_capabilities.
HTMLUNITWITHJS Atributo DesiredCapabilities), 74 atributo), 48

(selecionar
INVALID_SELECTOR (sele
nium.webdriver.remote.errorhandler.ErrorCode
nium.webdriver.common.desired_capabilities.DesiredCapabilities atributo), 74 atributo), 48 INVALID_SESSION_ID
49 httpProxy (selenium.webdriver. atributo comum.proxy.Proxy), 49 http_proxy (atributo selenium.webdriver.common.proxy.Proxy),

(selecione o atributo
nium.webdriver.remote.errorhandler.ErrorCode), 74
(selecione o atributo INVALID_XPATH_SELECTOR
nium.webdriver.remote.errorhandler.ErrorCode), 74
EU
INVALID_XPATH_SELECTOR_RETURN_TYPER (se

ID (selenium.webdriver.common.by.By attribute), 47 id
lenium.webdriver.remote.errorhandler.ErrorCode
(selenium.webdriver.remote.webelement.WebElement
attribute), InvalidCookieDomainException,
IDLE (selenium.webdriver.common.html5.application_cache.ApplicationCache 75 attribute), 71 InvalidArgumentException,
34 attribute),34
52 InvalidCoordinatesException, 35 ( sele
IME_ENGINE_ACTIVATION_FAILED InvalidElementStateException, 35 .webdriver.remote.errorhandler.ErrorCode InvalidSelectorException,
35 (no
InvalidSwitchToTargetException, 36 invisibility_of_element() attribute),
módulo74sele
InvalidSessionIdException, 35 IME_NOT_AVAILABLE
nium.webdriver.support.expected_conditions), 86

(sele
nium.webdriver.remote.errorhandler.ErrorCode
attribute), 74 ImeActivationFailedException, 33
ImeNotAvailableException, 34 implicitly_wait()

(sele invisibility_of_element_located() (no módulo sele


nium.webdriver.remote.webdriver.WebDriver method), nium.webdriver.support.expected_conditions),

64

104 Índice
Machine Translated by Google

Selenium Python Bindings, Versão 2

86 nium.webdriver.firefox.firefox_binary.FirefoxBinary IPAD
(selenium.webdriver.common.desired_capabilities.DesiredCapabilities method), 57 atributo), 48 ESQUERDA
(selenium.webdriver.common.
(atributo selenium.webdriver.common.keys.Keys),
Atributo IPHONE
desejado_capabilities.DesiredCapabilities), 48 LEFT_ALT (selenium.webdriver.common.keys.Keys no tributo), 46 is_connectable()
46

(em módulo selecionar

nium.webdriver.common.utils), 50 CONTROLE ESQUERDO


é_conectável() (selecionar (selecione o atributo nium.webdriver.common.keys.Keys), 46
nium.webdriver.common.service.Service method), 52

LEFT_SHIFT (atributo selenium.webdriver.common.keys.Keys), 46


é_conectável() (selecionar nium.webdriver.firefox.extension_connection.ExtensionConnection
LINK_TEXT (selenium.webdriver.common.by.By at class method), 58nium.webdriver.remote.webelement.WebElement
tributo), 47 load() (selenium .webdriver.common.proxy.ProxyType
class method), 50is_displayed()
method),
70 (no módulo nium.webdriver.remote.utils), 77 IS_ELEMENT_ENABLED
(selecionar

load_json() selecionar

(selecione o atributo nium.webdriver.remote.command.Command), location (atributo selenium.webdriver.remote.webelement.WebElement), 71


73 location_once_scrolled_into_view (sele
IS_ELEMENT_SELECTED nium.webdriver.remote.command.Command(sele
attribute), 73 is_enabled() Atributo nium.webdriver.remote.webelement.WebElement), 71 Log

(classe em selenium.webdriver.firefox.options), 55 log_types


(selecionar (atributo selenium.webdriver.remote.webdriver.WebDriver), 67
nium.webdriver.remote.webelement.WebElement method), 70

is_selected() nium.webdriver.remote.webelement.WebElement
method), 70 is_url_connectable() (no módulo sele nium.webdriver.common.utils),
(selecionar

51 M
make() (método estático selenium.webdriver.common.proxy.ProxyTypeFactory), 50
MANUAL (atributo selenium.webdriver.common.proxy.ProxyType), 50
maximize_window()

J (sele
JAVASCRIPT_ERROR (selecionar nium.webdriver.remote.webdriver.WebDriver method), 64 META
Atributo nium.webdriver.remote.errorhandler.ErrorCode), 75 (selenium.webdriver.common.keys.Keys attribute),
JavascriptException, 36 join_host_port() (em
nium.webdriver.common.utils), 51 46
módulo selecionar MÉTODO NÃO PERMITIDO (selecionar

atributo nium.webdriver.remote.errorhandler.ErrorCode), 75

MINIMIZE_WINDOW
k (sele
nium.webdriver.remote.command.Command
(selenium.webdriver.firefox.options.Options at attribute), 73 tributo), 56 minimize_window() key_down() KEY
(selenium.webdriver.common.action_chains.ActionChains
method), 42
(sele
nium.webdriver.remote.webdriver.WebDriver method), 64

key_up() (selenium.webdriver.common.action_chains.ActionChains

método), 42 Mobile (classe em selenium.webdriver.remote.mobile), 75 mobile (atributo

chaves (classe em selenium.webdriver.common.keys), 45 módulo sele selenium.webdriver.remote.webdriver.WebDriver), 67 Mobile.ConnectionType

nium.webdriver.common.utils), 51 (em keys_to_typing() (classe nium.webdriver.remote.mobile), 75 kill() (selenium.


em
webdriver.firefox.firefox_binary.FirefoxBinary method), 57 move_by_offset()
selecionar

nium.webdriver.common.action_chains.ActionChains method), 43
(selecionar

eu

launch_browser() (selecionar

Índice 105
Machine Translated by Google

Selenium Python Bindings, Versão 2

MOVE_TARGET_OUT_OF_BOUNDS atributo (selecionar noProxy (selenium.webdriver.common.proxy.Proxy no tributo), 49


nium.webdriver.remote.errorhandler.ErrorCode), 75 NoSuchAttributeException, 37 NoSuchCookieException, 37
move_to_element() NoSuchElementException, 37 NoSuchFrameException, 37
(selecionar NoSuchShadowRootException, 38 NoSuchWindowException, 38 NULL
nium.webdriver.common.action_chains.ActionChains method), 43 (atributo selenium.webdriver.common.keys.Keys),
move_to_element_with_offset()
nium.webdriver.common.action_chains.ActionChains method), 43 (selecionar

MoveTargetOutOfBoundsException, 36 MULTIPLY
(selenium.webdriver.common.keys.Keys no tributo), 46
46

number_of_windows_to_be() (no módulo sele


nium.webdriver.support.expected_conditions), 86

N NUMPAD0 (atributo selenium.webdriver.common.keys.Keys), 46

NOME (atributo selenium.webdriver.common.by.By), 47 nome (selenium.webdriver.common.keys.Keys NUMPAD1

(selenium.webdriver.remote.webdriver.WebDriver
atributo), 67 atributo), 46

network_connection NUMPAD2 (selenium.webdriver.common.keys.Keys


(selecionar

nium.webdriver.remote.mobile.Mobile tributo), 76 no atributo), 46


atributo (selenium.webdriver.common.keys.Keys
NEW_SESSION
(selenium.webdriver.remote.command.Command NUMPAD4 attribute), 73 attribute), 47 NUMPAD3), 46
NEW_WINDOW (selenium.webdriver.common.keys.Keys
(selenium.webdriver.remote.command.Command NUMPAD5 atributo), 73 atributo),
47 86
new_window_is_opened() (no módulo sele NUMPAD6 nium.webdriver.support.expected_conditions),
(selenium.webdriver.common.keys.Keys

(selenium.webdriver.common.keys.Keys
atributo), 47

NO_ALERT_OPEN nium.webdriver.remote.errorhandler.ErrorCode attribute),


(sele (selenium.webdriver.common.keys.Keys NUMPAD7
75 attribute), 47 NO_FOCUS_LIBRARY_NAME atributo), 47

(selenium.webdriver.common.keys.Keys NUMPAD9 (selenium.webdriver.common.keys.Keys NUMPAD8


nium.webdriver.firefox.firefox_binary.FirefoxBinary
attribute), 57 no_proxy (selenium.webdriver .common.proxy.Proxy attribute), 49 (sele NO_SUCH_COOKIE
(selecionar

attribute), 75atributo),
attribute), 75 NO_SUCH_FRAME nium.webdriver.remote.errorhandler.ErrorCode NO_SUCH_ELEMENT
75nium.webdriver.remote.errorhandler.ErrorCode
nium.webdriver.remote.errorhandler.ErrorCode
atributo), 47

OBSOLETO (selenium.webdriver.common.html5.application_cache.Applica attribute), 52 on_exception()


nium.webdriver.support.abstract_event_listener.AbstractEventLis method), 85 Options
(class in selenium.webdriver.chrome.options), (selecionar

(selecionar

(selecionar 59

Opções (classe em selenium.webdriver.firefox.options),


55
NO_SUCH_SHADOW_ROOT atributo (selecionar opções (selenium.webdriver.support.select.Select no tributo), 82 orientação
nium.webdriver.remote.errorhandler.ErrorCode), 75 (atributo selenium.webdriver.remote.webdriver.WebDriver), 67

NO_SUCH_WINDOW atributo nium.webdriver.remote.errorhandler.ErrorCode),


(sele
75 NoAlertPresentException, 36 módulo sele none_of()

nium.webdriver.support.expected_conditions), 86 P
PAC (selenium.webdriver.common.proxy.ProxyType no tributo), 50
(em PAGE_DOWN (selenium.webdriver.common.keys.Keys no
tributo), 47

106 Índice
Machine Translated by Google

Selenium Python Bindings, Versão 2

Q 67
page_source (atributo selenium.webdriver.remote.webdriver.WebDriver),
atributo PAGE_UP), 47 pai (atributo QUIT (selenium.webdriver.remote.command.Command attribute),
selenium.webdriver.remote.webelement.WebElement), 71
(selenium.webdriver.common.keys.Keys 73 quit()
(selenium.webdriver.firefox.extension_connection.ExtensionConn method), 58

quit() (método selenium.webdriver.firefox.webdriver.WebDriver), 55


PARTIAL_LINK_TEXT
nium.webdriver.common.by.By 47 (selecionar atributo),
quit() (selenium.webdriver.ie.webdriver.WebDriver
método), 78
path (atributo selenium.webdriver.firefox.firefox_profile.FirefoxProfile), 56
quit() (selenium.webdriver.remote.webdriver.WebDriver
PAUSE (selenium.webdriver.common.keys.Keys no tributo), método), 64
47 method), 80 pause() (selenium.webdriver.common.action_chains.ActionChains
quit() (selenium.webdriver.safari.webdriver.WebDriver
quit( ) (selenium.webdriver.support.event_firing_webdriver.EventFiring method), 43
method), 84 perform() (selenium.webdriver.common.action_chains.ActionChains
pin_script()method), 43

R
(sele
rect (atributo selenium.webdriver.remote.webelement.WebElement),
nium.webdriver.remote.webdriver.WebDriver method),
71 REFRESH (atributo
64 port (selenium.webdriver.firefox.firefox_profile.FirefoxProfile
selenium.webdriver.remote.command.Command), 73 refresh()
attribute), 57
(preferências selenium.webdriver.remote.webdriver.WebDriver
(selenium.webdriver.firefox .options.Options method), 65 attribute), 56
release() (método selenium.webdriver.common.action_chains.ActionChains Presence_of_all_elements_located()), 43 (em
nium.webdriver.support.expected_conditions), 86

módulo selecionar
Conexão remota (classe sele em

nium.webdriver.remote.remote_connection), 76

presença_of_element_located() (no módulo sele


(selecione o atributo REMOVE_ALL_CREDENTIALS
nium.webdriver.support.expected_conditions),
86 nium.webdriver.remote.command.Command), 73

remove_all_credentials() (sele
PRINT_PAGE (selenium.webdriver.remote.command.Command attribute), nium.webdriver.remote.webdriver.WebDriver method),
73 print_page()
65 REMOVE_CREDENTIAL
(sele
nium.webdriver.remote.webdriver.WebDriver method),
(selecione nium.webdriver.remote.command.Command
64 profile (selenium.webdriver.firefox.options.Options
atributo), 73
attribute), 56 Proxy (classe em selenium.webdriver.common.proxy),
nium.webdriver.remote.webdriver.WebDriver
(sele remove_credential()
method), 65 (sele
48 proxy_autoconfig_url (sele REMOVE_VIRTUAL_AUTHENTICATOR
nium.webdriver .common.proxy.Proxy tributo), 49
nium.webdriver.remote.command.Command attribute),
(sele remove_virtual_authenticator() 73
no
nium.webdriver.remote.webdriver .WebDriver method),
65 RESERVED_1 (atributo
proxy_type (atributo selenium.webdriver.common.proxy.Proxy), 49
selenium.webdriver.common.proxy.ProxyType), 50 reset_actions()
proxyAutoconfigUrl nium.webdriver.common.proxy.Proxy
tributo), 49 (classe ProxyType nium.webdriver.common.proxy), 50
(selecionar

no
proxyType (selenium.webdriver.common. proxy. Atributo
proxy), 49
em selecionar
(selecionar

nium.webdriver.common.action_chains.ActionChains method),
43 reset_timeout() (seleciona
nium.webdriver.remote.remote_connection.RemoteConnection class 77
method),
ProxyTypeFactory (classe em selecionar

nium.webdriver.common.proxy), 50

Índice 107
Machine Translated by Google

Selenium Python Bindings, Versão 2

RETURN (selenium.webdriver.common.keys.Keys no tributo), 47 selenium.common.exceptions (módulo), 32


rgb (selenium.webdriver.support.color.Color attribute), selenium.webdriver.chrome.options (módulo), 59
selenium.webdriver.chrome.service (módulo), 59
83 selenium.webdriver.chrome.webdriver
rgba (selenium.webdriver.support.color.Color tributo), 83 no
DIREITA (selenium.webdriver.common.keys.Keys
no tributo), 47 (módulo), 58
selenium.webdriver.common.action_chains
(módulo), 41
S selenium.webdriver.common.alert (módulo), SAFARI (selenium.webdriver.common.desired_capabilities.DesiredCapabilities
44
selenium.webdriver.common.by (módulo), 47 atributo), 48 selenium.webdriver.common. desejado_capabilities (sele
save_full_page_screenshot() (módulo), method),
nium.webdriver.firefox.webdriver.WebDriver selenium.webdriver.common.html5.application_cache 48 55 (módulo), 52
save_screenshot() selenium.webdriver.common.keys (módulo ),

(sele
nium.webdriver.remote.webdriver.WebDriver method),
45
65 SCREENSHOT
selenium.webdriver.common.proxy (módulo),
(selenium.webdriver.remote.command.Command attribute), 73 screenshot()
48

(selecionar
selenium.webdriver.common.service (módulo), 51
método nium.webdriver.remote.webelement.WebElement), selenium.webdriver.common.utils (módulo),
70 screenshot_as_base64 atributo
nium.webdriver.remote.webelement.WebElement), 71 50
(selecionar

screenshot_as_png selenium.webdriver.firefox.extension_connection (módulo), 57


selenium.webdriver.firefox.firefox_binary (módulo), 57
(selecionar
selenium.webdriver.firefox.firefox_profile (módulo), 56 selenium.webdriver.firefox.options
Atributo nium.webdriver.remote.webelement.WebElement), (módulo), 55 selenium .webdriver.firefox.webdriver
71 ScreenshotException, 38 (sele SCRIPT_TIMEOUT
atributo nium.webdriver.remote.errorhandler.ErrorCode), 75 (módulo),
scroll() (selenium.webdriver.common.action_chains.ActionChains
53
selenium.webdriver.ie.webdriver (módulo), método), 43
scroll_by_amount()

78
(selecionar

selenium.webdriver.remote.command (módulo), 72
nium.webdriver.common.action_chains.ActionChains method),
44 scroll_from_origin() selenium.webdriver.remote.errorhandler
nium.webdriver.common.action_chains.ActionChains method), 44
(selecionar

(módulo), 74
selenium.webdriver.remote.mobile (módulo), 75
scroll_to_element() (selecionar
selenium.webdriver.remote.remote_connection
(módulo), 76
nium.webdriver.common.action_chains.ActionChains method),
44 Select (classe em selenium.webdriver.support.select), 80
select_by_index() (sele nium.webdriver.support.select.Select method), selenium.webdriver.remote.utils
81 (módulo),
77
selenium.webdriver.remote.webdriver (módulo), 59
selenium.webdriver.remote.webelement
select_by_value() (sele
nium.webdriver.support.select.Select method), 81 (módulo), 68
selenium.webdriver.safari.service (módulo), 80
select_by_visible_text() (sele nium.webdriver.support.select.Select
selenium.webdriver.safari.webdriver
method), 81
(módulo), 79

108 Índice
Machine Translated by Google

Selenium Python Bindings, Versão 2

selenium.webdriver.support.abstract_event_listener (módulo), 85 SET_NETWORK_CONNECTION


(selecione o atributo
selenium.webdriver.support.color (mod ule), 83 nium.webdriver.remote.command.Command), 73
set_network_connection() (sele nium.webdriver.remote.mobile.Mobile method),
selenium.webdriver.support.event_firing_webdriver
(module), 83 76 selenium.webdriver.support.expected_conditions set_page_load_timeout() (módulo), 85 selenium.webdriver.support.select
(módulo), 80 selenium.webdriver.support.wait (módulo),
(sele
nium.webdriver.remote.webdriver.WebDriver
method), 65
set_permission() (sele
nium.webdriver.safari.webdriver.WebDriver method),
82 80
SeleniumManagerException, 38 set_preference() (selecionar

SEMICOLON (selenium.webdriver.common.keys.Keys at nium.webdriver.firefox.firefox_profile.FirefoxProfile tributo), 47 método), 56


send_keys() (selenium.webdriver.common.action_chains.ActionChains method), 44
set_preference() (selecionar

método nium.webdriver.firefox.options.Options),
send_keys() (método selenium.webdriver.common.alert.Alert), 45 55 SET_SCREEN_ORIENTATION
(sele
send_keys() (selenium.webdriver.remote.webelement.WebElement nium.webdriver.remote.command.Command
set_script_timeout() send_keys() attribute), 73
método), 70
(selenium.webdriver.support.event_firing_webdriver.EventFiringWebElement
(selenium.webdriver. remote.webdriver.WebDriver method), 65 set_timeout() (sele
método), 85 nium.webdriver.remote.remote_connection.RemoteConnection
SEND_KEYS_TO_ELEMENT class method), 77
(selecione o atributo
nium.webdriver.remote.command.Command), 73
send_keys_to_element() (selecionar

nium.webdriver.common.action_chains.ActionChains SET_TIMEOUTS (sele


method), 44 send_remote_shutdown_command() nium.webdriver.remote.command.Command
(selecionar attribute), 73 SET_USER_VERIFIED
nium.webdriver.common.service.Service (sele
method), 52 SEPARATOR nium.webdriver.remote.command.Command
(selenium.webdriver.common.keys.Keys no tributo), 47 Service attribute), 73 (sele set_user_verified()
(classe em selenium.webdriver.chrome.service), nium.webdriver.remote.webdriver.WebDriver method), 65
set_window_position()
59
Serviço (classe em selenium.webdriver.common.service), (sele
51 nium.webdriver.remote.webdriver.WebDriver
Serviço (classe em selenium.webdriver.safari.service), method), 66 SET_WINDOW_RECT
80 (sele
service_url (selenium.webdriver.common.service.Service attribute), 52 nium.webdriver.remote.command.Command
attribute), 73 service_url
(selenium.webdriver.safari.service.Service set_window_rect()
atributo), 80 (seleciona nium.webdriver.remote.webdriver.WebDriver
SESSION_NOT_CREATED (selecionar method), 66 set_window_size()
nium.webdriver.remote.errorhandler.ErrorCode (sele
attribute), 75 SessionNotCreatedException, 38 nium.webdriver.remote.webdriver.WebDriver
set_certificate_bundle_path() (sele shadow_root method), 66
(selenium.webdriver.remote.webelement.WebElement nium.webdriver.remote.remote_connection.RemoteConnection attribute), 71 método de
classe), 77 SHIFT (selenium.webdriver.common.keys.Keys at (sele tributo), 47 set_context() nium.webdriver.firefox.webdriver.WebDriver
size (selenium.webdriver.remote.webelement.WebElement method),
55 attribute), 71

Índice 109
Machine Translated by Google

Selenium Python Bindings, Versão 2

meias_senha (selecionar SUCCESS (atributo selenium.webdriver.remote.errorhandler.ErrorCode),


nium.webdriver.common.proxy.Proxy no 75 switch_to (atributo
tributo), 49 meias_proxy selenium.webdriver.remote.webdriver.WebDriver), 67 SWITCH_TO_CONTEXT
(selenium.webdriver.common.proxy.Proxy
atributo), 49 (sele
meias_username (selecionar nium.webdriver.remote.command.Command attribute),
nium.webdriver.common.proxy.Tributo no 73 SWITCH_TO_FRAME
Proxy), 49 meias_versão
nium.webdriver.common.proxy.Tributo Proxy), 49 (selecionar (selecione o atributo
meiasSenha no nium.webdriver.remote.command.Command), 74
(selecione o atributo SWITCH_TO_PARENT_FRAME
(selecionar nium.webdriver.remote.command.Command), 74
Tributo nium.webdriver.common.proxy.Proxy), em

49 meiasProxy (atributo SWITCH_TO_WINDOW (sele


selenium.webdriver.common.proxy.Proxy), 49 meiasNome de nium.webdriver.remote.command.Command attribute),
usuário 74 SYSTEM (selenium.webdriver.common.proxy.ProxyType
(selecionar attribute), 50
nium.webdriver.common.proxy.Proxy no
tributo), 49 meiasVersão
(selecionar T
nium.webdriver.common.proxy.Proxy no TAB (atributo selenium.webdriver.common.keys.Keys),
tributo), 49 47
SPACE (selenium.webdriver.common.keys.Keys no tributo), 47 TAG_NAME (selenium.webdriver.common.by.By em
ssl_proxy (selenium.webdriver.common.proxy.Proxy tributo), 47
attribute), 50 sslProxy (selenium.webdriver.common.proxy.Proxy tag_name (atributo selenium.webdriver.remote.webelement.WebElement),
attribute), 50 (sele STALE_ELEMENT_REFERENCE 71 texto (atributo selenium.webdriver.common.alert.Alert),
nium .webdriver.remote.errorhandler.ErrorCode attribute), 75
StaleElementReferenceException, 39 sele staleness_of() 45
nium.webdriver.support.expected_conditions), 87 text (atributo selenium.webdriver.remote.webelement.WebElement),
71 text_to_be_present_in_element() (no módulo sele
nium.webdriver.support.expected_conditions), 87

(em módulo

text_to_be_present_in_element_attribute() (no módulo sele


start() (selenium.webdriver.common.service.Service method), 52 nium.webdriver.support.expected_conditions), 87
(sele start_client() nium.webdriver.remote.webdriver.WebDriver
method), 66 start_session() (sele
nium.webdriver.remote.webdriver.WebDriver method ), text_to_be_present_in_element_value() (no módulo sele
66 TIMEOUT nium.webdriver.support.expected_conditions), 87
(selenium.webdriver.remote.errorhandler.ErrorCode status

(selenium.webdriver.common.html5.application_cache.ApplicationCache attribute), 75 attribute), 52 TimeoutException, 39 timeouts


(selenium.webdriver.remote.webdriver.WebDriver attribute ), 68 título (atributo selenium.webdriver.remote.webdriver.WebDriver), 68 método),
66 title_contains() submit() (método selenium.webdriver.remote.webelement.WebElement),
chaves.Chaves em homenagem),7047SUBTRACT (selenium.webdriver.common.
stop() (selenium.webdriver.common.service.Service
método), 52
stop_client() (seleciona nium.webdriver.remote.webdriver.WebDriver

(no módulo sele


nium.webdriver.support.expected_conditions), 87

módulo
selecione title_is() nium.webdriver.support.expected_conditions),
(em

110 Índice
Machine Translated by Google

Selenium Python Bindings, Versão 2

87 módulo url_changes() sele nium.webdriver.support.expected_conditions),


(em
to_capabilities() (sele 87 url_contains()
nium.webdriver.firefox.options.Log method), 55 nium.webdriver.support.expected_conditions), 87
(em módulo selecionar

to_capabilities() (selecionar

nium.webdriver.firefox.options.Options
method), 55 (em módulo sele
url_matches() nium.webdriver.support.expected_conditions), 87

você

UNABLE_TO_CAPTURE_SCREEN (sele url_to_be() (em módulo sele


nium.webdriver.remote.errorhandler.ErrorCode nium.webdriver.support.expected_conditions), 87
attribute), 75 (sele UNABLE_TO_SET_COOKIE
nium.webdriver.remote.errorhandler.ErrorCode attribute), 75
V
value_of_css_property()
nium.webdriver.remote.webelement.WebElement UnableToSetCookieException, 39 method), 70 (selecionar

UNCACHED
(selenium.webdriver.common.html5.application_cache.ApplicationCache virtual_authenticator_id

atributo), 52 (sele
UNEXPECTED_ALERT_OPEN (selecionar
nium.webdriver.remote.webdriver.WebDriver attribute),
atributo nium.webdriver.remote.errorhandler.ErrorCode), 68 visibilidade_of() (no módulo sele
75 UnexpectedAlertPresentException, 39 nium.webdriver.support.expected_conditions), 87
UnexpectedTagNameException, 40 uninstall_addon()

(sele visibilidade_of_all_elements_located() (no módulo sele


nium.webdriver.firefox.webdriver.WebDriver method), nium.webdriver.support.expected_conditions), 87
55 (sele UNKNOWN_COMMAND
nium.webdriver.remote.errorhandler.ErrorCode attribute), 75 (sele
UNKNOWN_ERROR visibilidade_of_any_elements_located() (no módulo sele
nium.webdriver.remote.errorhandler.ErrorCode nium.webdriver.support.expected_conditions), 87
attribute), 75 (sele UNKNOWN_METHOD Atributo
nium.webdriver.remote.errorhandler.ErrorCode), 75
UnknownMethodException, 40 W unpin() (método visibilidade_of_element_located() (no módulo sele
selenium.webdriver.remote.webdriver.WebDriver), 66 nium.webdriver.support.expected_conditions),
87
W3C_ACCEPT_ALERT UNSPECIFIED (atributo
selenium.webdriver.common.proxy.ProxyType), 50

(sele
nium.webdriver.remote.command.Command attribute),
74 until() (selenium.webdriver.support.wait.WebDriverWait
W3C_ACTIONS (selenium.webdriver.remote.command.Command method),
selenium.webdriver.support.wait.WebDriverWait
82 attribute), 74 until_not() (método W3C_CLEAR_ACTIONS),
83
(sele
nium.webdriver.remote.command.Command attribute),
UP (atributo selenium.webdriver.common.keys.Keys), 47 74 W3C_DISMISS_ALERT
update_preferences() (sele (sele
nium.webdriver.firefox.firefox_profile.FirefoxProfile method), nium.webdriver.remote.command.Command attribute),
56 74 W3C_EXECUTE_SCRIPT
UPDATE_READY (selecionar

(selecione o atributo
atributo nium.webdriver.common.html5.application_cache.ApplicationCache),
nium.webdriver.remote.command.Command), 74
52 UPLOAD_FILE (atributo selenium.webdriver.remote.command.Command),
74 W3C_EXECUTE_SCRIPT_ASYNC
(selecione o atributo
nium.webdriver.remote.command.Command), 74

Índice 111
Machine Translated by Google

Selenium Python Bindings, Versão 2

W3C_GET_ACTIVE_ELEMENT (selecione o atributo x


nium.webdriver.remote.command.Command), 74
XPATH (selenium.webdriver.common.by.By attribute), 47 (sele
W3C_GET_ALERT_TEXT (selecione o atributo XPATH_LOOKUP_ERROR
nium.webdriver.remote.command.Command), 74 (selecione o atributo atributo nium.webdriver.remote.errorhandler.ErrorCode), 75
W3C_GET_CURRENT_WINDOW_HANDLE
nium.webdriver.remote.command.Command), 74 (selecione
atributo W3C_GET_WINDOW_HANDLES atributo o Z
nium.webdriver.remote.command.Command), 74
ZENKAKU_HANKAKU
(selecione atributo nium.webdriver.common.keys.Keys), 47

(selecione o atributo W3C_MAXIMIZE_WINDOW


nium.webdriver.remote.command.Command), 74

(selecione W3C_SET_ALERT_VALUE atributo


nium.webdriver.remote.command.Command), 74 WebDriver
(classe nium.webdriver.chrome.webdriver), 58 WebDriver
(classe nium.webdriver.firefox.webdriver), 53 WebDriver
selenium.webdriver. (classe
emseja,
ou em selecionar
webdriver),

em selecionar

78
WebDriver (classe em selecionar

nium.webdriver.remote.webdriver), 59 (classe
nium.webdriver.safari.webdriver),
WebDriver
79 em selecionar

WebDriverException, 40 (classe
WebDriverWait nium.webdriver.support.wait), em selecionar

82 (classe em
WebElement selecionar

nium.webdriver.remote.webelement), 68 WEBKITGTK
(atributo selenium.webdriver.common.desired_capabilities.DesiredCapabilities), 48 which() (selenium. método
webdriver.firefox.firefox_binary.FirefoxBinary), 57 wifi (atributo
selenium.webdriver.remote.mobile.Mobile.ConnectionType), 76 WIFI_NETWORK

(selecionar

Tributo nium.webdriver.remote.mobile.Mobile), 76 no
window_handles (seleciona o atributo
nium.webdriver.remote.webdriver.WebDriver), 68

WPEWEBKIT (selenium.webdriver.common.desired_capabilities.DesiredCapabilities
atributo), 48
wrap_driver (selecionar

nium.webdriver.support.event_firing_webdriver.EventFiringWebDriver atributo), 84
wrap_element nium.webdriver.support.event_firing_webdriver.EventFiringWebElement
attribute), 85 (selecionar

112 Índice

Você também pode gostar