从锚节点获取所有 child 个链接

Get all child links from anchor node

我有一个 ul 和 child link 埋在下面几层,用 xpath 或 watir 提取它们的最佳方法是什么?

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

我会第一个 link,但不是全部。您如何提取所有 links?

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

如果您在 ul 元素上调用 #as#links 方法,Watir 将 return 所有子链接,无论它们在下面多少层。从那里,您可以遍历链接以获取 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)