Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当网页未完全加载时,如何强制WebDriver执行命令?_Java_Selenium - Fatal编程技术网

Java 当网页未完全加载时,如何强制WebDriver执行命令?

Java 当网页未完全加载时,如何强制WebDriver执行命令?,java,selenium,Java,Selenium,网页从上到下加载 1) <html ... 2) <head ... 3) <body ... etc 您可以使用pageLoadTimeout。将超时设置为0,然后捕获TimeoutException,然后执行特定的标题断言等 driver.manage().timeout().pageLoadTimeout(0,时间单位:秒) 更新 driver.manage().timeouts().pageLoadTimeout(0, TimeUnit.SECONDS); Web

网页从上到下加载

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

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

driver.manage().timeout().pageLoadTimeout(0,时间单位:秒)

更新

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()

有关可用选项的更多信息,请参见。

Webdriver会一直阻止,直到网页完全加载为止。恐怕我不知道有什么方法可以让你做你想做的事。谢谢你的回复。是否有其他API允许此操作?谢谢+1。但这并不是明确的等待。pageLoadTimeout设置为零,根本不允许有足够的时间上载标题标记。此外,在某些情况下,标题标签需要2秒,大约需要5秒才能上传,只要其他元素没有等待时间就可以了。根据您的担忧,请更新我的答案。在发现页面加载超时错误后,您需要等待下一个预期条件(即存在标题).这不管用。因为我们已经指定了
driver.manage().timeout().pageLoadTimeout(0,TimeUnit.SECONDS)TimeoutException
之后,
wait.until…
行仍会抛出另一个未被任何东西捕获的`TimeoutException为什么要捕获它,如果title元素在30秒后仍不存在,您会希望测试失败。
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")));
}