Selenium:JUnit4:WebDriver:IE:使用IE时的NoSuchElementException

时间:2012-11-07 13:16:02

标签: java internet-explorer selenium webdriver

我在Selenium IDE中记录了我的测试;它在Firefox和Chrome中运行良好。当我在IE 9中运行它时,我不断收到此错误。我是编码的新手,我很难找到答案。如果有人能用非专业人士的说法向我解释发生了什么/为什么会出现这种情况,我会很感激。

org.openqa.selenium.NoSuchElementException: Unable to find element with css selector == BODY (WARNING: The server did not provide any stacktrace information)

Java代码:

assertTrue(driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*Final[\\s\\S]*$"));

3 个答案:

答案 0 :(得分:0)

我建议在调用之前打印出driver.getPageSource()并检查当前页面上的html是否符合您的期望。

如果它符合您的预期,那么我会打印出与By.cssSelector("BODY")匹配的所有标记的文本内容,并查看其中是否包含您期望的文本。

这将缩小错误的位置 - 您可能需要找到另一种查找此元素的方法。

答案 1 :(得分:0)

内部通过Internet Explorer使用XPath和套管问题。

尝试使用

assertTrue(driver.findElement(By.cssSelector("body")).getText().matches("^[\\s\\S]*Final[\\s\\S]*$"));

而不是

assertTrue(driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*Final[\\s\\S]

* $“));

我相信这应该适合你。

答案 2 :(得分:0)

IE浏览器不支持不区分大小写的CSS属性选择器。尝试使用

driver.findElement(By.cssSelector("body"));