2.53.0から新しいバージョン3.0.1を使用するためにSelenium Test Projectによってアップグレードしました。私は現在、Geckodriver v0.11.1を使用しています。現在は、バージョン46.0.1のFirefoxでのみテストしています。今二行目をアップグレードするには、次のエラーで失敗し
driver.Navigate().GoToUrl(DefaultBaseURL);
driver.ExecuteScript("$('#" + XXXX + "').val(\"" + XXXX + "\");");
後:I場合
WebDriverException: ReferenceError: $ is not defined
私は再び仕事をすることができ、私はこのように見えたコードを持っていたアップグレードする前に
「UseLegacyImplementation」を有効にします。 Seleniumのウェブサイトによると、これは"indicating whether to use the legacy driver implementation."です。そこには詳細がたくさんありません...しかし、私がそれを有効にすると、2.53.0と同じように動作するようです。
この問題に関する私の最初の推測は、それがhereと同じようなタイミング関連であるということです。しかし、私が2つのラインの間に大きな待ち時間を置いたとしても、最終結果は常に同じです。新しいセレニウムライブラリがページが既にjQueryをロードしたことを検出できないかのように見えます。
"UseLegacyImplementation"を有効にせずに、Selenium 3.0.1でJQuery依存スクリプトを呼び出す方法はありますか?
私はFirefox 47.0.2にアップグレードしました。これは最新バージョンで、 "UseLegacyImplementation"は無効になっていますが、私はまだ同じ問題を抱えています。各コンポーネントのどのバージョンが他のコンポーネントと互換性があるかについては、一般的にはリリースノートを参照していますが、かなり時間がかかり、時には不完全な方法でその情報を取得することがあります。 –
Seleniumのドキュメントは本当に残念です。 – Elmue
多くの全ボランティアオープンソースプロジェクト@Elmueと同様、ドキュメントはしばしば寄稿者が考える最初のものではありませんが、多くのボランティアのオープンソースプロジェクトのように、ドキュメント化に貢献しています。プロジェクトに関わる素晴らしい方法です。ドキュメント「本当に残念です」と、プルの要求は最も確実に歓迎されます。 – JimEvans