简体   繁体   English

使镀铬无头工作

[英]making chrome work headless

I want to get chrome to work headless with selenium on an ubuntu server so that I can run tests against it. 我想让chrome在ubuntu服务器上与硒毫无关系,以便可以对其进行测试。

here's the commands I ran to set up chrome headless using xvfb. 这是我运行以使用xvfb设置chrome headless的命令。

Am I missing anything? 我有什么想念的吗?

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

Here is a snippet from where I create my driver instance. 这是我创建驱动程序实例的摘录。 This is working on my mac, but have not tested this on ubuntu yet. 这适用于我的Mac,但尚未在ubuntu上进行过测试。 I'll be doing that very soon. 我很快就会这样做。

Note the option: --disable-gpu. 注意选项:--disable-gpu。 This is what made it to work on my local machine. 这就是使其在我的本地计算机上运行的原因。

      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");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM