使 Chrome 工作无头



我想让chrome在ubuntu服务器上使用Selenium进行无头工作,以便我可以对它运行测试。

这是我使用 xvfb 设置 chrome 无头的命令。

我错过了什么吗?

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

下面是我创建驱动程序实例的代码段。这在我的 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");

最新更新