我第一次尝试硒,我有一个简单的问题。当我click()
在 a 上调用该方法时WebElement
,我注意到它是一个void
类型方法。那么是否HtmlUnitDriver
保留发生后呈现的更新页面click()
?
问问题
368 次
2 回答
0
从您的问题中我可以看出您正在使用 HtmlUnitDriver。默认情况下,此驱动程序中禁用 JavaScript(有关说明,请单击此处)。此驱动程序使用 Rhino JavaScript 引擎,未在任何流行的浏览器中使用。这可能解释了为什么您尝试的操作在 Firefox 中运行良好,但在 Selenium 中却不行。
您可以尝试在 HtmlUnit 中启用 JavaScript,如下所示:
HtmlUnitDriver driver = new HtmlUnitDriver();
driver.setJavascriptEnabled(true);
但相反,我建议使用 FirefoxDriver。
WebDriver driver = new FirefoxDriver();
这应该模拟您在自己浏览网页时看到的行为。
于 2013-03-04T16:58:32.860 回答
0
是的。该WebDriver
界面正在控制浏览器,但是仍然是浏览器(在您的情况下为 HtmlUnit)完成大部分工作并记住页面的状态等。
因此,WebDriver
这样并没有真正的状态(一个过于简化的陈述,但对于您的目的来说是正确的)。当您发送click()
命令时,它会在浏览器中执行它,然后等待浏览器完成其工作(加载新页面),然后再次在新页面上等待您的命令。
WebDriver
始终在浏览器当前拥有的内容上运行。
于 2013-03-03T00:01:12.197 回答