erro desconhecido: resultado da função de chamada ausente "valor" para as chaves de envio de selênio, mesmo após a atualização do chromedriver

110

Estou recebendo o erro abaixo ao enviar as chaves.

Mensagem de resultado:

System.InvalidOperationException : unknown error: call function result missing 'value'
  (Session info: chrome=65.0.3325.146)
  (Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 10.0.14393 x86_64)

Eu atualizei o driver do Chrome para 2.36, mas ainda minha pesquisa de código para 2.33?

Qualquer ideia ?

Zaki Ahmed
fonte
O mesmo problema aqui desde ontem. No meu caso, acho que o problema é uma combinação de driver sem cabeça chrome v65 + selênio v2.34 (o changelog diz que é compatível com chrome v61-63)
Jorge Arévalo

Respostas:

115

Recebi o mesmo erro, baixe a última versão do ChromeDriver e / ou atualize a versão do navegador Chrome e ele funcionará bem :)

https://chromedriver.storage.googleapis.com/index.html?path=2.36/

Coder
fonte
1
Eu baixei e me referi como Nuget e removi todas as referências ao 2.33, mas ele ainda se conecta ao antigo 2.33?
Zaki Ahmed
2
Eu baixei o chromedriver 2.36 mais recente e ele ainda não funciona com o Chrome versão 65.0.3325.146 (versão oficial) (64 bits) Pelo menos no Mac OS :(
neliCZka
2
Oh, desculpe, eu realmente configurei meu caminho incorretamente, e depois de vinculá-lo ao novo chromedriver, meu script realmente funciona agora. A propósito, estou usando uma máquina Windows.
Cliff Chew
6
Se você estiver usando github.com/flavorjones/chromedriver-helper gem, execute no consolechromedriver-update 2.36
Bachet
4
Se você usa o Homebrew, pode executarbrew upgrade chromedriver
Diego Carrion
23


Depois de atualizar o navegador Google Chrome para a versão 65.0.3325.146 (versão oficial) (64 bits) , também recebo o mesmo erro ao enviar valores para o campo de entrada. Aqui está a mensagem de erro ...

selenium.common.exceptions.WebDriverException: Message: unknown error: call function result missing 'value'

usando Chromedriver 2.32 e Google Chrome 65.0

Como fiz algumas pesquisas sobre o mesmo, encontrei um commit recente no changelogs do Google Chrome v65 que me ajuda a resolver o problema.

Solução:

  • Atualize o Google Chrome para a versão estável mais recente (no meu caso é a v65 em 9 de março de 2018)
  • Baixe e configure o chromedriver mais recente (v2.36). Para configurar o chromedriver (no Ubuntu) siga estes passos ...

    1. Extraia o arquivo zip baixado.
    2. Copie o arquivo chromedriver extraído para / usr / local / bin ou para o local onde você normalmente armazena os binários executáveis.
    3. Adicione o mesmo caminho (onde você coloca o arquivo chromedriver) para a variável de ambiente PATH como

exportar PATH = $ PATH: / usr / local / bin

  1. Para testar a instalação, reinicie o terminal e digite este comando

chromedriver --version

ele mostraria a versão do chromedriver que você acabou de instalar.

Nota: Se o chromedriver já estiver instalado e configurado, basta substituir o arquivo do driver existente e se você não sabe onde os binários do Chromedriver já estão armazenados, tente encontrar o arquivo usando o seguinte comando

 sudo find -H / -type f -iname chromedriver
AKay Nirala
fonte
13

É por causa da atualização da versão do navegador Chrome de 64.xx para 65.xx

Agora você tem 2 opções para executar seus testes com sucesso.

  1. Faça downgrade de seu navegador Chrome para a versão anterior e com o antigo chromedriver que você tem agora.

  2. Atualize seu Chromedriver para a versão 2.36 com o navegador Chrome atualizado.

    visite https://chromedriver.storage.googleapis.com/index.html?path=2.36 e baixe o novo chromedriver.

A opção 2 é melhor.

Deepak N
fonte
Estou no seguinte ambiente: Ubuntu 16.04, GoogleChrome 65.0.3325.146, ChromeDriver 2.36.540471. E ainda recebo o erro exato acima. O que eu preciso mudar? O erro, no entanto, diz que estou usando o chromedriver versão 2.33.506092 ...
Armin
Você precisa mencionar o caminho exato do último chromedriver que você atualizou e não um antigo. ou Substitua o cromo-driver antigo por um novo. Apenas verifique.
Deepak N
Se alguém encontrar esse erro no Visual Studio, atualizar para o pacote Nuget do driver da web do Chrome para 2.37 (no momento da escrita) resolverá esse erro.
Gunarathinam
12

Substitua o seu ChromeDriver.exe pela versão mais recente .. O mesmo pode ser baixado do Google facilmente.

Também é melhor fazer isso automaticamente usando o gerenciador webDriver conforme explicado abaixo - 1. Adicione a dependência Mvn ao POM do seu projeto:

<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>${webdrivermanager.version}</version>
    <scope>test</scope>
</dependency>
  1. Agora, em sua classe de instanciação do navegador, em vez de usar a maneira tradicional de criar driver, ou seja, usando System.setProperty (Veja belwo) ...

    System.setProperty ("webdriver.chrome.driver", "src / test / resources / drivers / chromedriver.exe");

Use a abordagem abaixo:

WebDriverManager.chromedriver (). Setup ();
webDriver = novo ChromeDriver (chromeOptions);

E isso é tudo, está feito!

Use os links abaixo para sua referência - O que é o Gerenciador de binário do navegador, como usá-lo para o Selenium

ou chkout git project for same- https://github.com/bonigarcia/webdrivermanager#webdrivermanager-as-java-dependency

Satyendra Sharma
fonte
3
Isso funcionou para mim - os downloads do 2.37 podem ser encontrados aqui: chromedriver.storage.googleapis.com/index.html?path=2.37
Reily Bourne de
Sim, e agora o mais recente é - ChromeDriver 2.38 - chromedriver.chromium.org/downloads
Satyendra Sharma
10

Precisa atualizar o chromedriver: no console, execute: chromedriver-update 2.36

Olga
fonte
9

O erro diz tudo:

System.InvalidOperationException : unknown error: call function result missing 'value'
  (Session info: chrome=65.0.3325.146)
  (Driver info: chromedriver=2.33.506120

O erro reclama claramente sobre InvalidOperationException

Seu principal problema é a compatibilidade de versão entre os binários que você está usando da seguinte maneira:

Compatível com Chrome v60-62

  • Você está usando chrome = 65.0
  • As notas de versão do ChromeDriver v2.37 mencionam claramente o seguinte:

Compatível com Chrome v64-66

  • Sua versão do Selenium Client é desconhecida para nós.

Portanto, há uma incompatibilidade clara entre a versão do ChromeDriver ( v2.33 ) e a versão do navegador Chrome ( v65.0 )

Solução

  • Atualize o Selenium para os níveis atuais Versão 3.11.0 .
  • Atualize ChromeDriver para ChromeDriver v2.37 nível .
  • Mantenha Chrome versão entre Chrome v64.x-66.x níveis. ( conforme notas de versão do ChromeDriver v2.37 )
  • Limpe a área de trabalho do projeto por meio do IDE e reconstrua o projeto apenas com as dependências necessárias.
  • Use a ferramenta CCleaner para limpar todas as tarefas do sistema operacional antes e depois da execução de sua suíte de teste .
  • Se a versão base do navegador da web / cliente da web for muito antiga, desinstale-o por meio do Revo Uninstaller e instale um GA recente e uma versão lançada do navegador da web / cliente da web .
  • Execute o seu @Test.
DebanjanB
fonte
5

Se você estiver no Mac:

brew upgrade selenium-server-standalone
brew upgrade chromedriver

se os dois acima não estiverem instalados:

brew install selenium-server-standalone
brew install chromedriver
Sandeep Shabd
fonte
3

Estou executando o Protractor e encontrei o mesmo problema.

A solução no meu caso foi bastante simples.

$ npm update protractor -g

$ webdriver-manager update

pegar 22
fonte
Se você estiver usando um gulp-protractorplugin, certifique-se de atualizá-lo também.
Ilya Vinogradov
2

Se você estiver no Google Chrome estável mais recente (por exemplo, 67), eu recomendo:

brew uninstall chromedriver
brew tap homebrew/cask
brew cask install chromedriver

Este conjunto de comandos irá desinstalar seu chromedriver atual, verificar se há atualizações e instalar o mais recente encontrado (por exemplo, 2.40).

S. Esteves
fonte
Que bom que ajudou!
S. Esteves de
1
Use xpaths instead of class names to locate elements

Depois de atualizar o Chrome e seus drivers ele não me ajudou em nada !! Não sei o quanto isso faz sentido, mas funcionou para mim quando substituí o nome da classe por xpath. Este é o xpath, eu usei para automatizar o envio de mensagens do WhatsApp usando python.

driver.find_element_by_xpath('//*[@id="main"]/footer/div[1]/div[2]/div')

anteriormente eu estava usando

driver.find_element_by_class_name('Some class Name Here')
Be Champzz
fonte
0

No meu caso, a equipe em que estou aponta o selênio para um arquivo chromedriver específico que temos. Para fazer o Selenium usar o chromedriver atualizado, primeiro instalei-o com brew e, em seguida, criei um link simbólico para apontar onde o Selenium o procura:

brew install chromedriver
ln -s /usr/local/Cellar/chromedriver/2.36/bin/chromedriver /path/where/selenium/expects/chromedriver
Chris
fonte
0

Se isso pudesse ser útil para alguém, eu precisava de uma etapa adicional:

Eu estou no MacOS X. Eu fiz

brew upgrade chromedriver
bundle exec chromedriver-upgrade

Eu tenho a gem do helper chromedriver instalada, mas ela está escondida e requer o prefixo "bundle exec" ou o shell não consegue encontrar o comando.

O acima resolveu meu problema.

gischer
fonte
0

Como mencionado por outros, o mais recente Chromeedriver fez o truque para mim. Caso você tenha baixado o driver manualmente e queira dizer ao appium para usar o novo chromedriver, você pode fazer isso com este comando:

appium --chromedriver-executable /path/to/driver/chromedriver ....

Mark Duivesteijn
fonte
0

Estou executando o Protractor (webdriver-manager) com Selenium em um ambiente Windows e tive que fazer o seguinte:

  1. webdriver-manager update --versions.chrome="2.36" (Isso fez o download do novo Chromedriver para o caminho certo, mas não o ativou no transferidor.)
  2. Edite %userprofile%\AppData\Roaming\npm\node_modules\protractor\config.jsone altere o chromedrivervalor de 2.32para2.36 .
  3. Exclua meu antigo chromedriver_2.32.exede %userprofile%\AppData\Roaming\npm\node_modules\protractor\seleniumpara uma boa medida (não tenho certeza se isso era necessário).

Ou:

Quando outra atualização do Chromedriver se tornou necessária, não consegui mais atualizar dessa forma. Uma definição de configuração ainda esperava o caminho e o nome do arquivo antigos, e não consegui descobrir onde alterar essa configuração. Então, acabei de renomear o chromedriver mais recente para "chromedriver.exe" e colei-o em C: \ Windows \ system32 (que sempre é referenciado por PATH). Rude, mas eficaz.

Jordan Rieger
fonte
0

Se você estiver usando um gulp-protractorplugin, certifique-se de atualizá-lo também.

Ilya Vinogradov
fonte
0

Não sei se você ainda está nisso, mas estava recebendo um erro semelhante. Eu tinha a última versão do chromedriver no meu PATH e o Google Chrome foi atualizado. Eu executo o Python 3.6 no Windows 10 x64 bit. O que eu estava tentando selecionar um valor em um menu suspenso em uma página da web. O estranho era que ele selecionaria o valor suspenso corretamente e a página seria bem atualizada, mas eu receberia aquele erro estúpido de qualquer maneira e meu script travaria. Então, acabei de criar um manipulador de erros de exceção para ele, porque, como disse, selecionei o valor da lista suspensa corretamente, então eu só queria ignorar aquela mensagem de erro idiota:

# select by value
try:
    select.select_by_value('100')
except:
    pass

espero que alguém ache isso útil.

Matt Wilson
fonte
0

O problema é devido à incompatibilidade entre o chromedriver e a versão do navegador Chrome. O link abaixo especifica as versões do chromedriver compatíveis com a versão do navegador Chrome.

http://chromedriver.chromium.org/downloads

Chetan G. Bendre
fonte