В течение нескольких недель я пытаюсь автоматизировать задачу просмотра. Задача проста: войти, щелкнуть ссылки, ввести переменную и отправить, выйти из системы. Мне нужно создать веб-сайт, который делает это (своего рода более простой интерфейс). Помните, что веб-сайт использует сервлеты, и у меня нет доступа к кодам веб-сайтов. Сначала я попробовал CURL, но, поскольку на странице были некоторые элементы Ajax, curl не смог показать этот контент. Я пробовал .NET Webdriver, JUnit, Selenium и т. Д. Но все не удалось отрисовать элементы ajax. Я пробовал perl и python Mechanize, хотя perl не работал, мне удалось получить динамический контент с помощью python. Проблема не в том, что у меня есть ссылки, которые являются исполнениями Javascript, они начинаются с Javascript: и я не думаю, что могу вызывать функции с помощью Mechanize. Кто-нибудь знает, возможна ли вообще эта задача?
Как автоматизировать задачу просмотра?
Ответы (2)
Модуль Perl WWW::Mechanize
- это самый популярный способ автоматизации задач просмотра веб-страниц, таких как загрузка, выгрузка и т. Д. отправка форм, аутентификация, простой просмотр, очистка экрана и т. д. и т. д.
Если веб-сайт содержит Javascript, популярный модуль Perl для их обработки должен использовать _2 _.
Пока что "почти" любой веб-сайт, включая такие технологии, как JavaScript и Ajax, и использующий безопасность SSL или доступ через прокси-сервер, может обрабатываться комбинацией методов модуля Perl, принадлежащих _ 3_ и WWW::Mechanize
или WWW::Mechanize::Firefox
. Множество примеров доступно в сети.
Пример использования casperjs:
var casper = require('casper').create({
verbose: true,
logLevel: 'debug'
});
casper.start(
'http://example.com',
function() {
this.evaluate( function() {
return $('#someElementId div').length; // This runs as if it was on the page
});
this.fill(
'#formId',
{
email: '[email protected]',
password: 'password123'
},
true
); // This submits login form
}
);
Casperjs хранит файлы cookie, поэтому запросы к более глубоким страницам не завершатся ошибкой.
Подробнее об отправке форм см. fill ().
См. оценить () для запуска js, как если бы он был запущен на странице, которую вы тестируете.
Если вы хотите протестировать действия AJAX - не проблема. Они будут работать, как если бы страница была запущена в браузере, вы можете увидеть результаты в DOM. Вы можете запустить их вручную с помощью метода Assessment ().
waitFor
s, чтобы Ajax работал хорошо? Как именно он «потерпел неудачу»? - person Silas Ray   schedule 18.07.2012