2014-04-23 51 views
0

我想在Eclipse中运行先前在Selenium中记录的测试。我能够通过使用XPath在Selenium中运行它。但是,在Eclipse中,我得到一个NoSuchElement错误。我试图点击页面上的一个标签,问题是标签没有列为按钮,但它们实际上是在一个表格中。这是我现在所处的路线。xpath在硒记录中工作,但不能在Eclipse中运行

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

我会尝试

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(); 
+0

当我插入你的线时,我收到一个错误,显示它是无效或非法的字符串。我试图添加一些不同的东西来使它工作,但没有运气。我对此很新。还有什么我应该看看或尝试? – user3565238

+0

我不知道java(我是c#开发人员),但我认为需要在字符串中进行转义。尝试在单引号前加一个反斜杠。 – Andrew

0

您也可以尝试这样的:

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

//这里[2]菜单正常的位置号码在页面上。让我们 假设有4个选项卡具有相同的类,你想点击第二个 一个然后你可以使用上面的代码。

如果没有帮助,请分享您的HTML代码。

+0

它看起来像div是在主html中加载的.jsp文件中。当我试图用driver.findElement选择它时,这可能是链接断开的地方吗? – user3565238

+0

这也是表单标签内部的代码。 ​​

user3565238

相关问题