我正在使用机械化来导航一个HTML格式严重错误的网站。特别是,我有一个页面,它在服务器理智地处理请求的表单之外有复选框。
我想选中这些框,然后单击表单外的"提交"按钮,但是,我不能使用Form.checkbox_with
,因为我没有Form
对象,我只有Page
。我可以用找到页面上的复选框
page.search("//input[@name='silly-checkbox']")
但我以后无法检查它,因为Nokogiri只用于刮擦,不跟踪状态。这不正确吗?
当我的复选框不在表单中时,如何获取Mechanize::Form::Checkbox
对象?
您可以使用Nokogiri手动加载远程页面,然后通过在表单外找到复选框并将其包装来修复标记,并根据固定的HTML代码自行构建机械化类。
您可以通过删除和合并新字段来修改表单。
form.add_field!('gender', 'male')
rdoc此处