我使用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()”
我到处搜索,但我找不到解决方案。
¿任何人都可以帮助我?
提前致谢。
答案 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,因为它可能有您正在寻找的解决方案。
希望这有帮助。