XVFB на Jenkins подключается к неправильному дисплею. Дисплей показывает черный экран

Я пытаюсь выполнить безголовые тесты Chrome Selenium через Jenkins, используя XVFB на UBUNTU AWS / VM.

Моя конфигурация Jenkins XVFB:  введите описание изображения здесь

Предварительная сборка Execute Shell:

export DISPLAY=:98
x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :98 -auth /var/run/lightdm/root/:0 -rfbport 5900

Когда начинается сборка, я вижу:

Xvfb starting$ /usr/bin/Xvfb :98 -screen 0 1024x768x24 -fbdir /var/lib/jenkins/xvfb-82-..fbdir10942188934689457655
[Jenkins-Headless] $ /bin/sh -xe /tmp/jenkins11502774511620101086.sh
+ export DISPLAY=:98
+ x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :98 -auth /var/run/lightdm/root/:0 -rfbport 5900
17/09/2020 09:50:33 passing arg to libvncserver: -rfbport
17/09/2020 09:50:33 passing arg to libvncserver: 5900
.
.
.

и наконец:

17/09/2020 09:50:34 x11vnc version: 0.9.13 lastmod: 2011-08-10  pid: 11460
17/09/2020 09:50:34 Using X display :98
17/09/2020 09:50:34 rootwin: 0x298 reswin: 0x200001 dpy: 0x1a57e8f0
.
.
The VNC desktop is:      jenkins-it02:0
PORT=5900

Теперь через терминал на моем MAC я подключаюсь к виртуальной машине с помощью команды ssh -L 5900:localhost:5900 [email protected].

и используя VNCViewer, я подключаюсь к localhost: 5900. Он подключается, но я вижу только черный экран. Я ожидаю появления на экране окна браузера Chrome.

введите описание изображения здесь

введите описание изображения здесь

Как я могу решить эту проблему и посмотреть окно Chrome на vncviewer?


person Afsal    schedule 17.09.2020    source источник


Ответы (1)


Я сам нашел решение. Для тех, у кого такая же проблема:

Что я сделал не так, я использовал driver = new ChromeDriver(options); в своем коде вместо driver = new RemoteWebDriver(new URL("http://my.aws.ip:4444/wd/hub"), options);

После внесения этого изменения я загрузил selenium-server-standalone.jar в EC2.

Затем перед началом теста я ввел ssh -X [email protected] в EC2 и выполнил:

Xvfb :99 -ac -screen 0 1280x1024x24 &
export DISPLAY=:99
java -jar /home/qa_user/Selenium/selenium-server-standalone.jar

Теперь выполняем тест, параллельно я открыл новый терминал и сделал:

ssh -L 5900:localhost:5900 [email protected]

Как только экран был настроен, я сделал:

x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :99 -auth /var/run/lightdm/root/:0  -rfbport 5900

Затем откройте средство просмотра VNC, подключитесь к localhost: 5900, и вы увидите выполнение Chrome.

Позже вы можете переместить все это в оболочку выполнения предварительной сборки Jenkins, если потребуется :)

person Afsal    schedule 21.09.2020