1

我第一次尝试硒,我有一个简单的问题。当我click()在 a 上调​​用该方法时WebElement,我注意到它是一个void类型方法。那么是否HtmlUnitDriver保留发生后呈现的更新页面click()

4

2 回答 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 回答