Estou tentando iniciar o chrome com uma URL, o navegador é iniciado e não faz nada depois disso.
Estou vendo o erro abaixo após 1 minuto:
Unable to open browser with url: 'https://www.google.com' (Root cause: org.openqa.selenium.WebDriverException: unknown error: DevToolsActivePort file doesn't exist
(Driver info: chromedriver=2.39.562718 (9a2698cba08cf5a471a29d30c8b3e12becabb0e9),platform=Windows NT 10.0.15063 x86_64) (WARNING: The server did not provide any stacktrace information)
Minha configuração:
- Chrome: 66
- ChromeBrowser: 2.39.56
PS tudo funciona bem no Firefox
google-chrome
selenium
selenium-webdriver
webdriver
selenium-chromedriver
Kumar Sampath
fonte
fonte
Respostas:
Esta mensagem de erro ...
... implica que o ChromeDriver não conseguiu iniciar / gerar uma nova sessão do WebBrowser, ou seja, do navegador Chrome .
Seus testes de código e as informações de versão de todos os binários nos dariam alguma dica sobre o que está acontecendo de errado.
No entanto, conforme Adicionar --disable-dev-shm-use aos sinalizadores de inicialização padrão, parece que adicionar o argumento
--disable-dev-shm-usage
temporariamente resolverá o problema.Se você deseja iniciar / expandir uma nova sessão do navegador Chrome , pode usar a seguinte solução:
disable-dev-shm-use
Conforme base_switches.cc,
disable-dev-shm-usage
parece válido apenas no sistema operacional Linux :Na discussão, adicione uma opção para usar / tmp em vez de / dev / shm David menciona:
Outro
Aqui está o link para a história da Sandbox .
fonte
DevToolsActivePort file doesn't exist
e por que ele começou a aparecer de repente?disable-dev-shm-usage
não foi suficiente. Eu também tive que adicionar--no-sandbox
para fazê-lo funcionar. Esta foi a correção completa para mim para o Selenium-java:chromeOptions.addArguments("--no-sandbox", "--disable-dev-shm-usage");
Comecei a ver esse problema na segunda-feira 2018-06-04. Nossos testes são executados todos os dias da semana. Parece que a única coisa que mudou foi a versão do google-chrome (que foi atualizada para a atual) JVM e Selenium eram versões recentes na caixa Linux (Java 1.8.0_151, selenium 3.12.0, google-chrome 67.0.3396.62 e xvfb-run).
A adição específica dos argumentos " --no-sandbox " e " --disable-dev-shm-use " interrompeu o erro. Analisarei esses problemas para encontrar mais informações sobre o efeito e outras perguntas, como no que levou a atualização do google-chrome.
fonte
[java] [1536892035.965][SEVERE]: Timed out receiving message from renderer: 60.000
erros, mesmo com esteEstávamos tendo os mesmos problemas em nossos escravos jenkins (máquina linux) e tentamos todas as opções acima.
A única coisa que ajudou é definir o argumento
Mas quando investigamos mais, notamos que a tela XVFB não iniciava a propriedade e estava causando esse erro. Depois de corrigir a tela do XVFB, o problema foi resolvido.
fonte
Eu tive o mesmo problema em python. O acima ajudou. Aqui está o que eu usei em python -
fonte
Atualizar:
Sou capaz de resolver o problema e agora consigo acessar o chrome com o URL desejado.
Resultados da tentativa das soluções fornecidas:
Tentei todas as configurações conforme fornecido acima, mas não consegui resolver o problema
Explicação sobre o problema:
Conforme minha observação, o arquivo DevToolsActivePort não existe é causado quando o chrome não consegue encontrar sua referência na pasta scoped_dirXXXXX.
Etapas tomadas para resolver o problema
Adicionado o código abaixo para chamar o chrome
Usando as etapas acima, consegui resolver o problema.
Obrigado por suas respostas.
fonte
Eu estava enfrentando o mesmo problema recentemente e, após algumas tentativas e erros, também funcionou para mim.
DEVE ESTAR EM CIMA:
BaseSeleniumTests.java
GoogleSearchPageTraditionalSeleniumTests.java
pom.xml
fonte
No meu caso, no seguinte ambiente:
3.7.5
C:\Windows
3.141.0
Eu precisava adicionar os argumentos
--no-sandbox
e--remote-debugging-port=9222
oChromeOptions
objeto e executar o código como usuário administrador almoçando o Powershell / cmd como administrador.Aqui está o trecho de código relacionado:
fonte
Eu me deparei com esse problema no Ubuntu 20 com o Python Selenium depois de baixar o chromedriver separadamente e depois usá-lo.
sudo apt install chromium-browser
Mesmo sendo a mesma versão, isso continuava acontecendo.Minha correção foi usar o driver chrome fornecido que acompanha o pacote repo localizado em
fonte
Conforme declarado nesta outra resposta :
Entre as possíveis causas, gostaria de mencionar o fato de que, caso você esteja executando um Chromium decapitado via Xvfb, talvez seja necessário
export
aDISPLAY
variável: no meu caso, eu tinha no lugar (como recomendado) as opções--disable-dev-shm-usage
e--no-sandbox
, tudo estava funcionando bem, mas em uma nova instalação executando o Ubuntu 18.04 mais recente (no momento da redação), esse erro começou a ocorrer, e a única solução possível era executar umexport DISPLAY=":20"
(com o Xvfb iniciado anteriormenteXvfb :20&
).fonte
Também enfrentei esse problema ao me integrar ao servidor jenkins, fui usado o usuário root para o trabalho jenkin, o problema foi corrigido quando mudei o usuário para outro usuário . Não sei por que esse erro ocorre para o usuário root.
fonte
No meu caso, aconteceu quando tentei usar meu perfil de usuário padrão:
Isso acionou o chrome para reutilizar processos já executados em segundo plano, de forma que o processo iniciado pelo chromedriver.exe foi encerrado.
Resolução: elimine todos os processos chrome.exe em execução em segundo plano.
fonte
atualizar recursos no conf.js como
fonte
No meu caso, eu estava tentando criar um jar executável no sistema operacional Windows com o navegador chrome e queria executar o mesmo no modo sem cabeça na caixa unix com o CentOs nele. E eu estava apontando meu binário para um driver que eu baixei e empacotei com meu pacote. Para mim, esse problema continua ocorrendo independentemente da adição do abaixo:
A solução que eu tentei e trabalhei para mim é baixar o chrome e suas ferramentas na caixa VM / Unix host, instalar e apontar o binário para isso no pacote de automação e no bingo! Funciona :)
Comando de download:
Comando de instalação:
Conjunto de atualizações com o caminho binário abaixo do google-chrome:
E .. funciona!
fonte
Eu tive o mesmo problema, mas no meu caso o chrome foi instalado anteriormente na pasta temp do usuário, depois foi reinstalado nos arquivos do programa. Portanto, qualquer solução fornecida aqui não me ajudou. Mas se fornecer o caminho para o chrome.exe tudo funcionará:
Espero que isso ajude alguém =)
fonte
Nenhuma solução funcionou para o meu. Mas aqui está uma solução alternativa:
fonte
Você pode obter esse erro simplesmente por transmitir argumentos ruins ao Chrome. Por exemplo, se eu passar
"headless"
como argumento para o C # ChromeDriver, ele dispara muito bem. Se eu cometer um erro e usar a sintaxe errada"--headless"
, recebo oDevToolsActivePort file doesn't exist
erro.fonte
Corri para o mesmo problema, estou usando o navegador UBUNTU, PYTHON e OPERA . no meu caso, o problema foi originado porque eu tinha uma versão desatualizada do operadriver.
Solução: 1. Certifique-se de instalar a versão mais recente do navegador Opera (não use o Opera Beta ou o desenvolvedor Opera); para isso, acesse o site oficial do Opera e faça o download de lá a versão mais recente do opera_stable.
wget https://github.com/operasoftware/operachromiumdriver/releases/download/v.80.0.3987.100/operadriver_linux64.zip
no meu caso mais recente foi 80.0.3987 como você pode ver
Além disso, eu também instalei o chromedriver (mas desde que o fiz antes do teste, não sei se é necessário) para instalar o chromedriver, siga as etapas na etapa anterior: v
Aproveite e me agradeça!
Exemplo de código de selênio
fonte
Parece que existem muitas causas possíveis para esse erro. No nosso caso, o erro ocorreu porque tínhamos as duas linhas a seguir no código:
É resolvido removendo a segunda linha.
fonte
Corri o mesmo problema ao executar o Chrome via Behat / Mink e Selenium em um contêiner do Docker. Depois de algumas brincadeiras, cheguei ao seguinte,
behat.yml
que fornece os switches mencionados acima. Observe que todos eles foram necessários para que eu funcionasse com êxito.fonte
No meu caso, estou em um ambiente Kubernetes em que não posso usar o TMPDIR padrão, porque ele irá preencher o diretório temporário com lixo.
Então, eu estava usando isso para usar um tmpdir diferente:
Mas agora que atualizei tudo para o mais recente, isso não parece mais funcionar. Vou precisar encontrar uma nova maneira de fazer isso.
fonte
Isso acontece quando o chromedriver falha ao descobrir qual porta de depuração o chrome está usando.
Uma causa possível é um defeito em aberto com HKEY_CURRENT_USER \ Software \ Policies \ Google \ Chrome \ UserDataDir
Mas no meu último caso, foi outra causa não identificada.
Felizmente, a configuração do número da porta funcionou manualmente:
fonte
Número de porta errado no meu caso. Verifique se o número da porta ao iniciar o servidor Selenium é o mesmo do seu script.
fonte
Eu resolvo esse problema instalando
yum -y install gtk3-devel gtk3-devel-docs
", funciona okMeu trabalho é:
Antes:
Depois de:
fonte
Como essa é a mensagem mais ativa para esse tipo de erro, eu queria mencionar minha solução (depois de passar horas para corrigir isso).
No Ubuntu 18.04, usando o Chrome 70 e o Chromedriver 2.44 e o Python3, eu continuava recebendo o mesmo erro do DevToolsActivePort, mesmo quando desabilitei todas as opções listadas acima. O arquivo de log do chromedriver e o ps mostraram que o chromedriver que eu defini em chrome_options.binary_location estava em execução, mas sempre dava erro ao DevToolsActivePort. Quando removi chrome_options.binary_location = '....' e o adicionei à criação do webdriver, o fiz funcionar corretamente. webdriver.Chrome ('/ caminho para ... / chromedriver', chrome_options = chrome_options)
Obrigado a todos por seus comentários que me fazem entender e resolver o problema.
fonte