div 中所有 //a[@href] 标记的 XPath,第一个 /li 标记文本 "Something"
XPath for all the //a[@href] tags in a div with the first /li tag text "Something"
我必须从某个页面的类别中找到所有 URL。类别是 <div>
标签中的第一个 <li>
标签。该页面如下所示。
<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"li
标签对应的所有hrefs
?
您可以使用 xpath following-sibling
轴。
//div/ui/li[contains(text(), 'someText')]/following-sibling::div/li/a/@href
可以先通过"someText"文本定位到li
元素,然后横向移动得到following sibling div
元素:
//li[contains(., "someText")]/following-sibling::div/li/a
//li[normalize-space(.) = "someText"]/following-sibling::div/li/a
(不包括 @href
部分,因为您已经指出您正在使用 selenium
- 您需要找到与 XPath 表达式匹配的元素并使用 [= 获取 href
属性18=])
试试这个 XPath-1.0 表达式:
//div[@class='c1']/ui[normalize-space(li[@class='d1'])='someText']/div/li/a/@href
它的输出是
some url1
some url2
some url3
How to find all the hrefs
corresponding to the "someText" li
tag?
Content-based选择
见 @alecxe's fine answer (+1),但你的标题和你问题的这一部分,
I have to find all the URLs from a page in categories. The categories are the first <li>
tag in a <div>
tag.
似乎更关心第一位置而不是内容...
Position-based选择
这个 XPath,
(//div[@class="c1"]//li[1]/following::a)[1]
选择第一个 a
元素,紧跟在第一个 li
元素之后的第一个 div
元素后代。
我必须从某个页面的类别中找到所有 URL。类别是 <div>
标签中的第一个 <li>
标签。该页面如下所示。
<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"li
标签对应的所有hrefs
?
您可以使用 xpath following-sibling
轴。
//div/ui/li[contains(text(), 'someText')]/following-sibling::div/li/a/@href
可以先通过"someText"文本定位到li
元素,然后横向移动得到following sibling div
元素:
//li[contains(., "someText")]/following-sibling::div/li/a
//li[normalize-space(.) = "someText"]/following-sibling::div/li/a
(不包括 @href
部分,因为您已经指出您正在使用 selenium
- 您需要找到与 XPath 表达式匹配的元素并使用 [= 获取 href
属性18=])
试试这个 XPath-1.0 表达式:
//div[@class='c1']/ui[normalize-space(li[@class='d1'])='someText']/div/li/a/@href
它的输出是
some url1
some url2
some url3
How to find all the
hrefs
corresponding to the "someText"li
tag?
Content-based选择
见 @alecxe's fine answer (+1),但你的标题和你问题的这一部分,
I have to find all the URLs from a page in categories. The categories are the first
<li>
tag in a<div>
tag.
似乎更关心第一位置而不是内容...
Position-based选择
这个 XPath,
(//div[@class="c1"]//li[1]/following::a)[1]
选择第一个 a
元素,紧跟在第一个 li
元素之后的第一个 div
元素后代。