从锚节点获取所有 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)
我有一个 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)