从锚节点获取所有子链接

时间:2018-08-23 18:29:07

标签: selenium xpath watir

我有一个ul,其中的子链接埋藏了几层,用xpath或watir提取子链接的最佳方法是什么?

browser.element(xpath: "//h3/following-sibling::ul[1]//a").html
and 
browser.element(xpath: "//h3/following-sibling::ul[1]").a.href

会让我获得第一个第一个链接,但不是全部。如何提取所有链接?

我尝试过browser.element(xpath: "//h3/following-sibling::ul[1]//*[@href]"),但这也只给了我第一个要素

1 个答案:

答案 0 :(得分:3)

如果您在#as元素上调用#linksul方法,Watir将返回所有子链接,无论它们位于多少级别下。从那里,您可以遍历链接以获取href。

browser.element(xpath: "//h3/following-sibling::ul[1]").as.map(&:href)
#=> ["href1", "href2", "etc"]

如果要避免使用XPath,也可以执行以下操作:

browser.h3.following_sibling(tag_name: 'ul').as.map(&:href)