繁体   English   中英

使用Capybara遍历链接的数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM