Firefox работает в фоновом режиме в Selenide - PullRequest
0 голосов
/ 16 октября 2018

обычно вопросы противоположны, как заставить Firefox работать в фоновом режиме.Некоторое время назад я написал некоторые базовые тесты в Selenide, но когда сегодня я попытался запустить его (как обычно) на сервере, я получил ошибку

SessionNotCreatedException

Я начал искать результат, и язаметил, что когда я запускаю тесты локально с моего компьютера, Firefox не появляется.Я вижу задачи Firefox в Диспетчере задач, я получил ошибку с готовым снимком экрана, но браузер не открывается.

Я заметил, что есть много вопросов о том, как запускать тесты с опцией безглавой, но янужно что-то противоположное, это может быть проблема с SessionNotCreatedException, сервер не видит браузер.

Как я знаю, Selenide запускает новейший драйвер геккона (он обновляет).Я попытался установить некоторые параметры в начале:

    FirefoxOptions options = new FirefoxOptions();
    options.setCapability("marionette", false);
    options.setCapability("headless", false);

, а также обновил Selenide до 5.0.0, но он все еще не работает

РЕДАКТИРОВАТЬ: я не могу использовать другие браузеры

1 Ответ

0 голосов
/ 16 октября 2018

Для выполнения тестов на сервере в целом сервер является системой X Window, поэтому способ сделать это - запустить виртуальный дисплей.

Использование Xvfb - лучший способтот!Вы можете прочитать об этом здесь .

from xvfbwrapper import Xvfb

with Xvfb() as xvfb:
    # launch virtual display here.
    # start your webdrivr in the virtual display

Или вы можете использовать PyVirtualDisplay ссылку здесь .

from pyvirtualdisplay import Display
from selenium import webdriver

display = Display(visible=0, size=(800, 600))
display.start()

# now Firefox will run in a virtual display. 
# you will not see the browser.
browser = webdriver.Firefox()
browser.get('http://www.google.com')
print browser.title
browser.quit()

display.stop()

Примечание

Убедитесь, что ваш сервер является системой X Window!

Как вы можете видеть здесь , он не работает в Windows.

Надеюсь, это поможет вам!

...