#javascript #windows #perl #internet-explorer #mechanize
#javascript #Windows #perl #internet-explorer #механизировать
Вопрос:
Мне нужно написать Perl-скрипт для очистки веб-сайта. Веб-сайт может быть очищен только с помощью JavaScript, а пользователь находится в Windows.
Я кое-как справился с Win32:: IE::Mechanize на моем рабочем компьютере с IE6, но затем я перешел на свой нетбук с IE8 и не могу даже получить простую страницу.
Обновлен ли Win32::IE::Mechanize с последними версиями IE?
Но, что более важно, учитывая недавнюю версию WinXP, какой самый быстрый и простой способ очистить сайт, который раскрывает свое содержимое только с помощью JavaScript?
Комментарии:
1. Возможно, вам будет интересно обсуждение Майклом Шверном Selenium в ситуации тестирования: use.perl.org /~schwern/journal/39088 .
Ответ №1:
- Это позволяет вам указать, какой браузер использовать (IE и Firefox поддерживаются с самого начала)
- Он поддерживает доступ к элементам через элементы xpath, идентификаторы таблиц, текст (с регулярным выражением!) и URL-адреса
- Он предоставляет набор опций взаимодействия с пользователем, предоставляя вам гибкость в том, как вы хотите имитировать просмотр конечным пользователем
Вам нужно будет загрузить Selenium Remote Control и запустить его в фоновом режиме, чтобы модуль заработал.
Возможно, это не самый лучший вариант, если время загрузки вашей страницы непредсказуемо.
Комментарии:
1. Это, безусловно, выглядит неплохо, но установка RC-части не доставит никакого удовольствия моим географически удаленным, несколько невежественным клиентам…
2. @AmbroseChapel: Это не столько установка, сколько загрузка. Как только файл будет на месте, запустите его через
java -jar selenium-server.jar
в фоновом режиме.3. Или, в наши дни, Selenium::Chrome (или
::Firefox
), без необходимости в автономном сервере или JRE. (Это может вернуться к Selenium::Remote::Driver ). Гораздо приятнее в использовании, без оговорок.4. Хотелось бы надеяться, что через двенадцать лет
![]()
Ответ №2:
Взгляните на Win32::Watir. Это более новый модуль, который явно поддерживает IE 6, 7 и 8.
Комментарии:
1. Это выглядит великолепно. Но я даже не могу запустить его. При запуске new () происходит сбой и выдается сообщение об ошибке. «Нечетное количество элементов в присваивании хэша в C:PerlsitelibWin32Watir.pm строка 101 не может найти метод объекта «_startIE» через пакет «visble» в C:PerlsitelibWin32Watir.pm строка 108 » Есть какие-нибудь советы?
2. О, подождите, это документация — там написано Watir::new, когда следовало бы сказать Watir-> new — теперь это работает. Хотя это не вселило в меня уверенности…
3. Я этого не делал, но я отправил ошибку. Я должен вернуться и заняться документацией, вы правы.
Ответ №3:
Я не вижу никаких упоминаний о WWW::Mechanize, поэтому я приведу это просто для полноты картины. Selenium также становится очень популярным и может использоваться во многих сценариях тестирования.
Комментарии:
1. WWW::Mechanize не использует JavaScript, именно поэтому я здесь задаю этот вопрос.
2. @AmbroseChapel:
WWW::Mechanize::Firefox
поддерживает JavaScript.
Ответ №4:
WWW::Scripter и его ::Plugin:: Javascript, вероятно, могут вам помочь.