在Mechanize无法使用的情况下更改表单选择字段(Ruby)

时间:2019-09-19 02:39:25

标签: ruby forms 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上手动选择该选项时的页面。

1 个答案:

答案 0 :(得分:0)

问题在于选择框是多选的,并且在选项上单击“单击”而不取消选择上一个选项。

更改:

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

成功了,因此单击了先前选择的选项。