2
なぜ私のwaitメソッドは30秒待つのですか?なぜ私のwaitメソッドは30秒待つのですか?
メソッドが要素を見つけることができない場合、私のメソッドは30秒後にタイムアウトするはずですが、タイムアウトやアイデアなしでtrueまたはfalseを返しますか? apply(WebElement element)
の条件がfalseを返されたら
public boolean WaitUntilWebElementIsVisiblePredicate(WebElement element) {
FluentWait<WebElement> wait = new FluentWait<WebElement>(element)
.withTimeout(30, TimeUnit.SECONDS)
.pollingEvery(100, TimeUnit.MILLISECONDS)
.ignoring(NoSuchFieldException.class);
Function<WebElement, Boolean> f = new Function<WebElement, Boolean>() {
@Override
public Boolean apply(WebElement element) {
if (!element.isDisplayed()) {
System.out.println("Method failed: WaitUntilWebElementIsVisiblepPredicate, using locator: " + element.toString());
return false;
}
System.out.println("Element visible, using method: WaitUntilWebElementIsVisiblepPredicate, Locator: " + element.toString());
return true;
}
};
return wait.until(f);
}
私はこのメソッドがfalseを返す場合でも、コメントをお寄せいただきありがとうございます。ポスティングを保持していて、30秒の最大時間が経過するまで待ちます。 – Gbru
戻り値を返す以外は何も間違っていませんwait.until(f); 'はboolean型の関数ですが、' until'メソッドの戻り値の型はWebElementです。 – YuVi
私は唯一の問題は、WebElement(IDロケータ)をパラメータとして渡す必要があることです – Gbru