硒点击一个按钮
我第一次尝试硒,我有一个快速的问题。当我在WebElement
上调用click()
方法时,我注意到它是一个void
类型的方法。那么HtmlUnitDriver
是否会保留click()
发生后呈现的更新页面?硒点击一个按钮
是的。 WebDriver
界面是控制浏览器,但它仍然是浏览器(在你的情况下,HtmlUnit),做大部分的工作,并记得页面的状态等。
因此,WebDriver
这样并不真的有一个状态(过于简化的陈述,但对你的目的而言是真实的)。当您发送click()
命令时,它会在浏览器中执行它,而不是等待浏览器完成其作业(加载新页面),然后再次等待新页面上的命令。
WebDriver
总是在浏览器目前的功能上运行。
我明白了。所以当我打电话click(),如果这需要我到另一个页面(B),然后当我说driver.findElement(By.id(“无论”)),它会去搜索页面B的那个元素? – user1154644 2013-03-03 00:08:42
@ user1154644是的,确切!另外,找出最好的方法是尝试一下;)。 – 2013-03-03 00:11:18
好吧,就javascript而言,是否有一个原因可以导航到网页并单击几个按钮就可以了,并且获得期望的结果(使用Firefox),但是当我使用Selenium时,出现javascript错误? – user1154644 2013-03-03 00:46:41
我可以从你的问题看到你正在使用HtmlUnitDriver。此驱动程序默认禁用JavaScript(有关说明,请参阅click here)。此驱动程序使用Rhino JavaScript引擎,并未在任何常用浏览器中使用。这也许可以解释为什么您尝试的操作可以在Firefox中正常工作,但不能在Selenium中正常工作。
你可以尝试启用JavaScript中的HtmlUnit如下:
HtmlUnitDriver driver = new HtmlUnitDriver();
driver.setJavascriptEnabled(true);
而是我会建议使用FirefoxDriver。
WebDriver driver = new FirefoxDriver();
当你通过网页浏览自己本应该效仿你所看到的行为。
不,它只是点击元素,它不包含任何信息。 让我们知道您的确切要求。 – Hemanth 2013-03-02 05:42:58
那么,我试图导航一个网页。那么我怎么会说'点击页面A上的一个按钮',那个动作加载了pageB,点击了pageB上的一个按钮等等。 – user1154644 2013-03-02 23:23:26