0

网页从上到下加载。

1) <html ...
2) <head ...
3) <body ...
  etc

我需要我的 WebDriver 明确地等到<title标签可见。然后阅读标题内容,不用等待整个页面加载完毕,继续做其他动作!!!.

WebDriver driver = new ChromeDriver();
driver.get("http://");
WebDriverWait wait = new WebDriverWait(driver, 0) // This line is probably the one to be transformed in order to correspond to my requirements
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//title")));
// The problem is that the following commands do not start off until the whole page is loaded
if(driver.getTitle().equals("whatever")) {
driver.get("http://");
}
else {
...
}
4

1 回答 1

1

你可以使用pageLoadTimeout. 将超时设置为0然后捕获TimeoutException然后执行您的特定标题断言等。

driver.manage().timeouts().pageLoadTimeout(0, TimeUnit.SECONDS);

更新

driver.manage().timeouts().pageLoadTimeout(0, TimeUnit.SECONDS);
WebDriverWait wait = new WebDriverWait(driver, 30);
try {
    driver.get("http://");
} catch (TimeoutException e) {
    wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//title")));
}

欲了解更多信息

理想情况下,您应该ExpectedConditions.titleIs() 对可用选项使用更多信息,可以在此处找到。

于 2013-08-30T17:22:53.630 回答