Как удаленно управлять Firefox из скрипта на OSX - PullRequest
4 голосов
/ 14 апреля 2009

Мне нужно написать несколько скриптов для доступа к некоторым веб-сайтам. Скрипт из командной строки будет получать несколько страниц, публиковать некоторые формы, выводить на экран некоторую информацию и т. Д.

Это не может быть библиотечный "браузер", такой как libwww-perl, потому что некоторые шаги могут потребовать взаимодействия с пользователем (капча, формы только для ajax, любые неожиданности взаимодействия и т. Д.).

Самым практичным способом, который я могу придумать, было бы удаленно открывать вкладку в Firefox и вставлять в нее Javascript, что-то вроде того, что делают Greasemonkey и Selenium. Это не обязательно должно быть для Firefox, может быть другой браузер, если это проще.

Так, что было бы лучшим способом сделать это?

Ответы [ 4 ]

3 голосов
/ 14 апреля 2009

Рассматривали ли вы Selenium Remote Control ? Ранее я автоматизировал взаимодействие с браузером, используя этот инструмент, и он работает очень хорошо, обеспечивая большую гибкость

В зависимости от ваших конкретных потребностей вы можете использовать Selenium IDE , который представляет собой простой в использовании плагин Firefox, позволяющий легко создавать сценарии.

2 голосов
/ 14 апреля 2009

Вы можете использовать XPCOM , чтобы расширить Firefox всеми возможными способами. Вы могли бы написать какой-то интерфейс, который может быть связан с другим процессом.

1 голос
/ 14 апреля 2009

Я не уверен, каким будет «лучший» способ сделать это, но одна возможность - использовать AppleScript для этой работы. Firefox, однако, не имеет широких возможностей написания сценариев - если вы хотите использовать Safari, есть команда AppleScript, доступная для вставки кода JavaScript в документ (команда do JavaScript - найдите его в словаре сценариев Safari, доступном по в редакторе скриптов).

Кроме того, чтобы запустить AppleScripts из командной строки, используйте osascript:

osascript path/to/script.scpt
0 голосов
/ 04 июня 2009

Для написания сценариев на OS X я бы порекомендовал два способа, и оба они в ruby. Первым является Watir , который представляет собой автоматизированную среду тестирования, которая будет управлять как Firefox, так и Safari на Mac OS X.

Другой, возможно, лучший способ очистки экрана - использовать hpricot , который представляет собой HTML-парсер, который действительно прост в использовании.

В фоновом режиме Watir использует JSSh - сервер оболочки JavaScript TCP / IP для Firefox , чтобы сделать это. JSSH позволяет вам управлять браузером из сеанса telnet.

Каким бы путем вы ни пошли, если вы поймаете ловушку, они вас остановят. В этом вся их суть: -)

...