Pq as vezes o selenium não preenche todos os campos de um formulário corretamente?
7 respostas
seleniumpython
G
grillow
Boa Tarde, estou automatizando o seguinte cenário utilizando python e selenium: “cadastro de um novo usuário”, no qual o sistema deve preencher todos os campos de um formulário e ao final clicar no botão “cadastrar”.
Campos:
nome
email
tel1
tel2
cpf
cep
senha
Ao rodar o mesmo código 10 vezes, notei que nem sempre o comportamento é o mesmo… Das 10 vezes que o código foi rodado, 6 vezes ele preencheu todos os campos corretamente, enquanto as outras 4 vezes ou ele preencheu alguns campos pela metade, ou simplesmente os pulou.
Sendo assim, gostaria de saber se alguém já teve esse problema e como resolve-lo.
Desde já agradeço
Existe alguma lógica usando ajax nessa tela onde há esses campos? Se tiver, talvez seja por isso.
G
grillow
Nesse formulário não existe nada em AJAX =/
L
Lucas_Camara
Vc pode mandar o código desse teste pra gente ver?
G
grillow
Esse é o trecho de código:
importpytestimportunittestfromseleniumimportwebdriverfromselenium.webdriver.common.keysimportKeysclassTextopré-formatadoTeste_01(unittest.TestCase):""" Cadastrar um novo usuário como Pessoa Física """defsetUp(self):self.driver=webdriver.Chrome()self.driver.maximize_window()deftest_abr(self):#Step01driver=self.driverdriver.get("https://www.linksite.com.br")#Step02(Formulario)self.driver.find_element_by_id("pessoaFisica").click()#seleciona a opção Pessoa Físicacampo_email=self.driver.find_element_by_id("txtEmail")#seleciona o campo emailcampo_email.clear()campo_email.send_keys("[email removido]")campo_cpf=self.driver.find_element_by_id("txtCPF")#seleciona o campo CPFcampo_cpf.clear()campo_cpf.send_keys("[telefone removido]")campo_nome=self.driver.find_element_by_id("txtName")#seleciona o campo Nomecampo_nome.clear()campo_nome.send_keys("Alan Wall")campo_celular=self.driver.find_element_by_id("txtTel1")#seleciona o campo Celularcampo_celular.clear()campo_celular.send_keys("[telefone removido]")campo_telefone2=self.driver.find_element_by_id("txtTel2")#seleciona o campo Telefone 2campo_telefone2.clear()campo_telefone2.send_keys("[telefone removido]")campo_senha=self.driver.find_element_by_id("txtPassword")#seleciona o campo Senhacampo_senha.clear()campo_senha.send_keys("senha123")campo_cep=self.driver.find_element_by_id("txtCEP")#seleciona o campo CEPcampo_cep.clear()campo_cep.send_keys("79610332")deftearDown(self):self.driver.quit()if__name__=="__main__":unittest.main()
L
Lucas_Camara
Quando ocorre esse click. Como a tela reage?
G
grillow
Existem dois radio buttons:
Pessoa Física
Pessoa Jurídica
Após o click na opção “Pessoa Física”, o sistema apresenta os campos do formulário referentes ao cadastro de pessoas Física.
L
Lucas_Camara1 like
Imagino que seja algum javascript esteja sendo executado quando esses radio buttons são clicados. Talvez o selenium não esteja esperando o javascript processar em alguns momentos, fazendo com que fique esse comportamento estranho. Tente colocar um delay logo após o clique nos radios buttons.