<a> 使用 Ruby Mechanize 通过元素提交表单



我有一组我试图用Ruby中的机械化刮擦的页面。在某些页面上,它们重定向到希望我填写精选列表的页面,然后提交。问题在于提交表单的按钮,即<a>元素。看起来这样:

<a class="css_class" href="#" onclick="RunSomeScript; return false;">
  <span>
    Enter
  </span>
</a>

RunSomeScript脚本似乎正在发生魔术。这似乎绕过了重定向页面,并带我到页面上,然后将我试图刮擦的数据带到页面上。不幸的是,我似乎无法弄清楚如何用机械化正确提交表格。我尝试通过将<a>href属性传递到<a>元素上的Mechanize#单击方法,但这似乎也没有起作用。如何正确单击此链接(即提交表单的提交)和/或运行RunSomeScript脚本以在此重定向页面上提交表单?

我认为您可以直接找到表格并提交机械化,即

# if condition checks if the form exists with the id the add some fields to it and then submit    
if page.search("#ctl00_ContentPlaceHolder1_ctrlResults_gvResults_ctl01_lbNext").count > 0
              form = page.forms.first
              form.add_field! "__EVENTTARGET", "ctl00$ContentPlaceHolder1$ctrlResults$gvResults$ctl01$lbNext"
              form.add_field! "__EVENTARGUMENT", ""
              page = form.submit

在您的情况下,您可以使用一些ID找到表单,或者只使用

form = page.forms.first  
# do whatever you want with this form and then 
page = form.submit

我没有或如何获得支持JavaScript的机械化,但是我看到了您可能会看到的其他项目:

Capybara,使用Poltergeist(Phantomjs)驱动程序或Watir,也许也使用其phantomjs支持。

相关内容

  • 没有找到相关文章

最新更新