Разбор искаженного HTML с Ruby Mechanize - PullRequest
3 голосов
/ 09 июня 2011

Я довольно новичок в использовании механизации и даже в Ruby в целом. Я использую его для навигации по сайту, который плохо искажен HTML. В частности, у меня есть страница с флажками вне формы (несмотря на это, сервер обрабатывает запросы в разумных пределах).

Я хотел бы отметить эти поля и нажать кнопку отправки (также вне формы). Однако я не могу использовать Form.checkbox_with, потому что у меня нет объекта Form, у меня есть только Page. Я могу найти флажок на странице с page.search("//input[@name='silly-checkbox']"), но, насколько я понимаю, я не могу проверить его позже (потому что Nokogiri используется только для очистки и не отслеживает состояние). Пожалуйста, дайте мне знать, если это неправильно.

Итог : Как я могу получить объект Mechanize::Form::Checkbox, когда мой флажок не в форме?

Ответы [ 2 ]

0 голосов
/ 09 июня 2011

Вы можете изменить свою форму, удалив и объединив новые поля.

form.add_field!('gender', 'male')

rdoc здесь

0 голосов
/ 09 июня 2011

Вы можете вручную загрузить удаленную страницу, используя обычный старый Nokogiri, затем исправить разметку (то есть найти флажки вне форм и обернуть их) и создать классы Mechanize самостоятельно из фиксированного HTML-кода.

...