web-dev-qa-db-ja.com

不明なエラー:Chromedriverのアップグレード後もSelenium Send Keysの呼び出し関数の結果に 'value'がありません

キーを送信中に以下のエラーが表示されます。

結果メッセージ:

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を検索しますか?

何か案が ?

103
Zaki Ahmed

私は同じエラーを得た、最後のChromeDriverのバージョンをダウンロードするか、またはChromeブラウザのバージョンを更新するか、またはその両方を実行してください:)

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

112
Coder


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 を見つけました。

解決策:

  • Google Chromeを最新の安定バージョンにアップデートします(私の場合、2018年9月3日にv65です)。
  • 最新のchromedriver(v2.36)をダウンロードして設定してください。 (Ubuntuで)chromedriverを設定するには、次の手順に従ってください。

    1. ダウンロードしたZipファイルを解凍します。
    2. 抽出したchromedriverファイルを /usr/local/bin にコピーするか、通常は実行可能バイナリを保存している場所にコピーします。
    3. 環境変数PATHに同じパス(chromedriverファイルを置く場所)を追加します。

エクスポートパス= $パス:/ usr/local/bin

  1. インストールをテストするには、端末を再起動して次のコマンドを入力します。

クロームドライバー - バージョン

インストールしたばかりのchromedriverのバージョンが表示されます。

注: chromedriverが既にインストールされ設定されている場合は、既存のドライバファイルを置き換えるだけです。Chromedriverバイナリが既に格納されている場所がわからない場合は、次のコマンドを使用してファイルを探します。

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

これは、クロムブラウザのバージョンが64.xxから65.xxに更新されたためです。

テストを正常に実行するための2つのオプションがあります。

  1. あなたのクロムブラウザを以前のバージョンにそしてあなたが今持っている古いクロムドライバでダウングレードしなさい。

  2. 最新のChromeブラウザでChromedriverを2.36バージョンにアップグレードしてください。

    https://chromedriver.storage.googleapis.com/index.html?path=2.36 にアクセスして、新しいchromedriverをダウンロードします。

選択肢2が優れています。

13
Deepak N

ChromeDriver.exeを最新バージョンに置き換えます。Googleから簡単にダウンロードできます。

また、自動的に実行させるために、以下に説明されているようにwebdriverマネージャを使用することができますlink- ブラウザバイナリマネージャとはSeleniumのためにそれを使用する方法

または同じgitプロジェクトを参照してください - https://github.com/bonigarcia/webdrivermanager#webdrivermanager-as-Java-dependency

12

Chromedriverを更新する必要があります。コンソールで、次のコマンドを実行します。chromedriver-update 2.36

10
Olga

エラーはそれをすべて言います:

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

エラーは明らかに InvalidOperationException について文句を言う

あなたの主な問題は、あなたが使っているバイナリ間の バージョンの互換性 です。

  • あなたはchromedriver = 2.33を使っています
  • chromedriver = 2.33 のリリースノートには、以下のことが明記されています。

Chrome v60-62 をサポート

  • あなたはchrome = 65.0を使っています
  • ChromeDriver v2.37 のリリースノートには、以下のことが明記されています。

Chrome v64-66 をサポート

  • あなたのSelenium Clientバージョンは私達には未知です。

そのため、ChromeDriverversion(v2.33)とChrome Browserversion(v65.0))の間に明らかな不一致があります。

溶液

  • Seleniumを現在のレベルにアップグレード バージョン3.11.0
  • ChromeDriverから ChromeDriver v2.37 レベルにアップグレードしてください。
  • ChromeversionをChrome v64.x-66.xレベルの間に収める)( ChromeDriver v2.37リリースノート による)
  • クリーンあなたのプロジェクトワークスペースあなたのイデおよびリビルド必要な依存関係のみを持つプロジェクトを介して))。
  • テストスイートの実行前後のすべてのOS雑用を一掃するために CCleaner ツールを使用してください。
  • ベースのWebブラウザ/ Webクライアントバージョンが古すぎる場合は、 Revo Uninstaller を使用してアンインストールし、最新のGAおよびリリースバージョンのWebブラウザをインストールします。/Webクライアント
  • @Testを実行してください。
