1
ページオブジェクトフィールドで明示的待機を使用する方法? フィールドを宣言し、FindByタグを使用してインスタンス化するpageobjectクラスがあります。どのように私は明示的にいくつか、またはすべてのフィールドの宣言を追加することができますselenium webdriverのpageobjectフィールドで明示的待機を使用するには?
ページオブジェクトフィールドで明示的待機を使用する方法? フィールドを宣言し、FindByタグを使用してインスタンス化するpageobjectクラスがあります。どのように私は明示的にいくつか、またはすべてのフィールドの宣言を追加することができますselenium webdriverのpageobjectフィールドで明示的待機を使用するには?
私の解決策は、@ FindByを使用しないことです。あなたのページのオブジェクトで
:
By someElementLocator = By.cssSelector(".locator");
public void waitForElementPresent(final By locator, int timeout) {
ExpectedCondition e = new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver driver) {
return driver.findElements(locator).size() > 0;
}
};
WebDriverWait wait = new WebDriverWait(driver, timeout);
wait.until(e);
}
public WebElement getSomeElement() {
waitForElementPresent(someElementLocator);
return driver.findElement(locator);
}
多分それは建築の問題です。 @FindByサポートが待っていることを確認するリソースは見つからないようですが、その使用法はテスト設計/アーキテクチャに依存している可能性があります。