Существует ли эквивалент инструмента *expect* Дона Либеса для создания сценариев взаимодействия с веб-страницами?

StackOverflow https://stackoverflow.com/questions/609177

Вопрос

В старые добрые времена интерактивных консольных приложений Дон Либес создал инструмент под названием Ожидать, что позволило вам писать сценарии Tcl, которые взаимодействовали бы с этими приложениями так же, как это сделал бы пользователь.Expect имел два огромных преимущества:

  • Можно было запрограммировать взаимодействия, которые в противном случае пришлось бы утомительно повторять вручную.Классическим примером был ад коммутируемого доступа в Интернет (во времена, когда еще не было PPP).

  • Можно было писать сценарии для программного тестирования собственных интерактивных приложений в рамках пакета регрессии.

Сегодня большинство интерактивных приложений находятся в Интернете, а не на консоли.Отсюда мой вопрос:Существует ли какой-либо инструмент, который обеспечивает возможность программного взаимодействия с веб-страницами и веб-формами, так же, как Expect предоставляет возможность программного взаимодействия с консольными приложениями?

(Самое близкое, что я знаю, это Куриная лапка.)

Это было полезно?

Решение

Возможно, вы ищете Селен

Другие советы

я использовал Селен RC в сочетании с Python для программного управления взаимодействием с веб-страницами.Это позволило мне написать довольно обширные пользовательские тесты, в которых управляются формы и вводимые данные, а также измеряются их результаты.

Проверьте Селен IDE в Firefox (как упоминалось выше).Он позволяет записывать тесты в браузере и воспроизводить их либо с помощью самой IDE, либо с помощью приложения Remote Control.

Перл Механизировать работает очень хорошо для этой конкретной проблемы.

HTTPS и некоторые проблемы аутентификации иногда бывают непростыми.В будущем я опубликую пару вопросов об этом.

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

Без сомнений, я бы сказал, что библиотека Perl WWW::Mechanize — это то, что вам нужно.Выше я отмечаю, что у вас возникли проблемы с поиском документации.Для этого есть хорошая документация!Найдите дистрибутив модуля на search.cpan.org и посмотрите, что в него входит.Есть FAQ, кулинарная книга с примерами и т.д.Плюс я всегда мог получить помощь в Интернете.Если вы не можете получить его здесь, попробуйте использовать.perl.org или perlmonks.org.Автор WWW::Mechanize Энди Лестер присутствует при переполнении стека.(Он также дружелюбный и отзывчивый парень.)

Я считаю, что в WWW::Mechanize также есть программа, аналогичная программе автоожидания Expect:вы настраиваете прокси-процесс, запускающий эту программу в качестве сервера, указываете на него в своем браузере как на прокси, выполняете действия, которые хотите автоматизировать, а затем прокси-программа предоставляет вам программу WWW::Mechanize, которую вы можете использовать в качестве основы. для вашего проекта.(Если он работает как autoexpect, вам наверняка захочется внести изменения оттуда.)

Как упоминалось выше, WWW::Mechanize является браузер (точнее, веб-клиент или http-клиент), который бывает программируемым.В последний раз, когда я заглядывал, там даже велась работа над поддержкой JavaScript.

Помимо Selenium, если вы работаете с Ruby/Rails, есть Вебрат.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top