【问题标题】:Changing form select field with Mechanize not working (Ruby)使用机械化不工作(Ruby)更改表单选择字段
【发布时间】:2019-09-19 02:39:25
【问题描述】:

我正在尝试使用 mechanize 通过更改“选择”字段的输入来提交表单。但是,当我更改输入值并提交时,它会返回页面,就好像没有更改任何字段一样。

除此之外,在此表单中的任何字段上,我都会返回正确的页面。为什么会发生这种情况?有没有办法使用 mechanize 在选择字段中实际“选择”正确的选项?

#This is how I set up my browser
br = Mechanize.new
cert_store = OpenSSL::X509::Store.new
cert_store.add_file 'cacert.pem'
br.cert_store = cert_store
page = br.open(url)
form = page.forms.first

#I've tried
form["sel_subj"] = "ACCT"
new_page = form.submit

#and 

form.field_with(:name => "sel_subj").options[1].select #and ".click"
new_page = form.submit

我没有收到错误消息,也没有找到“404”页面,所以它一定是找到了那个特定的表单选项。如果我在 chrome 上手动选择该选项,它只是不会显示页面。

【问题讨论】:

    标签: ruby forms mechanize


    【解决方案1】:

    问题是选择框是多选的,并且“单击”一个选项会添加它而没有取消选择前一个选项。

    变化:

    search_form.field_with(:id => 'subj_id').options[i].click
    

    收件人:

    search_form.field_with(:id => 'subj_id').options[i].click
    search_form.field_with(:id => 'subj_id').options[i+1].click
    

    成功了,因此点击了之前选择的选项。

    【讨论】:

      猜你喜欢
      • 2013-01-12
      • 1970-01-01
      • 2012-04-10
      • 2012-05-16
      • 2015-02-13
      • 1970-01-01
      • 2016-12-23
      • 2012-09-07
      • 2011-01-12
      相关资源
      最近更新 更多