我必须从页面中按类别查找所有URL。类别是<li>
标记中的第一个<div>
标记。该页面如下所示。
<div class="c1">
<ui>
<li class="d1"> someText </li>
<div>
<li> <a href="some url1">
</div>
<div>
<li> <a href="some url2">
</div>
<div>
<li> <a href="some url3">
</div>
</ui>
</div>
如何找到与“ someText” hrefs
标记相对应的所有li
?
答案 0 :(得分:2)
您可以使用xpath following-sibling
轴。
//div/ui/li[contains(text(), 'someText')]/following-sibling::div/li/a/@href
答案 1 :(得分:2)
您可以首先通过“ someText”文本找到li
元素,然后侧身获得following sibling div
元素:
//li[contains(., "someText")]/following-sibling::div/li/a
或者,用normalize-space()
:
//li[normalize-space(.) = "someText"]/following-sibling::div/li/a
(不包括您正在使用的@href
中的selenium
部分-您需要查找与XPath表达式匹配的元素,并使用{{1}获得href
属性})
答案 2 :(得分:2)
如何找到与“ someText”
hrefs
标记相对应的所有li
?
请参阅@alecxe's fine answer(+1),但标题和问题的这一部分,
我必须从页面中按类别查找所有URL。类别是
<li>
标记中的第一个<div>
标记。
似乎更关注第一位置而不是内容...
此XPath,
(//div[@class="c1"]//li[1]/following::a)[1]
选择所关注的a
元素的第一个li
元素后代中的第一个div
元素。
答案 3 :(得分:0)
尝试以下XPath-1.0表达式:
//div[@class='c1']/ui[normalize-space(li[@class='d1'])='someText']/div/li/a/@href
其输出为
some url1
some url2
some url3