我的脚本中有以下代码:
System.out.println(selenium.getAttribute("xpath=//div[@class='guest clearfix'][1]/@id"));
当我尝试运行脚本时,它表示找不到该元素。如果我将xpath输入XPather(fireon的插件)//div[@class='guest clearfix'][1]/@id
,它将正确地给我ID。
我很难过为什么它不会在我的代码中运行。如果有人在我的代码中看到任何错误,请告诉我。
由于
答案 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在其参考部分中显示的内容:
参数:
所以,戴夫的回答是正确的。
答案 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