Selenium Test Project によって 2.53.0 から新しいバージョン 3.0.1 を使用するようにアップグレードしました。現在、Geckodriver v0.11.1 を使用しており、現在、バージョン 46.0.1 の Firefox のみでテストしています。
アップグレード前は、次のようなコードがありました。
driver.Navigate().GoToUrl(DefaultBaseURL);
driver.ExecuteScript("$('#" + XXXX + "').val(\"" + XXXX + "\");");
アップグレード後、次のエラーで 2 行目が失敗します。
WebDriverException: ReferenceError: $ が定義されていません
「UseLegacyImplementation」を有効にすると、再び機能するようになります。Selenium の Web サイトによると、これは「レガシー ドライバーの実装を使用するかどうかを示しています」。そのため、詳細はそれほど多くありません...しかし、有効にすると、2.53.0 と同じように動作するようです。
この問題に関する私の最初の推測は、ここで言及されている投稿と同様に、タイミングに関連していることです。しかし、2 つの行の間に長い待ち時間を置いても、最終結果は常に同じです。新しいセレン ライブラリは、ページが既に jQuery を読み込んでいることを検出できないようです。
「UseLegacyImplementation」を有効にせずに、Selenium 3.0.1 で JQuery 依存スクリプトを呼び出す方法はありますか?