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 ?
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/
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:
Laden Sie den neuesten Chromedriver (v2.36) herunter und konfigurieren Sie ihn. Zum Konfigurieren von Chromedriver (unter Ubuntu) gehen Sie wie folgt vor:.
export PATH = $ PATH:/usr/local/bin
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
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.
Rüsten Sie Ihren Chrome-Browser auf die vorherige Version und den alten Chrom-Treiber herunter, den Sie jetzt haben.
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.
Ersetzen Sie Ihre ChromeDriver.exe durch die neueste Version: 2.37. Das gleiche kann einfach von Google heruntergeladen werden.
Führen Sie in der Konsole Folgendes aus: chromedriver-update 2.36
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
Es besteht also eine deutliche Abweichung zwischen der ChromeDriver -Version ( v2.33 ) und dem Chrome-Browser version ( v65.0 )
@Test
Aus.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
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
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).
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 ....
Wenn Sie das gulp-protractor
-Plugin verwenden, müssen Sie es auch aktualisieren.
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
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.
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.
Ich betreibe Protractor (webdriver-manager) mit Selenium in einer Windows-Umgebung, und ich musste Folgendes tun:
webdriver-manager update --versions.chrome="2.36"
(Dies hat den neuen Chromedriver auf den richtigen Pfad heruntergeladen, jedoch nicht im Winkelmesser aktiviert.)%userprofile%\AppData\Roaming\npm\node_modules\protractor\config.json
und ändern Sie den chromedriver
-Wert von 2.32
in 2.36
.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.
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.