2017-02-09 4 views
0

私はそれに対してテストを実行できるように、クロムをubuntuサーバー上のセレンでヘッドレスで動作させたいと思っています。クロムワークをヘッドレスにする

ここでは、xvfbを使ってヘッドレスクロムを設定するためのコマンドです。

何か不足していますか?

apt-get update && apt-get upgrade 
apt-get install -y libxss1 libappindicator1 libindicator7 unzip 
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - 
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list' 
sudo apt-get update 
sudo apt-get install google-chrome-stable 

sudo apt-get install -y xvfb xfonts-100dpi xfonts-75dpi xfonts-cyrillic xorg dbus-x11 

wget -N http://chromedriver.storage.googleapis.com/2.24/chromedriver_linux64.zip 

unzip chromedriver_linux64.zip 
chmod 755 chromedriver 
sudo mv -f chromedriver /usr/local/share/chromedriver 
sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver 
sudo ln -s /usr/local/share/chromedriver /usr/bin/chromedriver 
sudo apt-get install -y python-pip libosmesa6 
sudo apt-get update && sudo apt-get install -y xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic xvfb x11-apps imagemagick firefox google-chrome-stable 
pip install pyvirtualdisplay selenium 
sudo apt-get install firefox -y 
useradd -m jenkins-user 
mkdir /home/jenkins-user/log 
chown jenkins-user:root /home/jenkins-user/log 
sudo apt-get install -y default-jdk 
apt-get install -y git 
iptables -N SELENIUM 
iptables -A INPUT -p tcp --dport 4444 -j SELENIUM 
iptables -A SELENIUM -p tcp --dport 4444 -s 127.0.0.1 -j ACCEPT 
iptables -A SELENIUM -p tcp --dport 4444 -j DROP 
apt-get install jq 
+0

xvfbは実際には 'google-chrome --headless'では必要ないと思ってください。我々は、それを含んでいないカスタムDockerイメージ(Chrome、Java、Nodeのみ)で、selenium/cucumberjsテストを正常に実行しています。 – Jeroen

答えて

0

ここでは、ドライバインスタンスを作成するためのスニペットを示します。 これは私のMac上で動作していますが、まだubuntuでこれをテストしていません。私はすぐにそれをやっていきます。

オプション:--disable-gpuに注意してください。これが私のローカルマシンで動作するようになったのです。

 System.setProperty("webdriver.chrome.driver", chromeAbsolutePath + ""); 
     ChromeOptions options = new ChromeOptions(); 
     options.addArguments("--disable-extensions"); 
     options.addArguments("--headless"); 
     options.addArguments("--disable-gpu"); 
     DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
     capabilities.setCapability("acceptInsecureCerts", false); 
     capabilities.setCapability("acceptSslCerts", false); 

     capabilities.setCapability(ChromeOptions.CAPABILITY, options); 
     driver = new ChromeDriver(capabilities); 
     System.out.println(BROWSER + " on local machine initiated"); 
関連する問題