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秒後にタイムアウトするものもあるからです。
コードに存在する/表示される要素の待機をどのようにカバーしますか?どんなヒントもかなりあります。