Testes usando Selenium 2 no Python
Testar uma aplicação web manualmente é uma coisa muita chata e trabalhosa. Por isso é muito comum nas empresas criar rotinas para automatizar esses testes, e com isso ganhar algum tempo e segurança que sua aplicação continua funcionando no decorrer do desenvolvimento. Existem diversos frameworks para fazer esse serviço, e o Selenium é um deles, e por sinal é bastante usado não somente na comunidade Java.
Por isso resolvi pesquisar um pouco para saber como era o uso do Webdriver (selenium 2) no Python. Achei que deveria ser uma coisa simples de se fazer. E não me enganei.
Existe um python binding para usar o selenium 2, e em sua página tem um passo a passo para começar tudo.
A primeira coisa a fazer é instalar o selenium. Para isso basta digitar o comando abaixo no terminal:
sudo easy_install selenium
Se você não for azarado e tudo correr bem, você verá a mensagem
Finished processing dependencies for selenium
E pronto, selenium poderá ser usado.
Para o teste, criei um unitest do python mesmo para executar uma já manjada busca no google. Nesse exemplo, estou abrindo a página de pesquisa do Google, preenchendo o text field com o termo que quero pesquisar, no caso “selenium” (criativo hein?) e mandando ele clicar no botão de pesquisar. Depois de tudo, confiro se a palavra selenium existe na resposta. Simples assim.
import unittest
from selenium import webdriver
class TesteGoogle(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
def tearDown(self):
self.driver.quit()
def testSearch(self):
self.driver.get('http://www.google.com.br')
text_field_pesquisa = self.driver.find_element_by_name('q')
text_field_pesquisa.send_keys("selenium 2")
botao_pesquisa = self.driver.find_element_by_name('btnG')
botao_pesquisa.click()
self.assertTrue("selenium" in self.driver.get_page_source())
if __name__ == "__main__":
unittest.main()
Para executar o teste, basta executar o comando:
python teste_google.py
Considerando que você nomeou seu arquivo com esse nome.
E isso é tudo.
