xpath在硒中无法识别,但在XPather中被识别

时间:2009-12-02 23:04:59

标签: java xpath selenium

我的脚本中有以下代码:

System.out.println(selenium.getAttribute("xpath=//div[@class='guest clearfix'][1]/@id"));

当我尝试运行脚本时,它表示找不到该元素。如果我将xpath输入XPather(fireon的插件)//div[@class='guest clearfix'][1]/@id,它将正确地给我ID。

我很难过为什么它不会在我的代码中运行。如果有人在我的代码中看到任何错误,请告诉我。

由于

4 个答案:

答案 0 :(得分:2)

我认为问题将是@id之前的额外正斜杠。请尝试以下方法:

selenium.getAttribute("//div[@class='guest clearfix'][1]@id");

我相信最终的/@id是返回属性的有效XPath,但是Selenium的语法不同,因为它需要一个元素定位器,后跟一个@和属性名称。

此外,您可以使用以下CSS定位器实现相同的目标:

selenium.getAttribute("css=div.guest.clearfix@id");

答案 1 :(得分:1)

听起来问题不在于属性,而在于基本定位器本身。我建议您使用Firebug中的$x function,并确保首先找到元素(不是属性)。

答案 2 :(得分:0)

以下是SeleniumIDE在其参考部分中显示的内容:

参数:

  • attributeLocator - 一个元素定位符,后跟@符号,然后是属性的名称,例如“富@栏”

所以,戴夫的回答是正确的。

答案 3 :(得分:0)

请尝试下一个

System.out.println(selenium.getAttribute("xpath=//div[@class='guest clearfix' and @id][1]"));

   System.out.println(selenium.getAttribute("xpath=(//div[@class='guest clearfix']/*[@id])[1]"));

通过尝试TestProject free autimation platform,您可以忘记所有困难。还有不错的SDK