Selenium点击按钮

时间:2013-03-02 03:56:33

标签: selenium

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

2 个答案:

答案 0 :(得分:0)

是。 WebDriver界面正在控制浏览器,但它仍然是浏览器(在您的情况下,HtmlUnit)完成大部分工作并记住页面状态等。

因此,WebDriver本身并不具有某种状态(过于简化的陈述,但对您的目的而言却是如此)。当您发送click()命令时,它会在浏览器中执行,而不是等待浏览器完成其作业(加载新页面),然后再次等待新页面上的命令。

WebDriver始终根据浏览器当前的内容进行操作。

答案 1 :(得分:0)

我可以从您的问题中看到您正在使用HtmlUnitDriver。默认情况下,此驱动程序禁用JavaScript(解释click here)。此驱动程序使用Rhino JavaScript引擎,并未在任何流行的浏览器中使用。这可能解释了为什么您尝试的操作在Firefox中正常工作,但在Selenium中却没有。

您可以尝试在HtmlUnit中启用JavaScript,如下所示:

HtmlUnitDriver driver = new HtmlUnitDriver();
driver.setJavascriptEnabled(true);

但我推荐使用FirefoxDriver。

WebDriver driver = new FirefoxDriver();

这应该模仿您在自己浏览网页时看到的行为。