キーを送信中に以下のエラーが表示されます。
結果メッセージ:
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)
クロムドライバを2.36にアップデートしましたが、それでもコードは2.33を検索しますか?
何か案が ?
私は同じエラーを得た、最後のChromeDriverのバージョンをダウンロードするか、またはChromeブラウザのバージョンを更新するか、またはその両方を実行してください:)
https://chromedriver.storage.googleapis.com/index.html?path=2.36/
Google Chromeブラウザをバージョン65.0.3325.146(オフィシャルビルド)(64ビット)に更新した後、入力フィールドに値を送信しているときにも同じエラーが発生します。エラーメッセージ...
Selenium.common.exceptions.WebDriverException: Message: unknown error: call function result missing 'value'
Chromedriver 2.32およびGoogle Chrome 65.0を使用
私が同じことについていくつかの調査をしたとき、私は問題を解決するのを手伝ってくれるグーグルのクロムv65チェンジログで最近の commit を見つけました。
解決策:
最新のchromedriver(v2.36)をダウンロードして設定してください。 (Ubuntuで)chromedriverを設定するには、次の手順に従ってください。
エクスポートパス= $パス:/ usr/local/bin
クロームドライバー - バージョン
インストールしたばかりのchromedriverのバージョンが表示されます。
注: chromedriverが既にインストールされ設定されている場合は、既存のドライバファイルを置き換えるだけです。Chromedriverバイナリが既に格納されている場所がわからない場合は、次のコマンドを使用してファイルを探します。
Sudo find -H / -type f -iname chromedriver
これは、クロムブラウザのバージョンが64.xxから65.xxに更新されたためです。
テストを正常に実行するための2つのオプションがあります。
あなたのクロムブラウザを以前のバージョンにそしてあなたが今持っている古いクロムドライバでダウングレードしなさい。
最新のChromeブラウザでChromedriverを2.36バージョンにアップグレードしてください。
https://chromedriver.storage.googleapis.com/index.html?path=2.36 にアクセスして、新しいchromedriverをダウンロードします。
選択肢2が優れています。
ChromeDriver.exeを最新バージョンに置き換えます。Googleから簡単にダウンロードできます。
また、自動的に実行させるために、以下に説明されているようにwebdriverマネージャを使用することができますlink- ブラウザバイナリマネージャとはSeleniumのためにそれを使用する方法
または同じgitプロジェクトを参照してください - https://github.com/bonigarcia/webdrivermanager#webdrivermanager-as-Java-dependency
Chromedriverを更新する必要があります。コンソールで、次のコマンドを実行します。chromedriver-update 2.36
エラーはそれをすべて言います:
System.InvalidOperationException : unknown error: call function result missing 'value'
(Session info: chrome=65.0.3325.146)
(Driver info: chromedriver=2.33.506120
エラーは明らかに InvalidOperationException について文句を言う
あなたの主な問題は、あなたが使っているバイナリ間の バージョンの互換性 です。
Chrome v60-62 をサポート
Chrome v64-66 をサポート
そのため、ChromeDriverversion(v2.33)とChrome Browserversion(v65.0))の間に明らかな不一致があります。
@Test
を実行してください。Macを使用している場合
brew upgrade Selenium-server-standalone
brew upgrade chromedriver
上記の2つがインストールされていない場合
brew install Selenium-server-standalone
brew install chromedriver
私は分度器を実行していると同じ問題が発生しました。
私の場合の解決策はかなり単純でした。
$ npm update protractor -g
$ webdriver-manager update
最新の安定版Google Chrome(67など)を使用している場合は、次のことをおすすめします。
brew uninstall chromedriver
brew tap homebrew/cask
brew cask install chromedriver
これらのコマンドセットはあなたの現在のドライバーをアンインストールし、アップデートをチェックしそして最新のもの(例えば2.40)をインストールします。
他の人が言ったように、最新のクロムドライバーが私のためにトリックをしました。手動でドライバをダウンロードし、appiumに新しいchromedriverを使うように伝えたい場合は、次のコマンドで実行できます。
appium --chromedriver-executable /path/to/driver/chromedriver ....
gulp-protractor
プラグインを使用している場合は、必ずそれも更新してください。
私の場合は、私が持っていた特定のchromedriverファイルをSeleniumにポイントしています。 Seleniumにアップデートされたchromedriverを使用させるために、私は最初にそれをbrewでインストールし、そしてSeleniumがそれを探す場所を指すためにシンボリックリンクを作成しました:
brew install chromedriver
ln -s /usr/local/Cellar/chromedriver/2.36/bin/chromedriver /path/where/Selenium/expects/chromedriver
チャンスがあれば、これは私が追加のステップを必要としている誰かに役立つかもしれません:
私はMacOS Xを使っています。
brew upgrade chromedriver
bundle exec chromedriver-upgrade
Chromedriver-helper gemがインストールされていますが、stashされていて "bundle exec"プレフィックスが必要か、シェルがコマンドを見つけることができません。
以上で私の問題は解決しました。
この問題は、クロムドライバとクロムブラウザのバージョンの不一致が原因です。下のリンクは、クロムブラウザのバージョンをサポートするクロムドライバのバージョンを指定します。
私はWindows環境でSeleniumと一緒にProtractor(webdriver-manager)を実行しています、そして私は以下をしなければなりませんでした:
webdriver-manager update --versions.chrome="2.36"
(これは新しいChromedriverを正しいパスにダウンロードしましたが分度器でそれを有効にしませんでした。)%userprofile%\AppData\Roaming\npm\node_modules\protractor\config.json
を編集し、chromedriver
の値を2.32
から2.36
に変更しました。chromedriver_2.32.exe
から古い%userprofile%\AppData\Roaming\npm\node_modules\protractor\Selenium
を削除します(これが必要かどうかはわかりません)。または:
別のChromedriverアップデートが必要になったとき、私はもはやこの方法でアップデートすることができませんでした。構成設定はまだ古いパスとファイル名を想定していました、そして私はその設定をどこに変更するべきかを見つけることができませんでした。だから私はちょうど最新のchromedriverを "chromedriver.exe"に改名してC:\ Windows\system32(いつもPATHによって参照される)に貼り付けました。粗い、しかし効果的。
私はあなたがまだこれにいるのかどうかわかりませんが、私は同じようなエラーを受けていました。 PATHに最新バージョンのChromedriverがあり、Google Chromeが更新されました。私はPython 3.6をwindows 10 x 64 bitで動かしています。 Webページのドロップダウンメニューから値を選択しようとしていました。奇妙なことに、ドロップダウンの値を正しく選択してページがうまく更新されるはずでしたが、とにかく愚かなエラーが発生してスクリプトがフリーズしてしまいました。だから私はちょうどそれのために例外エラーハンドラを作りました、なぜなら私がそれがドロップダウン値を正しく選択したと言ったので、私はただそのダムエラーメッセージをバイパスしたいと思いました:
# select by value
try:
select.select_by_value('100')
except:
pass
うまくいけば、誰かがこれが役に立つと思います。