我试图通过更改“选择”字段的输入来使用机械化提交表单。但是,当我更改输入值并提交时,它就像没有更改任何字段一样返回页面。
在此表单中的任何字段之外,除了该字段外,我都返回正确的页面。为什么会这样呢?有没有一种方法可以使用机械化在选择字段中实际“选择”正确的选项?
#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上手动选择该选项时的页面。
答案 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
成功了,因此单击了先前选择的选项。