Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Unexpected error launching Internet Explorer в selenium2library


(kom) #1

В случае если после выполнения 30го теста в сьите открыто около 30ти окон Internet Explorer, то следующий тест не запускается, отображается такое сообщение:
WebDriverException: Message: u"Unexpected error launching Internet Explorer. IELaunchURL() returned 80070490 for URL ‘http://localhost:3511/’"

Поставил на уровне тест-сьюита:
Suite Teardown Close All Browsers
Test Teardown Close All Browsers

Но окна закрываются только в самом конце выполнения всего тест-сьюита.
Я думал, что если б окно закрывалось после каждого кейса, то это бы помогло, но так не выходит.
В Test Teardown некоторых тест-кейсов прописано disconnect from database, может быть изза этого не срабатывает Test Teardown на уровне тест-сьюита


Тесты продолжают выполняться после нажатия stop, Selenium2library, RobotFramework
(Mykhailo Poliarush) #2

Ну конечно, локальная машина у тебя не резиновая чтобы держать множество открытых internet explorer. Надо сделать более умную работу с открытыми окнами. Например, если окно уже открыто, то не открывать новый инстанс internet explorer, а использовать старый.

Да, Test Teardown прописанный в тесте имеет больший приоритет. Так что, тебе просто нужно создать новый кейворд где ты будешь вызывать нужные кейворды для tear down. И тогда в самом Test Teardown указать уже новый кейворд.


(Dmitriy Zverev) #3

Лично я делаю так:

Suite_setup
    [Timeout]    10 minutes
    Comment    Запуск браузера
    Selenium2Library.Open Browser    about:blank    browser=${BROWSER}
    Selenium2Library.Register Keyword To Run On Failure    Nothing
    Selenium2Library.Maximize Browser Window

Suite_teardown
    [Timeout]    10 minutes
    Comment    Закрываем браузер
    Selenium2Library.Close Browser

Test_setup
    [Timeout]    10 minutes
    Common.Common test setup
    Comment    Выставляем скорость работы selenium и время ожидания
    Selenium2Library.Set Selenium Implicit Wait    ${SELENIUM_IMPLICIT_WAIT}
    Selenium2Library.Set Browser Implicit Wait    ${BROWSER_IMPLICIT_WAIT}
    Selenium2Library.Set Selenium Speed    ${SELENIUM_SPEED}
    Selenium2Library.Set Selenium Timeout    ${SELENIUM_TIMEOUT}
    Comment    Переход на страницу 
    Selenium2Library.Go To    http://mypage.com
    Comment     Логин в систему
    Login to system ${USER_LOGIN}    ${USER_PASSWORD}

Test_teardown
    [Timeout]    10 minutes
    Run Keyword If Test Failed    Steps after failed tests
    Comment    Удаление cookies
    Selenium2Library.Delete All Cookies
    Logout from system

(kom) #4

Спасибо, проблему удалось решить путем прописания в нескольких кейсах
Test Teardown Close All Browsers

в тех кейсах, где не нужно подключение к БД.
@DmitriyZverev : Я не совсем понимаю для чего нужны кейворды
Browser Implicit Wait и Selenium Implicit Wait
в вашем примере, что должно быть в переменных ${SELENIUM_IMPLICIT_WAIT} и ${BROWSER_IMPLICIT_WAIT}? Поясните пожалуйста


(Dmitriy Zverev) #5

Документация к selenium: http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp

Документация к Selenium2Library: http://rtomac.github.io/robotframework-selenium2library/doc/Selenium2Library.html#Set%20Browser%20Implicit%20Wait

Значение переменных имеют формат времени.