我编写了一个 ruby 代码,浏览器对象在其中找到所有链接,然后如果它们与特定的正则表达式匹配,我将它们一个一个地存储在一个数组中。
@browser.links.collect(&:href).each do |link|
matches = regex.match(link)
array_of_multimedia << matches[:multimedia_id] if matches
end
我正在尝试创建一个过滤器,我只遍历那些链接,其中第二个子 div 内的 span 包含 aria-label 作为Multimedia。
附件是 HTML 结构的屏幕截图。HTML结构
我尝试了一些方法,例如查找所有跨度,然后自下而上到跨度的父级父级,但它没有给我href。
@browser.spans(aria_label: "Multimedia").each do |span|
span.parent.parent.a.hreflang #Didn't work
span.parent.parent.a.link.href #Didn't work
span.parent.parent.href.text #Didn't work
element.tag_name #This shows "a" which is correct though
end
我还尝试了一种自上而下的方法
@browser.links.collect(&:href).each do |link|
link_element = @browser.link(href: link)
link_element.children.following_sibling(aria_label: "Multimedia").present? #Didn't work
end
到目前为止,获得实际的hrefs没有运气。将不胜感激任何帮助!