我很努力向表單添加字段,因爲機械化不檢測字段。 我有3種形式,我設法選擇正確的形式。添加未命名的字段以形成。機械化紅寶石
進入p site.forms
給出如下:
=> [#<Mechanize::Form
{name "userloginform"}
{method "POST"}
{action "/user?destination="}
{fields
[text:0xc01f34 type: text name: name value: ]
[field:0xc01cf0 type: password name: pass value: ]
[hidden:0xc01ad4 type: hidden name: url value: en/Results+Statistics]
[hidden:0xc01930 type: hidden name: form_id value: user_login]}
{radiobuttons}
{checkboxes}
{file_uploads}
{buttons [submit:0xc017c8 type: submit name: op value: Login]}>
, #<Mechanize::Form
{name "searchFromBlock"}
{method "GET"}
{action ""}
{fields
[text:0xc04964 type: text name: queryString value: Search]
[hidden:0xc044b4 type: hidden name: num value: 10]
[hidden:0xc09f68 type: hidden name: pagenum value: 1]
[hidden:0xc09ce8 type: hidden name: start value: 1]
[hidden:0xc09ae0 type: hidden name: lang value: en]
[hidden:0xc097e8 type: hidden name: content value: all]}
{radiobuttons}
{checkboxes}
{file_uploads}
{buttons [submit:0xc046f8 type: submit name: search value: ]}>
, #<Mechanize::Form
{name nil}
{method "GET"}
{action ""}
**{fields}**
{radiobuttons}
{checkboxes}
{file_uploads}
{buttons}>}>
]
我選擇最後一種形式(這是我的目標),通過:form = site.form[2]
的問題是,按照這種形式不含有任何領域機械化,但實際上它確實包含另外3個領域。我想操縱這些,但在我可以做到這一點之前,我需要將這些字段添加到表單對象。
這樣的字段的一個例子是:
<select id="season" class="w_label_resul fonts12" style="display: none" size="7">
<option title="1949" value="1949"> … </option>
<option title="1950" value="1950"> …</option>
<option title="1951" value="1951"> … </option>
<option title="2012" value="2012"> … </option>
<option title="2013" value="2013"> … </option>
<option class="selected" selected="" title="2014" value="2014"> … </option>
</select>
正如你看到的,它有沒有「姓名」,是因爲這需要作爲第一個參數,我不能使用add_field!
方法Mechanize::form
, 的field_name
,不存在。 這意味着它沒有被Nokogiri正確解析?
是否有任何其他方式手動添加字段或我忽略了什麼?
該網站是使用java腳本生成的。 – Basher52 2014-09-25 21:13:37