it-swarm.com.de

unbekannter Fehler: Das Ergebnis der Funktion hat auch nach einem Chromedriver-Upgrade einen "Wert" für Selenium Send Keys

Ich erhalte die unten stehende Fehlermeldung beim Senden der Schlüssel.

Ergebnisnachricht:

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)

Ich habe den Chrome-Treiber auf 2.36 aktualisiert, aber immer noch in meinem Code nach 2.33 suchen.

Irgendeine Idee ?

101
Zaki Ahmed

Ich habe den gleichen Fehler erhalten. Laden Sie die letzte ChromeDriver-Version herunter und/oder aktualisieren Sie die Chrome-Browser-Version.

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

112
Coder


Nachdem ich den Google Chrome-Browser auf Version 65.0.3325.146 (Official Build) (64-Bit) aktualisiert habe, ist auch derselbe Fehler aufgetreten beim Senden von Werten an das Eingabefeld, hier die Fehlermeldung ...

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

mit Chromedriver 2.32 und Google Chrome 65.0

Da ich einige Nachforschungen zu diesem Thema angestellt habe, habe ich kürzlich ein commit in Google Chrome v65-Änderungsprotokollen gefunden, die mir helfen, das Problem zu lösen. 

Lösung:

  • Aktualisieren Sie Google Chrome auf die neueste stabile Version (in meinem Fall ist es v65 am 9. März 2018).
  • Laden Sie den neuesten Chromedriver (v2.36) herunter und konfigurieren Sie ihn. Zum Konfigurieren von Chromedriver (unter Ubuntu) gehen Sie wie folgt vor:.

    1. Extrahieren Sie die heruntergeladene Zip-Datei.
    2. Kopieren Sie die extrahierte Chromedriver-Datei nach / usr/local/bin oder an den Speicherort, an dem Sie die ausführbaren Binärdateien normalerweise speichern.
    3. Fügen Sie der Umgebungsvariablen PATH denselben Pfad (wo Sie die Chromedriver-Datei platzieren) als hinzu

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

  1. Starten Sie zum Testen der Installation das Terminal neu und geben Sie diesen Befehl ein

chromdriver - Version

es würde die Version von Chromedriver zeigen, die Sie gerade installiert haben.

Note: Wenn der Chromedriver bereits installiert und konfiguriert ist, ersetzen Sie einfach die vorhandene Treiberdatei. Wenn Sie nicht wissen, wo die Chromedriver-Binärdateien bereits gespeichert sind, suchen Sie die Datei mit folgendem Befehl

 Sudo find -H / -type f -iname chromedriver
21
Emrit

Dies liegt an dem Update der Chrome-Browser-Version von 64.xx auf 65.xx

Jetzt haben Sie zwei Möglichkeiten, Ihre Tests erfolgreich durchzuführen.

  1. Rüsten Sie Ihren Chrome-Browser auf die vorherige Version und den alten Chrom-Treiber herunter, den Sie jetzt haben.

  2. Aktualisieren Sie Ihren Chromedriver mit dem aktualisierten Chrome-Browser auf die Version 2.36.

    besuchen Sie https://chromedriver.storage.googleapis.com/index.html?path=2.36 und laden Sie den neuen Chromedriver herunter.

Option 2 ist besser.

13
Deepak N

Ersetzen Sie Ihre ChromeDriver.exe durch die neueste Version: 2.37. Das gleiche kann einfach von Google heruntergeladen werden. 

12

Führen Sie in der Konsole Folgendes aus: chromedriver-update 2.36

10
Olga

Der Fehler sagt schon alles:

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

Der Fehler beschwert sich eindeutig über InvalidOperationException

Ihr Hauptproblem ist die Versionskompatibilität zwischen den von Ihnen verwendeten Binärdateien wie folgt:

Unterstützt Chrome v60-62

Unterstützt Chrome v64-66

  • Ihre Selenium Client Version ist uns unbekannt.

Es besteht also eine deutliche Abweichung zwischen der ChromeDriver -Version ( v2.33 ) und dem Chrome-Browser version ( v65.0 )

