[英]Iterate over links' array with Capybara
我正在尝试截取页面菜单上最后三个链接的屏幕截图。
all('.menu-left a').last(3).each do |e|
txt = e.text
puts txt
e.click
puts "clicked!"
page.save_screenshot(txt + ".png")
page.evaluate_script('window.history.back()')
end
不幸的是我得到:
/usr/local/lib/ruby/gems/2.0.0/gems/capybara-webkit-1.0.0/lib/capybara/webkit/node.rb:132:in `invoke': Capybara::Webkit::NodeNotAttachedError (Capybara::Webkit::NodeNotAttachedError)
from /usr/local/lib/ruby/gems/2.0.0/gems/capybara-webkit-1.0.0/lib/capybara/webkit/node.rb:4:in `visible_text'
from /usr/local/lib/ruby/gems/2.0.0/gems/capybara-2.2.0/lib/capybara/node/element.rb:61:in `block in text'
from /usr/local/lib/ruby/gems/2.0.0/gems/capybara-2.2.0/lib/capybara/node/base.rb:81:in `synchronize'
from /usr/local/lib/ruby/gems/2.0.0/gems/capybara-2.2.0/lib/capybara/node/element.rb:57:in `text'
我如何遍历链接的数组,单击它,获取屏幕截图,返回并重复?
通过单击链接(导致页面更改),对元素的引用将无效。
将href
属性保存在某处并访问它们,而不是单击元素。 (如果该元素是a
标签)。
如果单击元素导致执行了JavaScript代码,则需要重新评估css选择器以再次获取元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.