2016-09-01 7 views
1

Нужна помощь при навигации по страницам результатов с использованием рубинового механизации. Я могу вводить значения формы и загружать результаты первой страницы. Ссылка на следующую страницу:Перемещение по страницам результатов с использованием рубинового механизации (ссылки имеют «onclick =»)

<a href=# onclick="setnext();">Next</a> 

Как щелкнуть дальше и перейти к последующим страницам результатов. Я попытался

page = r_page.link_with(:text => 'Next').click 

, а также с помощью Watir

@browser = Watir::Browser.new 
@login_page = result_page 
@l_page = @login_page.link(:text => "Next").fire_event('onclick') 
@browser.goto @l_page 

Я получаю сообщение об ошибке, что URL

<a href=# onclick="setnext();">Next</a> 

не правильно сформирован. Я также попытался вызвать страницу с параметром page_no в качестве аргумента, но он загружает страницу отправки формы, а не страницу результатов. Незлая помощь. спасибо.

+0

'Next' недействителен html, ему нужны котировки вокруг '#' –

+0

Да, вы правы, это href = "#" – user6733460

+0

Может ли у меня получить URL-адрес result_page? –

ответ

0

Дело в том, что mechanize не будет интерпретировать функцию JavaScript, которая должна выполняться при нажатии кнопки (onclick="setnext();").

У вас есть по крайней мере два варианта:

  1. читать и понимать код JavaScript (или отлаживать через него).
  2. Используйте инструменты, которыми обладает ваш браузер (например, Developer в Mozilla Firefox, обычно доступный нажатием F12, Chromium поставляется с очень похожей вещью), перейдите на вкладку сети и проверьте трафик, который на самом деле происходит. Вы увидите запрос /POST на определенный URL (с некоторыми интересными параметрами?), Когда вы нажимаете кнопку/ссылку и, вероятно, сможете выяснить, как сконфигурированы URL и параметры.

Как я ленив, достаточно понимаю HTTP и еще не наслаждаюсь чтением JS-кода, я обычно использую второй подход.

Поскольку mechanize не будет интерпретировать JavaScript из коробки, я сначала выключу JavaScript в браузере и посмотрю, работает ли страница. Если это не так, я смотрю на сгенерированные запросы (при включенном JS снова).

+0

Изменения поведения страницы при выключенном javascript. Код js для setnext() имеет getElementById («Selected_page»). Value = 2. Я думал, что мы можем вызвать функцию onclick с помощью watir, но это также не работает, есть ли другой способ запустить функцию javascript onclick с помощью watir. Спасибо. – user6733460