Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 迭代链接';水豚阵列_Ruby_Capybara - Fatal编程技术网

Ruby 迭代链接';水豚阵列

Ruby 迭代链接';水豚阵列,ruby,capybara,Ruby,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/ge

我试图截取页面菜单上最后三个链接的屏幕截图

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选择器以再次获取元素