c# - XPath 包含“\r\n”在页面上找不到任何元素
问题描述
有一个带有一些html的页面:
<ul>
<li>
<div>
text1
</div>
<span>
text2
</span>
</li>
</ul>
我想逐个文本查找元素到li中。如果我试图用 xpath 找到它:
"//*[包含(text(),'text1')]/ancestor::li"
- 元素成立并且这些文本相等
“文本1\r\n文本2”
但如果我试图找到它
[包含(text(),'text1\r\ntext2')]/ancestor::li"
没有建立任何元素。我尝试在 xpath 之前使用@,例如:"@[contains(text(),'text1\r\ntext2')]/ancestor::li"
但也没有结果。我应该找到包含整个文本的元素。因为我不知道 span 中会出现什么,div 中会出现什么。我不明白为什么 element.Text = "text1\r\ntext2"。但是 xpath "[contains(text(),'text1\r\ntext2')]" 不起作用。您有什么建议或意见吗?我会很高兴看到谢谢
解决方案
您可能需要为 li 执行子查询并测试孩子。因此,以下内容适用于上述情况:
//li[div[contains(text(),'text1')] and span[contains(text(), 'text2')]]
这将匹配所有li
具有div
包含 text1 的span
元素和包含 text2 的元素的人。
推荐阅读
- python - 具有固定数量的 True 和 False 值的随机布尔数组
- java - org.jboss.tools.hibernate.runtime.spi.HibernateException:无法从数据库中获取表列表。可能是 JDBC 驱动程序问题
- python-3.x - 如何在 PyQt5 中的 QMainWindow 上设置自定义小部件
- html - css html页脚问题可以解决吗?
- jpa - @OrderColumn 未能按插入顺序对数组列表进行排序
- javascript - 向 amCharts 工具提示添加图标
- ios - UISearchController 外观问题
- sql - AWS MS SQL 创建表
- mysql - 需要在两个表之间进行 SQL 连接,并且需要比较多个不同的行
- c# - LINQ/C#:在每个组中加入、分组和选择最后一个?