Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Запуск тестов в InternetExplorer headless mode (selenium webdriver+ pytest)

windows
pytest
headless
ie
webdriver
python
Теги: #<Tag:0x00007fedbb88c4c0> #<Tag:0x00007fedbb88c128> #<Tag:0x00007fedb9a4bf10> #<Tag:0x00007fedb9a4b830> #<Tag:0x00007fedb9a4b678> #<Tag:0x00007fedb9a4b448>

(Elena Zhovnir) #1

Привет всем!!! Подскажите, какие есть решения для запуска тестов в InternetExplorer headless mode на удаленной Windows-машине без активной сессии? Использую связку selenium webdriver+ pytest.

Нашла такую инфу для IE headless mode possible solutions:

  1. HTMLUnitDriver + com.gargoylesoftware.htmlunit.BrowserVersion package

  2. https://github.com/kybu/headless-selenium-for-win (headless_ie_selenium.exe - is an addon to IEDriverServer.exe that handles new session requests and automatically launches IEDriverServer.exe in new virtual desktop )- проблема в том , что " you can’t take a screenshot without an active session", так что нельзя дополнительно проверить результат выполнения тестов.

  3. http://triflejs.org/ solution (last supported browser- IE9). - не совместим с Selenium Webdriver.

Для 1-го решения получилось запустить HTMLUnit browser через driver = webdriver. Remote(“http://localhost:4444/wd/hub”, webdriver.DesiredCapabilities.HTMLUNIT.copy()). Как теперь передать в desire capabilities IE 11 , так и не поняла.

Как теперь передать в desire capabilities IE 11 , так и не поняла. Есть ли какие либо другие решения.

Версии ОС и софта : remote Windows machine (TFS CI server ), pytest 3.0.7., selenium 3.4.2

Подскажите, пжл, как можно решить данный вопрос с IE headless?


(Black Box Blues) #2

Попробуйте второй вариант и замыкание сессии на консоль, как тут советовали: Кто сумел заставить Jenkins работать с Internet Explorer в фоновом режиме?


(Elena Zhovnir) #3

По- второму варианту, с подменой IEDriverServer.exe на headless_ie_selenium.exe

выдает ошибку :

" WebDriverException: Message: Unexpected error launching Internet Explorer. IELaunchURL() returned HRESULT 80070012 (‘There are no more files.’) for URL ‘http://localhost:52354/’’ (хотя вижу что новый еxe запускается). "

Код:

driver = webdriver.Ie(r"C:\\Python27\\Scripts\\headless_ie_selenium.exe")
driver.get("http:\\google.com")
driver.get_screenshot_as_file("capture.png")
googleSearch = driver.find_element_by_name("q")
googleSearch.send_keys("Selenium")
googleSearch.send_keys(Keys.ENTER)
driver.quit()

C:\Python27\Scripts- в PATH переменой. Гугл особо не помог :slight_smile:
Люди, кто с подобным сталкивался?


(Aleksandr Jashhuk) #4

Была задача временно сделать тестовую среду в Docker контейнерах, а затем быстро-быстро перенести на новые серверы. Так вот, с контейнером получили приятный бонус с браузером внутри - не нужно теперь переживать за headless-ы и вообще за графическую среду на сервере :slight_smile:


(Elena Zhovnir) #5

Спасибо , Алексадр за совет. Правильно ли я поняла , что на cервере без GUI можно развернуть docker , гонять тесты на браузере с GUI ?


(Aleksandr Jashhuk) #6

Да, всё верно. Пока не приехали серверы гоняю тесты на своей локальной машине - не выскакивают никакие браузеры, только потом скриншоты в отчётах смотрю.


(Oleksandr Khotemskyi) #7

Невозможно запустить интернет эксплорер в контейнере


(Oleksandr Khotemskyi) #8

Возможно эта статья подскажет варианты