Lösung

  • Aktualisieren Sie Selen auf die aktuellen Werte Version 3.11.0 .
  • Aktualisieren Sie ChromeDriver auf ChromeDriver v2.37 .
  • Behalten Sie die Chrome -Version zwischen Chrome v64.x-66.x Ebenen. ( gemäß den Versionshinweisen zu ChromeDriver v2.37 )
  • Bereinigen Sie Ihren Projektarbeitsbereich durch Ihre [~ # ~] ide [~ # ~] und Erstellen Sie Ihr Projekt nur mit den erforderlichen Abhängigkeiten neu.
  • Verwenden Sie das Tool CCleaner , um alle Aufgaben des Betriebssystems vor und nach der Ausführung Ihrer Testsuite zu löschen. .
  • Wenn Ihre Basisversion des Webbrowsers/Webclients zu alt ist, deinstallieren Sie sie mit Revo Uninstaller und installieren Sie eine aktuelle GA und freigegebene Version von Webbrowser/Webclient .
  • Führen Sie Ihren @Test Aus.
9
DebanjanB

Wenn Sie mit Mac arbeiten:

brew upgrade Selenium-server-standalone
brew upgrade chromedriver

wenn die obigen zwei nicht installiert sind:

brew install Selenium-server-standalone
brew install chromedriver
5
Sandeep Shabd

Ich betreibe Protractor und habe das gleiche Problem gesehen.

Die Lösung in meinem Fall war ziemlich einfach.

$ npm update protractor -g

$ webdriver-manager update

3
catch22

Wenn Sie sich auf dem neuesten stabilen Google Chrome befinden (z. B. 67), empfehle ich Folgendes:

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

Dieser Befehlssatz deinstalliert Ihren aktuellen Chromedriver, sucht nach Updates und installiert die zuletzt gefundenen (z. B. 2.40).

2
S. Esteves

Wie von anderen erwähnt, hat der neueste Chromedriver den Trick für mich gemacht. Falls Sie den Treiber manuell heruntergeladen haben und appium anweisen möchten, den neuen Chromedriver zu verwenden, können Sie dies mit dem folgenden Befehl tun: 

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

0

Wenn Sie das gulp-protractor-Plugin verwenden, müssen Sie es auch aktualisieren.

0
Ilya Vinogradov

In meinem Fall weist das Team Selenium auf eine bestimmte Chromdriver-Datei hin, die wir hatten. Um Selenium dazu zu bringen, den aktualisierten Chromedriver zu verwenden, habe ich es zuerst mit brew installiert und dann einen symbolischen Link erstellt, der darauf verweist, wo Selenium danach sucht:

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

Bei der Gelegenheit könnte dies für jemanden hilfreich sein, für den ich einen zusätzlichen Schritt benötigte:

Ich bin auf MacOS X. Ich habe es getan

brew upgrade chromedriver
bundle exec chromedriver-upgrade

Ich habe den chromedriver-helper gem installiert, aber er ist verstaut und erfordert das Präfix "bundle exec" oder die Shell findet den Befehl nicht.

Das oben genannte Problem wurde behoben.

0
gischer

Das Problem ist auf eine Nichtübereinstimmung in der Chromedriver- und Chrome-Browser-Version zurückzuführen. __ Der nachfolgende Link gibt die Versionen von Chromedriver an, die die Chrome-Browser-Version unterstützen.

http://chromedriver.chromium.org/downloads

0

Ich betreibe Protractor (webdriver-manager) mit Selenium in einer Windows-Umgebung, und ich musste Folgendes tun:

  1. webdriver-manager update --versions.chrome="2.36" (Dies hat den neuen Chromedriver auf den richtigen Pfad heruntergeladen, jedoch nicht im Winkelmesser aktiviert.)
  2. Bearbeiten Sie %userprofile%\AppData\Roaming\npm\node_modules\protractor\config.json und ändern Sie den chromedriver-Wert von 2.32 in 2.36.
  3. Löschen Sie meinen alten chromedriver_2.32.exe aus %userprofile%\AppData\Roaming\npm\node_modules\protractor\Selenium für ein gutes Maß (nicht sicher, ob dies erforderlich war.)

Oder:

Als ein weiteres Chromedriver-Update erforderlich wurde, konnte ich auf diese Weise nicht mehr aktualisieren. Eine Konfigurationseinstellung erwartete weiterhin den alten Pfad und den Dateinamen, und ich konnte nicht herausfinden, wo ich diese Einstellung ändern sollte. Also habe ich den neuesten Chromedriver in "chromedriver.exe" umbenannt und in C:\Windows\system32 (das immer von PATH referenziert wird) geklebt. Roh, aber effektiv.

0
Jordan Rieger

Ich weiß nicht, ob Sie noch dabei sind, aber ich habe einen ähnlichen Fehler erhalten. Ich hatte die neueste Version von Chromedriver in meinem PFAD und Google Chrome wurde aktualisiert. Ich führe Python 3.6 unter Windows 10 x64 Bit aus. Was ich versucht habe, einen Wert aus einem Dropdown-Menü auf einer Webseite auszuwählen. Das Seltsame war, es würde den Dropdown-Wert richtig auswählen und die Seite würde gut aktualisiert, aber ich würde trotzdem diesen dummen Fehler erhalten und mein Skript würde einfrieren. Also habe ich gerade einen Ausnahmefehlerhandler dafür gemacht, weil, wie gesagt, der Dropdown-Wert richtig ausgewählt wurde, also wollte ich nur diese dumme Fehlermeldung umgehen:

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

hoffentlich findet jemand das hilfreich.

0
Matt Wilson