8

これは、JavaのSeleniumWebdriverに関するものです。要素をクリックすると、通常は高速になりますが、サーバーがビジー状態の場合は、ブラウザの上部に「接続中...」と表示されてハングします。通常、待機を処理するためのコードは次のとおりです。driver.manage().timeouts().implicitlyWait(4, TimeUnit.SECONDS); ただし、この場合、サーバーがclick()でハングした場合、クリックが接続を完了するまでWebドライバーはカウントを開始しないため、制限時間後に例外はスローされません。次のURL。誰かが以前にこれに対処したことがありますか、そしてどのように?

との完了時間を計る方法はclick()ありsubmit()ますか?

4

3 に答える 3

4

Seleniumのドキュメントには、Click()がブロックされると記載されています。何らかの理由で、ページが完全にロードされていないとSeleniumが判断した場合、クリックするとテストがハングします。

最も簡単な回避策は、クリックイベントを完全にスキップして、次を使用することです。

element.SendKeys(Keys.Enter);

代わりは。多くの障害のあるユーザーはキーボードを使用してナビゲートするだけなので、ブロックせず、アクセシビリティをテストしています。

于 2015-09-11T17:27:26.457 に答える
3

はい、これは既知の問題であり、Selenium 2.21.0の時点で、回避する方法があります。

問題は、暗黙的な待機は、要素を検索するときにアンロードされた要素を待機するように設計されていることですが、click()メソッドは、ページが完全に読み込まれたことをブラウザが示すまで待機します。

2.21.0driver.manage().timeouts().pageLoadTimeout()の新しい方法であり、これを正確に処理する必要がある方法を試してください。

于 2012-05-07T20:04:18.017 に答える
1

セレンがハングした場合は、Firefoxのバージョンをセレンと同じように更新してください

于 2017-02-25T18:18:45.733 に答える