如何 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
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