Olá! Seja bem-vinda(o) a mais uma descoberta.
E a primeira coisa que você pensou foi: ah, só pode ser a versão do Chrome que não está compatível com o driver que você baixou, não é mesmo?
E a segunda foi, problema no código que está faltando algum ponto e vírgula.
Antes fosse meus amigos… Antes fosse.
Eu fiquei uns 2 meses empurrando esse problema e resolvi esses dias. Dando pulos de alegria e desacreditando que consegui resolver haha. Esse é daquela categoria que ninguém ouviu falar, não acontece na máquina de ninguém, acham estranho e provavelmente você que é a louca.
Estava fazendo um curso de Protractor da Alura e quando fui rodar o código do teste no Chrome, subia o navegador mas não abria a página do teste. Como era um código diferente, resolvi revisar o código para verificar que nada estaria errado.
E começaram as coisas esquisitas…
Verificação do Código igualzinho do professor OK √
Então como em toda boa investigação começamos a isolar partes para testá-las e ir isolando o problema para encontrar a possível solução.
Depois do código correto, sem erro que poderia ter sido causado por mim, logo pensei que poderia ser o problema mais comum que acontece em testes web, versão do navegador Chrome com o Webdriver-manager. Atualizei todas as dependências do Protractor, baixada a versão correta, coloco pra rodar, nada.
Verificação da Versão do Navegador x Versão do webdriver-manager √
Então percebi que a versão do Angular da aplicação do Alura exigia uma versão do Node, tudo atualizado para ser compatível com o Protractor x Node x webdriver-manager, nada.
Verificando a Versão do Node x Versão do Protractor x Angular √
Como todo bom usuário que tem firewall e antivírus a gente desabilita só por garantia né? Meio que se nada der certo, desabilita esses programas só pra conferir, porque em muitos casos eles são a razão sim.
Desabilitando o Firewall e o Antivírus √
Então resolvi testar a parte mínima que o Protractor precisa pra rodar, só pra garantir que o mínimo estava funcionando, antes de prosseguir com mais explorações, já que todas as versões agora estavam compatíveis. Geralmente esse conjunto já é suficiente para resolver esse tipo de problema.
Na página do Protractor tem um Tutorial bem simples e fácil de executar, mas não funcionou.
Isolando o Protractor com uma configuração mínima só pra subir o navegador √
Então resolvi passar os mesmos arquivos para outra máquina e testar. Arquivos conf.js e o spec.js do Tutorial do Protractor. Funcionou no Chrome.
Bom, código funcionando com o mínimo em outra máquina, mas na minha não funcionava. Então voltei e comecei a observar qual era o comportamento afim de encontrar outra coisa que não fosse o óbvio que já tinha verificado, tentando procurar outra coisa que ainda não tinha visto.
O comportamento do navegador até ontem era: roda o teste, sobe o navegador, aparece a mensagem que o Chrome estava sendo utilizado por um software automatizado, mas na url sempre aparecia “data;” que geralmente é substituído pela url que colocamos. E isso não acontecia, parava no “data;” e o navegador não fechava e o teste apresentava timeout.
Então depois de rodar os testes duas mensagens começaram a ficar fixas durante a execução, eram elas (tanto no Protractor quanto no Java):
org.openqa.selenium.InvalidArgumentException: invalid argument: user data directory is already in use, please specify a unique value for –user-data-dir argument, or don’t use –user-data-dir
Build info: version: ‘3.141.59’, revision: ‘e82be7d358’, time: ‘2018-11-14T08:17:03’
System info: host: ‘nome’, ip: ‘1234’, os.name: ‘Windows 10’, os.arch: ‘amd64’, os.version: ‘10.0’, java.version: ‘14.0.1’
Driver info: driver.version: ChromeDriver
E depois mudava para:
org.openqa.selenium.WebDriverException: unknown error: DevToolsActivePort file doesn’t exist
Build info: version: ‘3.141.59’, revision: ‘e82be12358’, time: ‘2019-11-14T08:17:03’
System info: hostname: ‘nome’, ip: ‘1234’, os.nameid: ‘Windows 10’, os.arch: ‘amd64’, os.version: ‘10.0’, java.version: ‘14.0.1’
Driver info: driver.version: ChromeDriver
Próxima exploração: user data directory is already in use
“please specify a unique value for –user-data-dir argument, or don’t use –user-data-dir”
Algumas coisas que eu fiz para tentar cercar o problema:
- usei capabilities do chrome para mostrar o caminho do usuário que estava rodando o chrome.exe, como o –user-data-dir. Segue uma listinha com essas opções aqui
- eu tenho muitas extensões no meu chrome mas nunca foi um problema, mas acabei utilizando –disable-extensions
- se colocar na barra do Chrome: chrome://version, tem informações bem importantes sobre qual Chrome está sendo utilizado
- criei um novo usuário no windows com perfil de administrador para criar outro caminho do usuário, zerado e apontei para o protractor
- criei um novo perfil no Chrome e apontei para o protractor executar utilizando ele
- coloquei as capabilities diretamente no chrome.exe
- desabilitei todas as minhas extensões
E nada funcionou, o resultado sempre era o mesmo “data;”.
Já tinha esgotado as possibilidades do que eu conhecia em relação ao user-data-dir.
Próxima exploração: DevToolsActivePort file doesn’t exist
Parti então para o DevTools e consegui poucas coisas aqui:
- Nas minhas pesquisas a primeira coisa que aparecia era que o DevTools do Chrome estava aberto. Antes fosse
- Aqui eu já estava quase indo para investigar se a porta que ele queria estava aberta na máquina com outra coisa, investigar portas abertas existentes, serviços que poderiam utilizar algo de devtools, mas aí eu parei por falta de tempo mesmo.
Por falta de tempo, apontei para o Firefox e continuei estudando, mas muito frustrada ainda! Foram dias de investigação e nada!
Aí depois de um tempo comecei a fazer outros cursos tanto do TSPI quanto do IRTS, do Correia e do Júlio de Lima, só que agora com Selenium e Webdriver. E aí que meu problema ressurge, bug conhecido que chama né?
Então, aproveitei o network novo para perguntar se alguém já tinha visto esse problema e eis que surgiu a Dani que passou pelo mesmo erro e resolveu atualizando o Chrome e o Webdriver. Já fiquei toda feliz e fui testar. Nada.
Só que quando fui printar a minha versão pra mostrar pra ela, vi que tinha algo diferente, uma mensagem que o meu navegador estava sendo gerenciado por uma organização. Cheirinho novo a vista, bora explorar.

