0

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

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

但是,selenium.timeout即使 URL 没有在 90000 毫秒内打开也不起作用。我怎样才能解决这个问题?

4

3 回答 3

1

您还可以使用:

driver.manage().timeouts().implicitlyWait(90, TimeUnit.SECONDS);
于 2012-10-08T07:06:01.543 回答
0

根据selenium javadoc,该示例如下所示:

driver = new InternetExplorerDriver();
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
selenium.open(mainUrl);
于 2013-08-09T08:59:06.960 回答
-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。

希望这对你有帮助)

于 2012-10-07T09:32:17.243 回答