Ajuda: driver.quit() não funciona com PhantomJS

Pessoal, preciso de uma ajuda…
Estou fazendo meus testes com Selenium 3.0 + Java e estou tentando colocar para rodar no PhantomJS. O problema é que no meu teste eu faço o Login (@Before) antes de cada @Test. O problema é que o quit() que está no @After não está destruindo o driver, assim quando eu passo para o outro teste, onde eu precisaria fazer o login novamente, a aplicação já está na home e falha por não encontrar os elementos do login.

Dei uma googlada e encontrei vários problemas assim, a maioria em linux e com phyton, mas estou com problema também no windows com java (no linux também tive problema).

Uma opção também que pensei, seria fazer o logoff ao final de cada teste, mas não me parece muito bom, pois um teste poderia ser afetado por outro… por exemplo, se um falhar e não for possível fazer logout.

Alguém já teve problemas com o quit() do phantomjs? Como resolveu?

Desde já agradeço a ajuda! :)

Boa tarde @Bruno-Fernandes.
Funcionava na versão anterior do Selenium, ou você já começou no 3.0?

Pelo que entendi, acredito a sessão esteja “presa”, correto?
Dá uma lida e vê se te ajuda:
https://www.seleniumeasy.com/selenium-tutorials/how-to-delete-cookies-in-selenium-webdriver

Tem como colocar essa parte do código aqui, pode ser que facilite para o entendimento do pessoal.

@Leonam-Simões o problema parece ser bem esse, acho que o Firefox exclui os cookies quando fecha, mas aparentemente o PhantomJS (ou o GhostDriver) não está conseguindo excluir, mesmo usando o driver.manage().deleteAllCookies()

É o mesmo problema quando uso o driver HtmlUnitDriver, o que me leva a desconfiar que o problema é com o selenium…

Existe alguma maneira mais “manual” de excluir os cookies, só pra eu ver se o problema é o com driver?

Bom dia. @Bruno-Fernandes,
maneira mais “manual”” até tem, mas a ideia é fugir disso na automação rs.
Quando tive problemas (parecidos com o seu) com o IEDriver, criei uma .bat para finalizar diretamente a tarefa, não sei se é o correto, mas resolveu meu problema.

Codigo da bat:
“echo on
cls
taskkill /F /IM IEDriverServer.exe
taskkill /F /IM chromedriver.exe

@Leonam-Simões, eu também não quero fazer nada manual, mas seria só para testar mesmo se dá certo… Acho que os problemas são realmente os cookies, pois o phantomjs.exe não está mais no taskmanager do windows. Então queria saber se tem alguma forma mais manual de deletar os cookies sem ser pelo driver.manage().deleteAllCookies(), pois isto é uma implementação do GhostDriver, que pelo que vi, não está mais tendo manutenção do criador. Se tivesse algo para se fazer direto pelo phantom, só para eu executar manualmente, ou fazer uma chamada de dentro do script…

@Bruno-Fernandes
Entendi.
Para testar se o problema é esse mesmo, você pode colocar um breakpoint e usar a “Ferramenta de Desenvolvedor” do navegador (F12) depois.

Passos:

  • Executa o teste.

  • Para no breakpoint, antes iniciar o teste que esta apresentando erro.

  • Acessa a “Ferramenta de Desenvolvedor” limpa o cache/cookie.

  • Executa o teste que esta apresentando erro.

Obs: Também estou aprendendo, então essas dicas e sugestões, são baseados na minha experiencia (erros e acertos).

Links que podem te ajudar (uma busca rápida no Google, não testei pra ver se resolve):

http://seleniumforum.forumotion.net/t170-how-to-delete-cache-automatically-in-selenium
http://seleniummaster.com/sitecontent/index.php/practice-tests/16-how-to-clear-browser-cookies-with-selenium-web-driver
http://stackoverflow.com/questions/16461472/how-to-clear-browser-cache-automatically-in-selenium-webdriver

@Leonam-Simões não tenho como usar a ferramenta de desenvolvedor, pois o erro só ocorre com o phantomjs, que não tem interface gráfica. Com o Firefox e com o Chrome o erro não acontece.

Estou dando uma olhada nesses links para ver se me ajuda :+1:

@Bruno-Fernandes
Falha minha! Esqueci desse detalhe…
Vou ver se acho alguma solução para o phantomjs.

Se vc não achar rapido no stackoverflow… pode ser que seja um bug mesmo… ( early adopter :) !)
isola em um script besta e abre uma issue ;)

Log in to reply

Looks like your connection to Agile Testers was lost, please wait while we try to reconnect.