Selenium 2.0 WebDriver在IE8中使用xpath查找元素无法评估。

5
当我在Firefox中运行以下代码时,它可以正确运行,但在IE8中会显示xpath无法评估或未产生WebElement。
webDriver.findElement(By.xpath("//input[@id='submitForm']")).sendKeys("\n");

或者

webDriver.findElement(By.xpath("//input[@id='submitForm']")).click();

我尝试了替代的xpath“//div[@id='parameters']/table/tbody/tr[4]/th/input”,但结果相同。
对我来说,这似乎是IE驱动程序的问题,请告诉我是否有解决方法。

有人能告诉我,上述错误的确切原因是什么吗?我只在IE中看到了它。 - Shiv
2个回答

4

你可以尝试以下操作:

webDriver.findElement(By.xpath("//input[string(@id)='submitForm']")).click()

由于IE不支持原生XPath,WebDriver使用一个名为javascript-xpath的第三方库来解决此问题,这可能是它的一个bug。


1

在Selenium Web Driver中,IE 8需要强制使用这个前三行。

   DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer(); 
   ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);

   WebDriver webDriver= new InternetExplorerDriver(ieCapabilities);

请通过ID更改Xpath:
 webDriver.findElement(By.id("submitForm")).click();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接