[解決済み] WebDriver - Javaを使った要素の待ち時間
2023-06-01 05:29:58
質問
私は、以下のようなものを探しています。
waitForElementPresent
のような、クリックする前に要素が表示されているかどうかを確認するためのものを探しています。私は、これは
implicitWait
でできると思ったので、以下のようにしました。
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
でクリックすると
driver.findElement(By.id(prop.getProperty(vName))).click();
残念なことに、要素を待ってくれるときと待ってくれないときがあります。しばらく探して、この解決策を見つけました。
for (int second = 0;; second++) {
Thread.sleep(sleepTime);
if (second >= 10)
fail("timeout : " + vName);
try {
if (driver.findElement(By.id(prop.getProperty(vName))).isDisplayed())
break;
} catch (Exception e) {
writeToExcel("data.xls", e.toString(), parameters.currentTestRow, 46);
}
}
driver.findElement(By.id(prop.getProperty(vName))).click();
そして、ちゃんと待ってくれたのですが、タイムアウトするまでに10×5、50秒待たされました。ちょっと多すぎですね。そこで、暗黙のうちに待つ時間を1秒に設定したところ、今まではすべてうまくいっていたようです。なぜなら、あるものはタイムアウトまで10秒待ち、別のものは1秒後にタイムアウトするようになったからです。
あなたのコードでは、要素の存在/可視の待ち時間をどのようにカバーしていますか?どんなヒントでもかまいません。
どのように解決するのですか?
これは、私のコードでそれを行う方法です。
WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id<locator>));
または
wait.until(ExpectedConditions.elementToBeClickable(By.id<locator>));
を正確には
も参照してください。
- org.openqa.selenium.support.ui.ExpectedConditions で、様々な待ち時間のための同様のショートカットがあります。
- org.openqa.selenium.support.ui.WebDriverWait は、その様々なコンストラクタのために
関連
-
Uncaught ReferenceError: は定義されていません。
-
-bash: java: コマンドが見つからない 解決方法
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipse の問題 アクセス制限。タイプ 'jfxrt' はAPI解決されていません。
-
Java の switch case 文で必要な定数式の問題の解決法
-
StringBuilderが投げるArrayIndexOutOfBoundsExceptionの探索
-
Jsoup-Crawlingの動作
-
java send https request prompt java.security.cert.について。
-
API の戻り値を処理するために ResponseEntity を使用する
-
代入の左辺は変数でなければならない 解答
-
Javaがエラーで実行される、選択が起動できない、最近起動したものがない
-
アクセス制限の解決方法: ---- in Java
-
IDEAError:javaの依存性エラー。Annotation processing is not supported for module cycles...(アノテーション処理はモジュールサイクルではサポートされていません。