2014-01-13 19 views
0

我有我的页面加载的一些问题,如在页面加载一些异步东西, 我想中断页面加载,以继续进行我的测试的下一步。设置webdriver.get(URL)的隐式超时

1- The driver.get(url) This throws timeout 1800后的异常 loading。

2-我已添加 driver.manage()。timeouts()。implicitlyWait(TEST_WAIT,TimeUnit.SECONDS); 它没有改变任何东西。

我做driver.manage()。超时()。setScriptTimeout(时间单位) * 没有改变过 *

3-最后一次尝试是在下列 JavascriptExecutor JS =( JavascriptExecutor)驱动程序; js.executeScript(“return window.stop()”);这不起作用

你有什么想法可以解决这个问题。

Thx

+0

您是否尝试过完全禁用异步请求? – sircapsalot

回答

0

您是否尝试过设置页面加载超时?

driver.manage().timeouts().setPageLoadTimeout(time, unit); 

这应该抛出TimeoutException超时到期时,可以捕获并移动到下一个操作。注意事项(可能不会在所有浏览器中实现,行为可能不同)适用。

0

解决方案: 下面的解决方案可能会解决您的等待问题。咱们试试吧 !

static void waitForPageLoad(WebDriver wdriver) { 
    WebDriverWait wait = new WebDriverWait(wdriver, 60); 

    Predicate<WebDriver> pageLoaded = new Predicate<WebDriver>() { 

     @Override 
     public boolean apply(WebDriver input) { 
      return ((JavascriptExecutor) input).executeScript("return document.readyState").equals("complete"); 
     } 

    }; 
    wait.until(pageLoaded); 
}