Механизировать игнорирование Javascript, когда этого требует страница

Насколько я понимаю, несколько человек спрашивали о поддержке JS в Mechanize. Мой вопрос может быть немного другим и/или поставленным по-другому. Я хочу игнорировать проверку Javascript и войти на страницу, для которой требуется Javascript. Сам веб-сайт на самом деле не нуждается в JS, но разработчики считают, что он необходим для лучшего внешнего вида.

С учетом сказанного, кто-нибудь смог обойти проверку на JS? Я мог бы использовать Watir, Watij, Selenium или множество других утилит, но они открывают настоящий браузер, что было бы нежелательно — но если это единственный способ, я думаю, я пойду по этому пути.

Я использую Mac OS X, Ruby 1.8.7, Mechanize/Hpricot (последняя на момент публикации). Спасибо.


person Mike    schedule 15.12.2009    source источник


Ответы (2)


Вообще говоря, самый простой вариант — выяснить, что сервер ожидает от пользовательского агента, чтобы заявить, что он поддерживает JS (либо путем мониторинга HTTP-запросов (возможно, с помощью Charles Proxy), отправленных браузером с включенным JS, либо путем обратного проектирования. JS), а затем ваш скрипт просто отправляет эту информацию.

person Quentin    schedule 15.12.2009
comment
Вот JS на странице, к которой я пытаюсь получить доступ: ‹script language=JavaScript› function newscreen(){ window.open(,ext_window,width=500,height=400,resizable=no,toolbar=no,location=no ,directories=no,status=no,menubar=yes,scrollbars=yes,left=100,top=20,screenX=50,screenY=50) } ‹/script› ‹!-- проверка поддержки JavaScript в клиентском браузере --› ‹noscript› ‹b›‹font color=red›Вам необходимо включить JavaScript в вашем браузере.‹/font›‹/b› ‹/noscript› - person Mike; 16.12.2009
comment
Хороший. Мне удалось вызвать переполнение при переполнении стека: p - person Mike; 16.12.2009
comment
Или узнайте, что такое фактический HTTP POST, который выполняется во время входа в систему, и сделайте это непосредственно с помощью Mechanize. - person atomicules; 26.05.2010

Можно попробовать Вебрат. Насколько я знаю, Webrat не понимает JavaScript.

person TK.    schedule 16.12.2009