Автоматизация браузеров Firefox и Chrome
Я ищу способ автоматизации нескольких браузеров... Firefox и Chrome (на данный момент только для Windows) из внешнего приложения / процесса.
Есть ли способ сделать вещи по этим направлениям:
- Запустите браузер с URL
- Браузер должен загрузить страницу, запустить скрипт и т. Д.
- Осмотреть DOM
Для справки, IE может быть автоматизирован с помощью объекта InternetExplorer.Application, который может быть создан в сценарии оболочки с использованием следующего javascript, а затем я могу пройтись по DOM API:
var ie = new ActiveXObject('InternetExplorer.Application');
Мотивирующим сценарием здесь является автоматизированное тестирование. Я хотел бы загрузить страницу, содержащую тестовый код, и собрать результаты после запуска теста.
2 ответа
WatiN делает именно это, и я думаю, что они недавно добавили поддержку Chrome
Обновление от 22.06.2011: В настоящее время WatiN работает только в Firefox 2 и 3, а не в Firefiox 4 (и почти наверняка не в Firefox 5, выпущенном сегодня). Кроме того, во время этого ответа предположительно добавлялась поддержка Chrome, но похоже, что она так и не была полностью выпечена и теперь не указана в качестве поддерживаемой платформы на их домашней странице.
Также стоит отметить, что по моему опыту WatiN стал намного медленнее, когда я обновился до IE9. Я видел это на двух разных машинах, и переход на IE8 ускорил тестирование на обеих машинах.
Я до сих пор активно использую WatiN, но сейчас в основном для поведенческого проектирования и функционального регрессионного тестирования, которые обычно не зависят от браузера. Затем вручную протестируйте в FF и Chrome все тесты прогрессии.
Обновление 22.09.2015: Elmue прав, похоже, над WatiN больше не ведется работа. Сейчас мы ищем Selenium для наших автоматических приемочных тестов: http://www.seleniumhq.org/
TestR позволит вам автоматизировать IE, FF и Chrome. Я начал работать над поддержкой Edge, но у меня просто не было времени.
https://github.com/BobbyCannon/TestR
Вы можете использовать пакет nuget.
https://www.nuget.org/packages/TestR/
Вот несколько примеров.