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

use*_*620 6 xml selenium xpath webdriver

这是我的Xpath查询:

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

我无法使用继续按钮的ID查找元素,而不是使用禁用按钮类.我显然错误地写了查询,但我不确定这个问题.我不熟悉在这种情况下使用的Xpath语法.

Nav*_*ten 5

你的x路径:

//*[@id=\"continue-button\" and not(contains(@class=\"disabled-button\"))]
Run Code Online (Sandbox Code Playgroud)

应该:

//*[@id="continue-button"][not(contains(@class, "disabled-button"))]
Run Code Online (Sandbox Code Playgroud)

我强烈建议您使用 Firebug 安装类似firepath的东西来测试您的 xpath 表达式,然后再在测试中运行它们。

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