В этой статье мы рассмотрим, как запустить проект с использованием Internet Explorer Driver и обойти распространенные ошибки.
Для начала стоит отметить, что Internet Explorer Driver поддерживает 32- и 64-битные версии браузеров, и, само собой, разумеется, будет работать только на платформе Windows. Он был успешно протестирован с IE 6,7,8 и 9 для XP, Vista и Windows 7.
Для того, чтобы использовать Internet Explorer Driver нужно скачать сервер и добавить путь к нему в переменную среды PATH. Инсталлятор запускать перед использованием не нужно!
Инициализация драйвера в коде аналогична другим драйверам и не требует никаких особенных параметров:
WebDriver driver = new InternetExplorerDriver();
Однако использование InternetExplorerDriver требует некоторых обязательных настроек:
- Вы должны установить Параметры безопасности для каждой зоны в одинаковое значение. Защищенный режим может быть включен, либо отключен — но значение обязательно должно быть одинаково для всех зон. Для того, чтобы установить Параметры безопасности, откройте «Свойства обозревателя» в панели управления и выберите закладку Безопасность. Для каждой зоны внизу закладки будет чекбокс «Включить защищенный режим». Если же параметры безопасности для зон будут различны, то при запуске теста Вы скорее всего получите следующую ошибку — «Unexpected error launching Internet Explorer. Protected Mode must be set to the same value (enabled or disabled) for all zones», которая легко решается выполнением данного пункта.
- Масштабирование в браузере должно быть установлено в 100%, чтобы нативным событиям мыши устанавливались правильные координаты.
Следующая трудность, с которой Вы можете столкнуться:
Тест запускается и открывает IE с рандомным адресом local host «http://localhost:18709/» и сообщением: This is the initial start page for the WebDriver server. Это происходит несмотря на то что в тесте есть строка с получением адреса (Например, driver.get(«http://www.google.com/»); ) и тест просто не выполняется дальше инициализации драйвера. Это происходит потому, что для выполнения API требуется, чтобы окно находилось в фокусе. Для решения этой проблемы убедитесь, что все всплывающие окна в IE закрыты, IE debugger(F12) также должен быть закрыт!
Стоит заметить, что в настоящее время есть некоторые проблемы с событиями мыши, когда окно IE браузера не в фокусе, и при попытке наведении курсора на элементы. Поэтому код тестов для IE может быть несколько сложнее, чем для других драйверов.
Валит такую ошибку:
java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.ie.driver system property; for more information, see http://code.google.com/p/selenium/wiki/InternetExplorerDriver. The latest version can be downloaded from http://code.google.com/p/selenium/downloads/list
Как правильно инициализировать IE в system property ?
Скачайте сервер, расположите его в проекте.
Или просто добавьте путь (без указания имени файла) в переменную PATH на машине.
Спасибо.
Спасибо Татьяна за статьи SELENIUM DRIVER: используем InternetExplorerDriver и Selenium: запуск Chrome Driver, очень доступно и наглядно написано!
Вопрос: Возможно ли с одного test.java запустить три браузера (Firefox, Chrome, InternetExplorer), что бы один и тот же тест прошел по каждему браузеру отдельно (но с одного теста) ? Если да, то как.
Спасибо
Это возможно сделать. Мне кажется, что самый простой и быстрый способ — использовать параметризированные тестовые классы JUnit и RemoteWebDriver
В вашем случае в качестве параметров будут выступать DesiredCapabilities с указанием типа необходимых браузеров.
Можно не использовать RemoteWebDriver, а сделать в конструкторе несколько if else конструкций и создавать необходимый Вам драйвер вручную.
Спасибо за быстрый ответ! Попробую, с RemoteWebDriver еще не работала, сейчас гляну что он из себя предстваляет.
Спасибо!