如何选择页面中的所有链接并将其存储在capybara中的数组中?

时间:2016-03-11 12:08:25

标签: ruby cucumber 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

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

2 个答案:

答案 0 :(得分:1)

all_links = all("a").map { |ele| [ ele[:href], ele.text ] }

这将为您提供一系列包含URL及其相关文本的对(我假设您的意思是<a>元素内的文本,而不是您通过链接获得的网页。)

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

puts all_links.inspect

答案 1 :(得分:0)

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