首页 > 解决方案 > 使用“eq”比较运算符在 selenium 中查找元素时出现 InvalidSelectorException

问题描述

我正在尝试<div>根据其子元素在 selenium 中定位一个元素。

示例 HTML 代码:

<html>
<head></head>
<body>
<div>
    <div class="class1">Foo</div>
    <span>Val1</span>
    <h1>Heading1</h1>
</div>
</body>
</html>

硒代码:

driver.findElement(By.xpath("//div[h1 = 'Heading1']")    //Statement1
driver.findElement(By.xpath("//div[h1 eq 'Heading1']")    //Statement2

现在,在 selenium 代码中,Statement1 工作正常,但 Statement2 抛出异常:org.openqa.selenium.InvalidSelectorException: Given xpath expression is invalid: SyntaxError: The expression is not a legal expression.

知道为什么会抛出这个异常吗?

标签: seleniumxpath

解决方案


因为根据XPath 规范,等式表达式需要=但不需要eq. 这就是为什么您的第二个语句无法解析的原因。


推荐阅读