如何使用带有属性的Xpath和没有其他属性来查找元素

时间:2013-09-19 20:02:49

标签: xml xpath selenium webdriver

这是我的Xpath查询:

driver.findElements(By.xpath("//*[@id=\"continue-button\" and not(contains(@class=\"disabled-button\"))]"));

我无法找到id为continue-button的元素,而不是使用disabled-button类。我显然错误地写了查询,但我不确定这个问题。我不熟悉在这种情况下使用的Xpath语法。

1 个答案:

答案 0 :(得分:4)

你的xpath:

//*[@id=\"continue-button\" and not(contains(@class=\"disabled-button\"))]

应该是:

//*[@id="continue-button"][not(contains(@class, "disabled-button"))]

我强烈建议您使用Firebug安装firepath之类的内容,以便在测试中运行它们之前测试xpath表达式。

编辑:对于将来可能会看到这一点的人,不再需要像Firebug这样的工具。现在,较新版本的浏览器允许您在各自的DOM查看器中输入XPath和CSS表达式。例如,在Chrome中,热键F12将打开调试工具,而在“元素”选项卡上的热键Ctrl + F将打开一个搜索栏,您可以在其中输入选择器表达式。