問題タブ [selenium-firefoxdriver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
414 参照

java - PageObjects を使用する Firefox で pageLoadTimeout が機能しない

Selenium WebDriver を使用して Web サイトをテストしています。LoginPage、 、HomePageおよびを表す PageObjects がありManagementPageます。私のテストは最初にログインし、 を返しHomePage、次に を返すボタンをクリックしますManagementPage。次に、一連のものをチェックし、リンクをクリックして に戻りHomePage、ログアウト リンクをクリックします。

これは、まったく使用しなくても、Chrome で問題なく動作pageLoadTimeoutします。ただし、Firefox ではNoSuchElementException、ログアウト リンクをクリックしようとするとエラーが発生します。これは、ログアウト ボタンをクリックしようとしたときにページが完全に読み込まれていないことが原因であると想定しています。driver.manage().timeouts().pageLoadTimeout(5000, TimeUnit.MILLISECONDS)そのため、ドライバーを作成した直後に、テストの開始時に a を配置しました。それでも同じエラーが発生します。タイムアウトを に変更する5 millisecondsと、ページが読み込まれずに aTimeOutExceptionがスローされるため、タイムアウトが機能していることがわかります。

driver.manage().timeouts().pageLoadTimeout(5000, TimeUnit.MILLISECONDS)をのコンストラクターに移動すると、HomePageすべて正常に動作します。したがって、すべての PageObject にタイムアウトを設定することで問題を解決できます。

これをドライバーごとに1回だけ設定できるようにしたいと思います。これは、この質問から行うことを意図していると収集したものです。しかし、この質問は、pageLoadTimeout がリンクをクリックしても機能しないことを示しています。

他にやらなければならないことはありますか?または、ドライバーが PageObject に渡されると、タイムアウトがリセットされますか? コンストラクターで行うことは次のとおりであるため、それがどのように発生するかわかりません。

0 投票する
0 に答える
88 参照

java - Selenium (Java) - プロファイルを使用した FirefoxDriver の任意のインスタンス化

私は Selenium FirefoxDriver を使用していますが、何をするにしても、デフォルトのユーザー プロファイル (アドオンなど) から開始したいと考えてます。私はその部分を機能させました。また、プログラムの制御に役立つ簡単な GUI も作成しました。この GUI には、ドライバーを開始するボタンと、 quit()を呼び出す別のボタンがあります。

問題:

  1. [スタート] -> [正常に動作します] をクリックします。FirefoxDriver には、すべてのアドオン、ブックマーク、...
  2. 閉じるをクリックします->正常に動作します。ブラウザはきれいに閉じます(私が知る限り)。
  3. もう一度 [開始] をクリックします -> ブラウザが起動しますが、プロファイルは空白です。アドオンなし、何もありません

これが、ドライバーをインスタンス化する方法です。何が問題を引き起こしているのかわかりません。助けてください!

0 投票する
3 に答える
814 参照

java - Webdriver executeScript が散発的に動的に生成された要素を検出しない

理解するのに長い時間がかかりましたが、それでも私はこれに苦労しています. Selenium webdriver を使用して JavaScript インジェクションを使用して、Web ページ上で動的に生成された要素にアクセスしようとしています。例えば:

Firefox コンソールでこのスクリプトを実行すると、問題なく動作します。ただし、この行は、webdriver で 10 回のうち 5 ~ 6 回実行すると例外をスローします (要素が物理的に存在していても)。

なぜそれが起こっているのですか?で、解決策は?ヒント/回答が役立つ場合は、必ず賛成します。

編集:

私はすでに Thread.sleep(500) を入れており、コード内で executeScript() が発生する前に 1000 秒も待機しています。それでも機能しません。

(部分的な)スタックトレースは次のとおりです。

0 投票する
1 に答える
3816 参照

java - xpath Selenium javaによって動的に生成されたIDを持つWebElementsの選択

ドロップダウン ウィンドウで要素を選択する必要があります。テストしているサイトでドロップダウン ウィンドウを開くたびに、Web サイトはそのドロップダウン ウィンドウの ID をランダムに生成します。ドロップダウン ウィンドウの以前のインスタンスは (Firebug を使用して) 表示されますが、選択することはできません。静的パスがありますが、ChromeDriver でテストした場合にのみ機能し、FirefoxDriver を使用した場合には機能しません。動的に生成された要素をクラス名 (ドロップダウン ウィンドウの各インスタンスには同じクラスがあります) で検索すると、最初に試したときに機能しますが、その後は ChromeDriver と FirefoxDriver の両方を使用して毎回エラーが発生します。その最初のインスタンスを見つけようとしている可能性がありますが、選択可能なインスタンスではありません。

動的なもののコードは次のとおりです。

そして、これが静的なものの私のコードです:

動的 HTML は次のとおりです。

静的 HTML は次のとおりです。

0 投票する
1 に答える
1985 参照

selenium-webdriver - WebDriver と Visual Studio Online を使用した Selenium テスト

製品の Contionous Integration メカニズムの一部として、いくつかの Selenium テストを実行したいと考えています。Visual Studio Online を使用しています。

IE WebDriver を使用してみましたが、リソースに接続できませんでした。移植版の Firefox をデプロイしようとしましたが、テストが動かなくなったようです。ファイアウォール プロンプトが表示されているのではないでしょうか?

PhantomJs Web ドライバーを試してみましたが、テスト ページがまったく適切にレンダリングされないようです (完全に間違っている場合を除きます)...

そう... Visual Studio OnlineビルドサーバーからSeleniumベースのブラウザテストを実行することさえ可能ですか?

0 投票する
1 に答える
41 参照

selenium-firefoxdriver - Selenium IDE 2.6 エラー記録

Selenium IDE でテスト ケースを実行すると、次のエラーが表示されます: [エラー] 要素 id=ui-id-31 が見つかりません。このエラーは、値を入力する空のボックスをクリックすると発生します。「verifyTextPresent」や「waitForElementPresent」など、さまざまなことを試しましたが、うまくいきませんでした。

このエラーを管理する方法を知っている人はいますか?

0 投票する
5 に答える
10474 参照

java - Java で FirefoxDriver を作成中に java.lang.NoSuchMethodError が発生する

しようとしている間:

次のエラーが表示されます。

この問題は、ubuntu の firefox が 32.0 バージョンに更新された直後に発生し、バージョン 28.0 をインストールしようとしましたが、それでも機能しませんでした。

何か案は?前もって感謝します

curiosuが言ったようにドライバーのバージョンを 2.39 に変更した後、新しいエラーが表示されます。

解決策: ようやく問題を解決できました。selenium webDriver のバージョンを 2.42.2 から 2.39.0 に変更し、firefox のバージョンを 32.0 から 28.0 にダウングレードしました。

0 投票する
1 に答える
578 参照

selenium-webdriver - Selenium 2 が Firefox プロファイルを見つけられない

グリッドセットアップのセレン2では、これを使用して「分度器」と呼ばれるプロファイルをロードしようとしています:

これは機能しません。次のエラーが表示されます。

-p 引数と分度器を指定して Firefox を起動すると、次のようになります。

それは機能します。ここで何がうまくいかないのでしょうか?

0 投票する
1 に答える
2705 参照

c# - Selenium FirefoxDriver: 異なるインスタンス間でセッション/Cookie を共有する

次のシナリオがあります。

同時に異なる Web サイトにアクセスして、それらからデータを収集しようとする C# WPF プログラムがあります。

Web サイト A (www.example.com) にはログイン フォームがあり、ログイン後に www.example.com?redir=abc などの多数のリンクが表示されます。

私がやること:

  • FirefoxDriver 1 を起動します
  • ログインする
  • 無限ループ: すべてのリンクを収集してページを更新する

問題は、別の FirefoxDriver インスタンス 2 がプロジェクトの別のスレッドで実行されていることです。

このインスタンス 2 では、以前に収集したリンクにアクセスし、それらを開きたいと考えています。

問題は、それらにアクセスするために (リダイレクトしている)、Web サイト A に再度ログインする必要があることです。ログインすると、インスタンス 1 のセッションが終了するため、再度ログインする必要があります。インスタンスはお互いのセッションを「盗んでいます」。(これをさらにスケールしてインスタンス 3,4 を作成したいので、問題はさらに悪化します)。

明らかに私の問題は、インスタンス 1 とインスタンス 2 が同じセッションを共有していないことです。

問題を解決するために私が見つけた可能性:

  • 同じ FirefoxProfile の使用: 試しましたが、動作しませんでした。まだセッションを共有していません
  • 2 つのウィンドウ/タブで 1 つのインスタンスを使用し、Selenium ThreadGuard クラスを使用して両方のスレッドからアクセスする: ウィンドウを常に切り替える必要があるため、非常に複雑に思えます
  • Selenium Gridの使用:やり過ぎのようで、それが自分にとって正しいことかどうかまだわかりません

したがって、私は尋ねています、これをどのように設計すべきか誰かアドバイスがありますか?

ご協力ありがとうございました。