所以我有类似这样的html。
<div class="generic classname" id="generic ID name" > // div1
<div class="presentation" id="body presentation"> // div2
<font>unique text</font>
<div class= "generic classname" id="generic ID name""> //div3
// under this div I have the table entry.
// multiple <td> and <tr>
</div>
</div>
</div>
我的工作是匹配div no 2中的“unique text”,这样我就可以定位元素div no 1,然后获取div no 3中的所有表
问题是我不知道如何定位没有唯一类名或id名的div。我不能使用完整的xpath,因为表是随机变化的,div也是随机变化的。
5条答案
按热度按时间alen0pnh1#
您还有一个选择:
ttcibm8c2#
使用下面的
xpath
关于div 2
查找唯一文本,然后查找div和div内的表。dxxyhpgq3#
根据html:
因为您的用例不依赖于
<div1>
属性,您可以轻松避免考虑<div1>
.解决方案
找到第三个
<div>
您有以下四种方法:使用文本
unique text
以及<div> attributes
:使用文本
unique text
和索引:使用
<div2>
他们有孩子<font>
将文本标记为unique text
以及<div> attributes
:使用
<div2>
他们有孩子<font>
将文本标记为unique text
和索引:epggiuax4#
如果您所说的所有div都是嵌套的,并且您的目标是在div3中获取表,那么您不需要获取父级。
这是一种选择:
这个xpath找到
font
与你的唯一文本,然后它的兄弟姐妹(同一家长)div
此xpath标识符是另一个选项:这个xpath找到
font
用你独特的文字,然后得到它的*
(any)父级然后获取其中的相关div。如果需要“div1”,可以再次将父轴向上移动。
在devtools中如下所示:
这是基于您的html外观:
不同的html需要不同的xpath,所以如果需要更新,请说明。
z9smfwbn5#
我会用js搜索或获取“unique text”的标签。
https://www.w3schools.com/jsref/met_doc_getelementsbyname.asp