0
我想解析一个网站使用Selenium /水豚。现在它看起来是这样的:刷新水豚的会话DOM内容
session = Capybara::Session.new(:selenium)
session.visit "https://somesite.com/page1"
element = session.all(:css, '.table .row a').each do |el|
el.click
# get some element's data
session.evaluate_script('window.history.back()')
end
# repeat
问题是,当我试图从第二页我在获取数据,水豚告诉我,Either the element is no longer attached to the DOM or the page has been refreshed.
这绝对是有道理的,但我挣扎找到一种方法来创建一个新的DOM变量并在文档中解析它。
如果我导航回试图重复操作并单击连续的第二个链接,则会发生同样的情况。我想我需要重新创建会话还是有更好的方法?
谢谢你这个伟大的答案。我将用第二个例子 - 我认为如果直接切换页面,会节省一些时间。有关如何在完成一页HREF时在顶级分页页面之间切换的建议? –