如何 select 页面中的所有链接并将其存储在水豚的数组中?

How to select all links in a page and store it in an array in capybara?

When(/^I search for all links on homepage$/) do
  within(".wrapper") do
    all("a")[0].text
  end

  all_link = []
  all_link << all("a")[0].text
  all_link.each do |i|
    puts i
  end
end

这是我为获取 link 的文本而编写的代码。但是这里只有一个 link 文本可用。我必须手动提供所有 'a' 值来调用元素并存储文本。有没有其他方法可以使用 url 并调用所有 link 和 link 的相关文本并将其存储在数组中?

When(/^I search for all links on homepage$/) do
  within(".wrapper") do
    all_links = all("a").map(&:text) # get text for all links
    all_links.each do |i|
      puts i
    end
  end
end
all_links = all("a").map { |ele| [ ele[:href], ele.text ] }

这将为您提供一组包含 URL 及其相关文本的对(我假设您指的是 <a> 元素内的文本,而不是您通过关注 link).

顺便说一句,为了调试目的输出它们,更简单的方法是

puts all_links.inspect