Selenium HtmlUnit冻结随机加载网页

时间:2011-09-08 12:57:07

标签: java selenium webdriver htmlunit

我使用Selenium遇到HtmlUnitDriver问题。

我正在使用Selenium 2.5版本。

测试非常简单,通常它可以正常工作,但有时驱动程序只是停下来无休止地等待页面加载。

我的代码是这样的:

...初始化

private WebDriver driver;
    driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_3_6);((HtmlUnitDriver) driver).setJavascriptEnabled(true);
        //driver = new FirefoxDriver();
        driver.manage().timeouts().implicitlyWait(0, TimeUnit.MILLISECONDS);
        driver.manage().timeouts().setScriptTimeout(0, TimeUnit.MILLISECONDS);

然后很多像这样的块:

new Actions(driver).moveToElement(driver.findElement(By.linkText("Someting"))).perform(); 
        driver.findElement(By.linkText("something else")).click();
        driver.findElement(By.name("something")).sendKeys("8");
        driver.findElement(By.xpath("//img[@title='something']")).click();

在每个clic()之后加载一个新页面。

我通常会正确地结束整个测试,并且我已经尝试捕获所有块,因此网络不是问题。

webdriver忽略了超时(我尝试了很多不同的超时并且问题仍然存在)并且我无法阻止驱动程序从另一个线程中调用“quit()”或“close()”

我到处搜索,但我找不到解决方案。

¿任何人都可以帮助我?

提前致谢。

2 个答案:

答案 0 :(得分:2)

我解决了,如果有人遇到同样的问题,我会发布我的解决方案。

我从其他线程中按esc(主要忙着等待......)

((HtmlUnitDriver) test.getDriver()).getKeyboard().pressKey(Keys.ESCAPE);

然后我杀了浏览器并重新启动测试

test.getDriver().quit(); restart();//create a new test instance

答案 1 :(得分:0)

我之前遇到过这种行为。

我会先更新到2.9并再试一次

然后,我会检查我正在点击的页面,因为如果他们有框架或iframe,他们也会被下载,如果你不控制他们的内容,任何事情都可能发生

看看这个link,因为它可能有您正在寻找的解决方案。

希望这有帮助。