0% acharam este documento útil (0 voto)
14 visualizações

Slides+ +Udemy+Selenium+Webdriver+Com+Python

book

Enviado por

Pablo de Lima
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
14 visualizações

Slides+ +Udemy+Selenium+Webdriver+Com+Python

book

Enviado por

Pablo de Lima
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 38

Selenium Webdriver

Com Python
Selenium Projects
Manipula navegadores Web
Selenium Webdriver nativamente, suportando várias
linguagens de programação.

Extensão do Chrome, Firefox e Edge.


Selenium IDE gravar e reproduzir interações com o
navegador.

Usa o Selenium Webdriver para


Selenium Grid rodar testes em várias máquinas ao
mesmo tempo.
Selenium Webdriver

É uma Biblioteca / Módulo para interagir com navegadores


Também pode ser considerado uma API
Usado para automatizar testes de GUI
Graphic User Interface
Como funciona...

AUTOMATION CODE WEBDRIVER BROWSER


Selenium 3
W3C
https://www.w3.org/TR/webdriver/
Selenium 4
W3C
https://www.w3.org/TR/webdriver/
https://www.selenium.dev/
Baixando e instalando o
Python e PyCharm
https://www.python.org

https://www.jetbrains.com/
Baixando e instalando o
VS Code

https://code.visualstudio.com/download
Baixando os Drivers dos
navegadores
e colocar em uma pasta chamada "webdrivers" ou "drivers" no C:

https://www.selenium.dev/
Criando Ambientes
Vituais no Python
Usando PyCharm e VSCode
Configurando o
Selenium Webdriver
e criando seu primeiro script

https://www.selenium.dev/
Mapeando
Elementos da tela
Primeiros Passos
Mapeando
Elementos da tela
Tipos de Locators
Locators
Tag Atributo Valor Atributo Valor

Estrutura de um elemento
Tipos de Locators
Selenium Webdriver

Locators Locators customizáveis

ID NAME LINK_TEXT PARTIAL_LINK_TEXT CSS_SELECTOR XPATH

Tag and ID
Tag and Class
CLASS_NAME TAG_NAME Tag and Attribute
Tag, Class and Attribute
Inner Text
Locators
Tag Atributo Valor Atributo Valor

By.ID
browser.find_element(By.ID, "password")
Locators
Tag Atributo Valor Atributo Valor

By.NAME
browser.find_element(By.NAME, "password")
Locators
href: atributo de link Link text

By.LINK_TEXT
browser.find_element(By.LINK_TEXT, "Twitter")
Locators
href: atributo de link Link text

By.PARTIAL_LINK_TEXT
browser.find_element(By.PARTIAL_LINK_TEXT, "Twi")
Locators
Tag Atributo Atributo Valor

By.CLASS_NAME Encontra a primeira ocorrência

browser.find_element(By.CLASS_NAME, "input_error form_input")


browser.find_elements(By.CLASS_NAME, "input_error form_input")
Retorna todas as ocorrências
Locators
Tag Atributo Atributo Valor

By.TAG_NAME Encontra a primeira ocorrência

browser.find_element(By.TAG_NAME, "input")
browser.find_elements(By.TAG_NAME, "input")
Retorna todas as ocorrências
Locators
Tag Atributo Atributo Valor

By.CSS_SELECTOR
tag_name#id_value (tag é opcional)
browser.find_element(By.CSS_SELECTOR, "input#password")
browser.find_element(By.CSS_SELECTOR, "#password")
Locators
Tag Atributo Atributo Valor

By.CSS_SELECTOR
tag_name.class_value (tag é opcional)
browser.find_element(By.CSS_SELECTOR, "input.input_error")
browser.find_element(By.CSS_SELECTOR, ".input_error")
Locators
Tag Atributo Atributo Valor

By.CSS_SELECTOR
tag_name[attribute=value] (tag é opcional)
browser.find_element(By.CSS_SELECTOR, "input[type=password]")
browser.find_element(By.CSS_SELECTOR, "[type=password]")
Locators
Tag Atributo Atributo Valor

By.CSS_SELECTOR
tag_name.class_name[attribute=value]
browser.find_element(By.CSS_SELECTOR, "input.input_error[type=password]")
XPath
XPath é uma sintaxe para definir partes de um documento XML
XPath pode ser usado para navegar por elementos e atributos em um documento XML
XPath usa expressões de caminho para navegar em documentos XML
XPath contém uma biblioteca de funções padrão
XPath é usado para localizar elementos em uma página web por meio do DOM
XPath é o endereço do elemento em uma página

https://www.w3schools.com/xml/xpath_intro.asp
XPath

Absolute/Full XPath
Relative/Partial XPath
COMANDOS
Comandos de navegação
Comandos da aplicação
Comandos de localizar elementos
Comandos condicionais
Comandos de interação com elementos
Comandos de espera
COMANDOS DE NAVEGAÇÃO
browser.
get()
maximize_window()
refresh()
back()
forward()
close()
quit()
COMANDOS DA APLICAÇÃO
browser.
title
current_url
page_source
COMANDOS PARA LOCALIZAR ELEMENTOS
browser.
find_element()
find_elements()
COMANDOS CONDICIONAIS
element.
is_displayed()
is_enabled()
is_selected()

Retorna True ou False


COMANDOS DE INTERAÇÃO COM
ELEMENTOS
element.
click()
send_keys()
text
get_attribute()
COMANDOS DE ESPERA (WAIT)

element.
time.sleep()
implicitly_wait
explicitly_wait
Pytest
O que é o PyTest?
PyTest é um framework de teste que permite escrever códigos de teste usando a linguagem Python. Ele te ajuda a
escrever casos de teste simples e escaláveis ​para bancos de dados, APIs ou interface do usuário.

Algumas das vantagens do pytest são:


Muito fácil de começar devido à sua sintaxe simples e fácil.
Pode executar testes em paralelo.
Pode executar um teste específico ou um subconjunto de testes
Detectar testes automaticamente
Ignorar testes
Pytest
Para instalar: pip install pytest

O pytest identifica quais são os casos de teste automaticamente desde


que o nome dos métodos de teste estejam no seguinte formato:
test_*.py ou *_test.py

Documentação: https://docs.pytest.org/en/7.1.x/getting-started.html
Page Object
A ideia do PageObject é separar os elementos em arquivos diferentes baseados nas páginas
em que eles aparecem, assim, escrevemos todos os elementos e métodos específicos
daquela página em seu arquivo que é uma classe e usamos diretamente nos scripts de teste.

# Fazendo login (sem page object)


driver.find_element(By.ID, "user-name").send_keys("standard_user")
driver.find_element(By.ID, "password").send_keys("secret_sauce")
driver.find_element(By.ID, "login-button").click()

# Fazendo login (com page object)


login_page.fazer_login("standard_user", "secret_sauce")

Você também pode gostar