我们必须持续监控网址以检查其可用性。我用硒进行模拟。粘贴在下面的是一段代码。
driver = new InternetExplorerDriver();
selenium = new WebDriverBackedSelenium(driver, mainUrl);
selenium.setTimeout("90000");
selenium.open(mainUrl);
但是,即使网址在90000毫秒内没有打开,selenium.timeout
也不起作用。我该如何解决这个问题?
答案 0 :(得分:1)
您也可以使用:
driver.manage().timeouts().implicitlyWait(90, TimeUnit.SECONDS);
答案 1 :(得分:0)
根据selenium javadoc,示例如下所示:
driver = new InternetExplorerDriver();
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
selenium.open(mainUrl);
答案 2 :(得分:-1)
尝试使用Thread.sleep():
final String sUrl = "http://www.google.ca/index.html";
// Instantiate the Internet Explorer browser.
WebDriver oWebDriver = new InternetExplorerDriver();
// Open the main google webpage.
oWebDriver.get(sUrl);
try
{
Thread.sleep(5000);
}
catch(InterruptedException ex)
{
System.out.println(ex.getMessage());
}
如果您想检查可用性,请尝试使用fluentWait:
public WebElement fluentWait(final By locator){
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(30, TimeUnit.SECONDS)
.pollingEvery(5, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class);
WebElement foo = wait.until(
new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
return driver.findElement(locator);
}
}
);
return foo; } ;
Wait接口的实现,可以动态配置其超时和轮询间隔。 每个FluentWait实例定义等待条件的最大时间量,以及检查条件的频率。此外,用户可以将等待配置为在等待时忽略特定类型的异常,例如在页面上搜索元素时的NoSuchElementExceptions。
希望这可以帮助你)