xpath在selenium录制中工作,但不在Eclipse中运行

时间:2014-04-23 15:33:22

标签: java jquery eclipse selenium xpath

我正在尝试在Eclipse中运行以前在Selenium中记录的测试。我能够通过使用XPath让它在Selenium中运行。但是,在Eclipse中,我收到NoSuchElement错误。我试图点击页面上的一个标签,问题是标签没有列为按钮,但它们实际上是在一个表格中。这是我现在所拥有的一条线。

driver.findElement(By.xpath("(//div[@onclick=\"parent.frames.contentFrame.location='/messaging/maintfList.jsp?clearUIPath=true&uiPathLabel=Forms'\"])")).click();

这是我在检查元素时显示的内容。所有选项卡都列为菜单正常,唯一的区别在于路径标签。

div class="menu-normal" onclick="parent.frames.contentFrame.location='/messaging/maintfList.jsp?clearUIPath=true&uiPathLabel=Forms'"

2 个答案:

答案 0 :(得分:0)

我会尝试

driver.findElement(By.cssSelector("div[onclick='parent.frames.contentFrame.location='/messaging/maintfList.jsp?clearUIPath=true&uiPathLabel=Forms']")).click();

在java中逃避任何需要它的东西。

xpath是一种非常低效的查找方式,并且几乎总有一种更好的方法。在这种情况下,CssSelector可以找到您要查找的内容。

编辑:我已经查看了Java文档,请尝试使用此行

driver.findElement(By.cssSelector("div[onclick=\"parent.frames.contentFrame.location='/messaging/maintfList.jsp?clearUIPath=true&uiPathLabel=Forms'\"]")).click();

答案 1 :(得分:0)

您也可以尝试以下方式:

driver.findElement(By.xpath("//div[@class='menu-normal'][2]")).click();
  

// here [2]是页面上菜单正常的位置编号。让我们   假设有4个选项卡具有相同的类,并且您想要单击第2个   那么你可以使用上面的代码。

如果没用,请分享您的HTML代码。