selenium.settimeout不起作用

时间:2012-10-07 06:05:59

标签: java selenium

我们必须持续监控网址以检查其可用性。我用硒进行模拟。粘贴在下面的是一段代码。

driver = new InternetExplorerDriver();
selenium = new WebDriverBackedSelenium(driver, mainUrl);
selenium.setTimeout("90000");
selenium.open(mainUrl);

但是,即使网址在90000毫秒内没有打开,selenium.timeout也不起作用。我该如何解决这个问题?

3 个答案:

答案 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。

希望这可以帮助你)