8
DebanjanB

Macを使用している場合

brew upgrade Selenium-server-standalone
brew upgrade chromedriver

上記の2つがインストールされていない場合

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

私は分度器を実行していると同じ問題が発生しました。

私の場合の解決策はかなり単純でした。

$ npm update protractor -g

$ webdriver-manager update

3
catch22

最新の安定版Google Chrome(67など)を使用している場合は、次のことをおすすめします。

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

これらのコマンドセットはあなたの現在のドライバーをアンインストールし、アップデートをチェックしそして最新のもの(例えば2.40)をインストールします。

2
S. Esteves

他の人が言ったように、最新のクロムドライバーが私のためにトリックをしました。手動でドライバをダウンロードし、appiumに新しいchromedriverを使うように伝えたい場合は、次のコマンドで実行できます。

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

0

gulp-protractorプラグインを使用している場合は、必ずそれも更新してください。

0
Ilya Vinogradov

私の場合は、私が持っていた特定のchromedriverファイルをSeleniumにポイントしています。 Seleniumにアップデートされたchromedriverを使用させるために、私は最初にそれをbrewでインストールし、そしてSeleniumがそれを探す場所を指すためにシンボリックリンクを作成しました:

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

チャンスがあれば、これは私が追加のステップを必要としている誰かに役立つかもしれません:

私はMacOS Xを使っています。

brew upgrade chromedriver
bundle exec chromedriver-upgrade

Chromedriver-helper gemがインストールされていますが、stashされていて "bundle exec"プレフィックスが必要か、シェルがコマンドを見つけることができません。

以上で私の問題は解決しました。

0
gischer

この問題は、クロムドライバとクロムブラウザのバージョンの不一致が原因です。下のリンクは、クロムブラウザのバージョンをサポートするクロムドライバのバージョンを指定します。

http://chromedriver.chromium.org/downloads

0

私はWindows環境でSeleniumと一緒にProtractor(webdriver-manager)を実行しています、そして私は以下をしなければなりませんでした:

  1. webdriver-manager update --versions.chrome="2.36"(これは新しいChromedriverを正しいパスにダウンロードしましたが分度器でそれを有効にしませんでした。)
  2. %userprofile%\AppData\Roaming\npm\node_modules\protractor\config.jsonを編集し、chromedriverの値を2.32から2.36に変更しました。
  3. 念のため、chromedriver_2.32.exeから古い%userprofile%\AppData\Roaming\npm\node_modules\protractor\Seleniumを削除します(これが必要かどうかはわかりません)。

または:

別のChromedriverアップデートが必要になったとき、私はもはやこの方法でアップデートすることができませんでした。構成設定はまだ古いパスとファイル名を想定していました、そして私はその設定をどこに変更するべきかを見つけることができませんでした。だから私はちょうど最新のchromedriverを "chromedriver.exe"に改名してC:\ Windows\system32(いつもPATHによって参照される)に貼り付けました。粗い、しかし効果的。

0
Jordan Rieger

私はあなたがまだこれにいるのかどうかわかりませんが、私は同じようなエラーを受けていました。 PATHに最新バージョンのChromedriverがあり、Google Chromeが更新されました。私はPython 3.6をwindows 10 x 64 bitで動かしています。 Webページのドロップダウンメニューから値を選択しようとしていました。奇妙なことに、ドロップダウンの値を正しく選択してページがうまく更新されるはずでしたが、とにかく愚かなエラーが発生してスクリプトがフリーズしてしまいました。だから私はちょうどそれのために例外エラーハンドラを作りました、なぜなら私がそれがドロップダウン値を正しく選択したと言ったので、私はただそのダムエラーメッセージをバイパスしたいと思いました:

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

うまくいけば、誰かがこれが役に立つと思います。

0
Matt Wilson