Mechanize가 필드를 감지하지 못하기 때문에 양식에 필드를 추가하는 데 어려움을 겪고 있습니다. 3 가지 양식이 있으며 올바른 양식을 선택했습니다. 이 양식에 따라 어떤 필드를 포함하지 않는 것을 form = site.form[2]
이름없는 필드를 양식에 추가하십시오. Mechanize Ruby
문제 :
=> [#<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}>}>
]
내가 (내 목표 인) 마지막 양식을 선택하여 :
p site.forms
를 입력
는 다음을 제공합니다 기계화, 실제로는 다른 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>
보시다시피, 그것은 더 '이름'이 없다, 그래서 첫 번째 인수로 필요하기 때문에 나는 Mechanize::form
에 대한 을 add_field!
방법을 사용할 수 없습니다 field_name
, 존재하지 않습니다. 의미 Nokogiri에 의해 제대로 구문 분석되지 않습니다?
수동으로 필드를 추가하는 다른 방법이 있습니까? 아니면 내가 내려다 볼 수 있습니까?
Apperently 웹 사이트는 자바 스크립트를 사용하여 생성되었습니다. – Basher52