Próxima exploração: Navegador gerenciado por uma organização
Já tinha esgotado tudo de novo! Tinha que começar novamente por outros caminhos.
Minha máquina, minhas regras! Quem é essa organização? Logo pensei em vírus e máquina hackeada, já tive o meu gmail hackeado, é horrível.
Primeiro identificar o que era essa mensagem: Políticas no Chrome.
Você pode verificar as suas assim: chrome://policy

Foi aí que consegui enxergar a relação da mensagem de erro com a política aplicada: UserDataDir. Até quem enfim um padrão!!
Então fui buscar como remover as políticas do Chrome e encontrei esse artigo maravilhoso que resolveu meu problema!
O meu caso como é computador particular, não gerenciado por uma organização, só fiz a parte da remoção das Chaves de Registro do Windows, que explica no artigo.
Pode acontecer com algumas pessoas, e eu fui a sortuda, nas versões acima da 73 do Chrome, extensões também podem adicionar políticas.
Claro, um bom backup antes do Registry, backup só das chaves também, se precisar voltar só elas.
Removi e meu Chrome voltou a ter vida!! Rodou tudo corretamente, sem problema, era exatamente a política do UserDataDir aplicada a “Máquina”, por isso que quando criei o usuário novo no Windows aconteceu a mesma coisa. Se fosse só Aplicável a “Usuário atual”, conseguiria ver o problema e saberia que o problema estava só no meu usuário.
Olha agora como ficaram minhas políticas, zerada na parte de cima onde estava o UserDataDir.

Essa vai pra minha lista de investigações cheirosas.