下面的代碼片段工作正常,但我有與wait.until()
線有點麻煩:如何在Wait.until()中使用selenium 2 PageFactory init元素?
wait.until(new ElementPresent(By.xpath("//a[@title='Go to Google Home']")));
它的工作原理,但我想給我的PageFactory
WebElement
homePageLink
代替:
wait.until(new ElementPresent(homePageLink));
是有沒有辦法做到這一點?
這些新的Selenium 2功能讓我頭腦發昏,我找不到太多文檔。
謝謝。
public class GoogleResultsPage extends TestBase {
@FindBy(xpath = "//a[@title='Go to Google Home']")
@CacheLookup
private WebElement homePageLink;
public GoogleResultsPage() {
wait.until(new ElementPresent(By.xpath("//a[@title='Go to Google Home']")));
assertThat(driver.getTitle(), containsString("Google Search"));
}
}
public class ElementPresent implements ExpectedCondition<WebElement> {
private final By locator;
public ElementPresent(By locator) {
this.locator = locator;
}
public WebElement apply(WebDriver driver) {
return driver.findElement(locator);
}
}
我用SlowLoadableComponent代替。它允許我在isLoaded()和load()之間放置一個延遲,以便頁面不斷重試直到頁面加載。 – djangofan 2012-02-25 00:49:53