Estou tentando executar o RSelenium usando a função rsDriver, mas quando executo
rD <- rsDriver()
recebo uma mensagem informando que preciso de uma versão mais recente do Chrome:
> rD <- rsDriver()
checking Selenium Server versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
checking chromedriver versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
checking geckodriver versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
checking phantomjs versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
[1] "Connecting to remote server"
Selenium message:session not created: This version of ChromeDriver only supports Chrome version 74
(Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Mac OS X 10.14.3 x86_64)
Could not open chrome browser.
Client error message:
Summary: SessionNotCreatedException
Detail: A new session could not be created.
Further Details: run errorDetails method
Check server log for further details.
A mensagem de erro parece indicar que eu preciso da versão 74.0.3729.6 do Chrome, mas quando olho nas configurações do Chrome, ele diz que estou executando a versão estável mais recente (73.0.3683.75). Após pesquisar no Google, 74.0.3729.6 é uma versão de desenvolvedor do Chrome pré-lançada: preciso instalar isso para usar o ChromeDriver com o RSelenium?
Não estou apegado à idéia de usar o Chrome, mas não consegui que o rsDriver use o Firefox: quando eu especifico browser = "firefox"
, o rsDriver me dá a mesma mensagem de erro sobre o ChromeDriver não ser compatível com a minha versão do Chrome.
As informações da minha sessão são:
R version 3.5.2 (2018-12-20)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Mojave 10.14.3
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib
locale:
[1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] wdman_0.2.4 forcats_0.3.0 stringr_1.3.1 dplyr_0.7.8 purrr_0.2.5 readr_1.3.1 tidyr_0.8.2
[8] tibble_2.0.1 ggplot2_3.1.0 tidyverse_1.2.1 rvest_0.3.2 xml2_1.2.0 RSelenium_1.7.5
fonte
Respostas:
Encontrei o mesmo problema hoje e encontrei este post e outros do Google. Acho que posso ter uma solução mais direta como uma modificação do seu código. A resposta anterior está correta na identificação da incompatibilidade nas versões.
Tentei as soluções propostas sem sucesso. Eu descobri que as versões estavam corretas no meu computador. No entanto, esse erro de incompatibilidade não foi resultante das versões reais instaladas no computador, mas o código RSelenium está buscando a versão "mais recente" do Chrome / ChromeDriver por argumento padrão. Veja
?rsDriver()
a página de ajuda para os argumentos.Se você executar o código
binman::list_versions("chromedriver")
conforme especificado na documentação de ajuda, poderá identificar as versões compatíveis com a função. No meu caso, consegui usar o código a seguir para estabelecer uma conexão.driver <- rsDriver(browser=c("chrome"), chromever="73.0.3683.68", extraCapabilities = eCaps)
Você deve poder especificar sua versão do Chrome com o
chromever=
argumento Eu tive que usar a versão mais próxima, no entanto (minha versão do Chrome era "73.0.3683.75").Espero que isto ajude!
fonte
available.versions<-binman::list_versions("chromedriver") latest.version = available.versions$win32[length(available.versions)]
Obrigado por isso!Para o MacOS, a atualização do chromedriver fez o truque:
fonte
chromedriver-beta
, que esperava uma versão posterior do Chrome. Então o que eu fiz:brew cask uninstall chromedriver-beta; brew cask install chromedriver
rm /usr/local/bin/chromedriver
e depoisbrew cask install chromedriver
para obter a versão mais recente. De qualquer forma, a atualização do chromedriver foi a solução.Esta mensagem de erro ...
... implica que o ChromeDriver espera que a versão do navegador Chrome seja 74 .
Instalação rápida do ChromeDriver mais recente
Para instalar a versão mais recente do ChromeDriver, você pode usar:
brew tap homebrew/cask && brew cask install chromedriver
sudo apt-get install chromium-chromedriver
choco install chromedriver
Análise
Seu principal problema é a incompatibilidade entre a versão dos binários que você está usando da seguinte maneira:
Portanto, há uma clara incompatibilidade entre o ChromeDriver v74.0.3729.6 e o Chrome Browser v73.0
Solução
@Test
.driver.quit()
dentro dotearDown(){}
método para fechar e destruir as instâncias do WebDriver e Web Client normalmente.Referência
Você pode encontrar uma discussão detalhada relevante em:
fonte
rD <- rsDriver()
, terminando em: #[1] "Connecting to remote server" Could not open chrome browser. Client error message: Undefined error in httr call. httr output: Failed to connect to localhost port 4567: Connection refused Check server log for further details. Warning message: In rsDriver() : Could not determine server status.
Selenium
. Essa resposta não se refere aR
ouRSelenium
em tudo. Esta resposta aceita deve ser a do @CAD abaixo.Atualizar a versão do Google Chrome para 74 funcionou para mim.
Etapas: 1. Vá para Ajuda -> Sobre o Google Chrome -> O Chrome procurará automaticamente atualizações (atualize o Chrome para a versão mais recente)
fonte
Eu tive que reinstalar o transferidor para puxar o
webdriver-manager
módulo atualizado . Além disso, pelo comentário de @ Mark,package-lock.json
pode estar bloqueando a dependência.Depois, verifique o
maxChromedriver
valornode_modules/protractor/node_modules/webdriver-manager/config.json
após a reinstalação para verificar se ele corresponde à versão desejada do driver do Chrome.fonte
package-lock.json
estava bloqueando a dependência. Não é um bug, basta atualizar as dependências.Eu lidei com esse problema hoje e a atualização do meu gerenciador de web resolveu o problema para mim (minha versão anterior era 3.0.0):
fonte
Acabei de encontrar o mesmo tipo de erro usando
RSelenium::rsDriver()
achromever = "latest"
configuração padrão que resultou na tentativa falha de combinarchromedriver 75.0.3770.8
com a mais recentegoogle-chrome-stable 74.0.3729.157
:Como, obviamente, isso parece ser um problema recorrente e bastante irritante, criei a seguinte solução alternativa para usar sempre a versão mais recente do ChromeDriver compatível :
O código acima é testado apenas no Linux e faz uso de alguns pacotes tidyverse (instale-os previamente ou reescreva-os na base R). Para outros sistemas operacionais, talvez seja necessário adaptá-lo um pouco, principalmente substitua
command = "google-chrome-stable"
pelo comando específico do sistema para iniciar o Google Chrome:Em MacOS deve ser suficiente para substituir
command = "google-chrome-stable"
comcommand = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
.No Windows, um bug específico da plataforma nos impede de chamar o binário do Google Chrome diretamente para obter o número da versão. Em vez disso, faça o seguinte:
Basicamente, o código apenas garante que a versão mais recente do ChromeDriver, que corresponde ao número da versão com maiores e menores correções, do navegador estável do Google Chrome do sistema seja passada como
chromever
argumento. Este procedimento deve seguir o esquema de versão oficial do ChromeDriver . Citar:fonte
Eu estava realmente lutando com essa incompatibilidade entre o ChromeDriver v74.0.3729.6 e o Chrome Browser v73.0. Finalmente encontrei uma maneira de obter o ChromeDriver para uma versão anterior,
No Chrome> Sobre o Google Chrome, copie o número da versão, exceto o último grupo. Por exemplo, 72.0.3626.
Cole essa versão no final deste URL e visite-a. Ele voltará com uma versão que você deve copiar. https://chromedriver.storage.googleapis.com/LATEST_RELEASE_
De volta à linha de comando, execute
bundle exec chromedriver-update <copied version>
fonte
Travis CI
Eu tive o mesmo problema em Travis e resolvi adicionando:
para o meu
.travis.yml
arquivo.fonte
Alternativa Travis CI
Outra resposta, uma vez que Francesco Borzi não funcionou para mim.
Adicione isso ao seu travis.yml:
Muito obrigado e crédito a tagliala no github:
https://github.com/diowa/ruby2-rails5-bootstrap-heroku/commit/6ba95f33f922895090d3fabc140816db67b09672
fonte
Esta solução funcionou para mim
driver <- rsDriver(browser=c("chrome"), chromever="73.0.3683.68")
fonte
Não é mais necessário fazer o downgrade do Chrome. Quando você receber esse erro, significa que é hora de executar
webdriver-manager update
novamentefonte
O problema foi solucionado por dois passos principais:
1 - Atualize para o chromedriver mais recente via homebrew cli
2 - atualizar para a última versão via Chrome GUI
chrome: // configurações / ajuda ou
cmd
+,
depois ajuda no final (sua escolha)a partir daí, você deve acessar a página Sobre o Chrome. Aqui, você precisará verificar se está na versão melhor e mais recente (o problema que eu estava enfrentando se originou de uma incompatibilidade entre o cli e a versão atual do chrome)
se você receber o erro, verá uma
update & relaunch
botão de ação principal.Após o Chrome "relançar", ele agora terá a versão mais recente correspondente ao seu cli
exemplo:
fonte
basta ir a este URL no navegador Chrome
e o chrome procurará atualizações automaticamente (atualize o Chrome para a versão mais recente)
terminar :)
fonte
Recebi o mesmo erro ao usar a estrutura de robô (estrutura baseada em Selenium) em uma instância do Docker . O motivo foi que o docker estava usando o cache
google-chrome-stable_current_amd64.deb
do Chrome, mas instalou o driver chrome mais recente, que era uma versão posterior.Então eu usei abaixo comando e erro resolvido.
Espero que isso ajude alguém.
fonte
Eu estava enfrentando o mesmo erro:
Estamos executando os testes em um computador que não possui uma interface de usuário real, então tive que trabalhar através de uma linha de comando (CLI).
Comecei detectando a versão atual do Chrome instalada no computador Linux:
E recebi esta resposta:
Então, eu atualizei a versão do Chrome assim:
E depois de verificar novamente a versão, obtive o seguinte:
Em seguida, os testes de selênio foram capazes de executar sem problemas.
fonte
Basta atualizar o transferidor:
npm install transferidor @ mais recente --save-dev
fonte
Você pode especificar a versão exata da sua instalação do Chrome assim:
webdriver-manager update --versions.chrome 73.0.3683.75
Talvez você precise fazer o
webdriver-manager clean
primeiro no caso de um downgrade.fonte
Fiz o download de um arquivo zip em https://chromedriver.chromium.org/downloads Diz "Se você estiver usando o Chrome versão 79, faça o download do ChromeDriver 79.0.3945.36" e estava usando o Chrome versão 79. (verifiquei
chrome://settings/help
) Aparentemente, o o erro para mim foi "Esta versão do ChromeDriver suporta apenas a versão 78 do Chrome"E então cliquei no arquivo zip e movi o arquivo "chromedriver" para o
/usr/local/bin/
diretório Isso resolveu o problema.fonte
É útil para pessoas Linux. Meu problema era trivial, usei o navegador chromium. Eu instalei o chrome e todos os problemas foram resolvidos. Poderia funcionar com cromo, mas com ações extras. Não recebi sucesso. Eu poderia definir uma versão do driver necessário para a configuração do transferidor. Usou o mais recente. Eu precisava de um downgrade.
fonte
Eu tenho quase os mesmos problemas como este, os problemas aparecem dentro do pipeline ao executar meu teste de selênio que precisa do pacote chromedriver para executar o teste e2e.
Meu erro criar pipeline
O problema é justamente porque no pipeline (no meu caso) está a versão 73 do chrome e meu pacote chromedriver está instalado na versão 74.
fonte
Usando o Visual Studio
Não consegui resolver a incompatibilidade de versão seguindo qualquer uma das respostas ao usar o Visual Studio, mas simplesmente atualizando os pacotes de nuget Selenium.WebDriver e Selenium.WebDriver.ChromeDriver para as versões mais recentes.
Eu estava usando o Chrome v78 e a atualização do chromedriver para a v78 ainda deu o erro de incompatibilidade. A resposta do CAD me levou à solução.
fonte
O mesmo problema aconteceu comigo hoje.
Minha solução:
Faça o download da versão estável mais recente do chromedriver: https://sites.google.com/a/chromium.org/chromedriver/
Atualize o driver chrome na sua pasta Selenium. Isso é um pouco difícil, porque está em uma pasta oculta no seu PC chamada AppData. Aqui está como eu fiz no meu computador (Windows 7):
C:> usuários> seu usuário> \ AppData (você precisa escrever isso na caixa de caminho da pasta, pois é uma pasta oculta)> Local (este é o nome da pasta em português, talvez tenha um nome diferente para você) > SeleniumBasic
Lá você encontrará o aplicativo chromedriver. Apenas renomeie-o (caso não funcione, você deseja ter a versão mais antiga) e cole a versão mais recente.
fonte
Eu tive o mesmo problema recentemente. Este foi o meu erro:
Essa correção funcionou para mim:
[project_folder]\bin\Debug\netcoreapp2.1
)fonte
Verifique se você possui a versão mais recente do webdriver-manager. Você pode instalar o mesmo usando
npm i webdriver-manager@latest --save
Em seguida, execute o seguinte
fonte
Eu tive o mesmo problema e o resolvi simplesmente baixando um
chromedriver
arquivo para uma versão anterior do chrome. Eu descobri que a versão 79 do Chrome é compatível com a versão atual do Selenium.Salvei-o em um caminho especificado e vinculei esse caminho ao meu
webdriver
.As etapas exatas estão especificadas neste link: http://chromedriver.chromium.org/downloads
fonte
tive problema semelhante acabei de atualizar o gerenciador de webdriver no mac, use isso no terminal para atualizar o webdriver manager-
fonte
Para o download da versão do Google Chrome, visite o site = chromedriver.chromium.org
fonte
Eu verifiquei a versão do meu navegador google chrome instalado no meu PC e baixei
ChromeDriver
adequado para a versão do meu navegador. Você pode baixá-lo em https://chromedriver.chromium.org/fonte