selenium - 使用“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.
知道为什么会抛出这个异常吗?
解决方案
因为根据XPath 规范,等式表达式需要=
但不需要eq
. 这就是为什么您的第二个语句无法解析的原因。
推荐阅读
- java - 如何在 Apache POI HWPF 文档中添加换行符,例如 \\n
- python - 在python中对文本文件中的排序数据项进行分组和计算
- docker - 如何设置重用的 Jenkins 代理定义?
- php - 会话正在填充,但登录时标头未重定向
- mysql - 如何在 SQL 中保持内部连接的顺序?
- php - 我的 html 表单自动传递 url 中的所有字段数据
- sql - TSQL 格式 SSN/TIN (SQL Server 2016+)
- css - 具有 3 行的特定网格布局,中间是自动的
- django - django中的交叉查询
- airflow - 将 Python 运算符的结果作为参数传递给 BigQueryInsertJobOperator