EC2上のXVFBとSelenium-VNCビューアでChromeUIを表示できません
私のSeleniumヘッドレステストはJenkinsサーバーからトリガーされ、EC2-Ubuntuで実行されます。Chromeでテストをライブで表示したいので、JenkinsにXvfbプラグインをインストールしました。
EC2にXvfbをインストールしました。ビルドの実行を開始すると、テストの実行が開始され、以下のログが表示されます。
Xvfb /usr/bin/Xvfb :1 -fbdir /var/lib/jenkins/xvfb
27-..fbdir13700092919317283985
Parsing POMs
Established TCP socket on 30810
テストが正常に実行されていることがわかります。
今私はMac端末からEC2へのSSHを
ssh -L 5901:localhost:5901 [email protected]
次に、実行します。
qa_user@jenkins-it:~$ export DISPLAY=: 30810` (Port number from Jenkins logs above) qa_user@jenkins-it:~$ vncserver "$DISPLAY" -geometry 1280x1024 New 'X' desktop is jenkins-it: 30810 Starting applications specified in /home/qa_user/.vnc/xstartup Log file is /home/qa_user/.vnc/jenkins-it: 30810.log qa_user@jenkins-it:~$ x11vnc --listen 0.0.0.0 -rfbport 5901 -display : 30810
これによりXVFBが起動し、次のように表示されます。

MacからVNCviewerからlocalhost:5901に接続すると、Ubuntuデスクトップに移動します。

しかし、テストが実行されていて、Jenkinsにテストログが表示されていても、Chromeが開くことはありません。
VncViewer経由でChromeを使用することもできます。

ここで何が欠けていますか?私は多くのXvfbセットアップ手順を試しましたが、1か月前からこれを正しく実行しようとしています。ここに私が尋ねたいくつかの質問があります:
https://askubuntu.com/questions/1262925/run-selenium-tests-on-ec2-with-gui?noredirect=1#comment2139716_1262925
vncserverとxvfbを使用してEC2-UbuntuでライブヘッドレスSeleniumテストを表示する方法
https://sqa.stackexchange.com/questions/45376/looking-for-a-solution-to-run-selenium-tests-on-ec2-with-gui/45380#45380
ここまでの長い道のりで、今ではStackoverflowが私の最後の手段です。助けてください。
回答
私はこれに対する解決策を自分で見つけました。同じ問題を抱えている人のために:
私が間違ったことdriver = new ChromeDriver(options);
は、コードではなくコードで使用したことでしたdriver = new RemoteWebDriver(new URL("http://my.aws.ip:4444/wd/hub"), options);
この変更を行った後、Selenium-server-standalone.jarをEC2にダウンロードしました。
次に、テストを開始する前に、EC2に対してssh -X [email protected]を実行し、次のコマンドを実行しました。
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のビルド前の実行シェルに移動できます:)
私の最新の回答の詳細:JenkinsのXVFBが間違ったディスプレイに接続しています。ディスプレイに黒い画面が表示される