我正在尝试在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'"
答案 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代码。