Selenium em poucas palavras é um framework que nos permite realizar testes de interface para aplicações web, com ele conseguimos simular ações do usuário, como, por exemplo, fazer o login em uma conta, criar um cadastro e realizar uma compra.
O Selenium por si só não tem recursos para nos dizer se algo está funcionando como deveria, ou seja, ele não testa o comportamento e resultado das ações programadas, para isso vamos utilizar uma outra biblioteca chamada de Pytest juntamente com seu complemento o Pytest HTML.
Tanto o Pytest quanto o Pytest HTML, são bibliotecas destinadas a testes, dessa forma conseguimos juntá-las ao Selenium e criar relatórios e testes mais robustos e precisos, deixando claro o que está funcionando ou não.
Caso você não conheça sobre testes automatizados e Pytest, nós temos um artigo que fala sobre esse assunto.
Primeiramente vamos precisar criar nosso ambiente para instalar as bibliotecas, para isso, crie uma pasta no seu computador e abra o terminal dentro desse diretório.
Rode os comandos abaixo dentro da pasta para criar e ativar o ambiente virtual.
python -m venv .
Se estiver no Windows, rode:
source Scripts/activate
Se estiver no Linux, rode:
source bin/activate
Com o ambiente virtual ativo, vamos agora instalar o Pytest, Pytest HTML e o Selenium, para isso, ainda com o terminal aberto, rode os comandos PIP abaixo.
Para instalar o Selenium:
pip install selenium
Para instalar o Pytest:
pip install pytest
Para instalar o Pytest HTML
pip install pytest-html
Agora que você já tem seu ambiente montado e as bibliotecas instaladas, confira nossa aula complementar completa, ensinando passo a passo como criar um teste de login no Github.
Agora que você já assistiu a nossa aula, confira o código de teste utilizado abaixo.
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
class TestLogin:
def setup_class(self):
global driver
driver = webdriver.Chrome()
driver.maximize_window()
def test_login(self):
#Define qual página o browser deve abrir
driver.get('https://github.com')
#Procuramos pelo link de login
btn_link_sign_in = driver.find_element(By.CLASS_NAME, 'HeaderMenu-link--sign-in')
#Simulamos o clique no link
btn_link_sign_in.click()
#Realizamos uma captura de tela
driver.save_screenshot('screen_00.png')
#Aguarda dois segundos
time.sleep(2)
field_login = driver.find_element(By.ID, 'login_field')
field_login.send_keys('email@satellasoft.com')
field_password = driver.find_element(By.ID, 'password')
field_password.send_keys('adminadmin')
#Realizamos uma captura de tela
driver.save_screenshot('screen_01.png')
field_password.send_keys(Keys.RETURN)
#Aguarda dois segundos
time.sleep(2)
label_result = driver.find_element(By.CLASS_NAME, 'js-flash-alert')
#Realizamos uma captura de tela
driver.save_screenshot('screen_02.png')
print(label_result.text)
assert 'Incorrect username or password' in label_result.text
#assert 'meu email está errado' in label_result.text
def teardown_class(self):
driver.close()
https://selenium-python.readthedocs.io/installation.html
https://selenium-python.readthedocs.io/getting-started.html#using-selenium-to-write-tests
https://github.com/SeleniumHQ/docker-selenium
https://github.com/SeleniumHQ/selenium