Google chrome Travis CI上的镀铬器
我很难让Travis CI上的chromedriver为我的项目工作。至少,我正在尝试使用WebdriverJS自动化Chrome的测试 chromedriver在Travis CI上似乎存在一些问题,包括:Google chrome Travis CI上的镀铬器,google-chrome,selenium-chromedriver,travis-ci,Google Chrome,Selenium Chromedriver,Travis Ci,我很难让Travis CI上的chromedriver为我的项目工作。至少,我正在尝试使用WebdriverJS自动化Chrome的测试 chromedriver在Travis CI上似乎存在一些问题,包括: 这个问题似乎是“chrome无法访问”的一个变体,据我所知,这需要谷歌的上游参与来解决 错误的详细信息如下所示 没有明显的解决办法,尽管有一条评论提到使用了--No sandbox,但不清楚在WebdriverJS中在何处或如何使用它 如果您对此有任何想法,我们将不胜感激 --编
--No sandbox
,但不清楚在WebdriverJS中在何处或如何使用它
如果您对此有任何想法,我们将不胜感激
--编辑--
有趣的是,我正在使用Chromedriver来代替Chromedriver。我认为Travis确实支持chrome驱动程序,如果您将它们添加到Travis.yml中,请提取正确的Chromedriver并将其解压缩到已知位置,以便以后可以跟踪它
before_script:
- wget http://chromedriver.storage.googleapis.com/2.10/chromedriver_linux64.zip
- unzip chromedriver_linux64.zip -d /home/travis/virtualenv/python2.7.9/
- export CHROME_BIN=chromium-browser
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
- sleep 3
另外,当您调用selenium或任何测试自动化库时,您需要添加此代码这里的代码在Python
中,但也可以在Java
和Ruby
中完成
options = webdriver.ChromeOptions()
options.binary_location = '/usr/bin/chromium-browser'
#All the arguments added for chromium to work on selenium
options.add_argument("--no-sandbox") #This make Chromium reachable
options.add_argument("--no-default-browser-check") #Overrides default choices
options.add_argument("--no-first-run")
options.add_argument("--disable-default-apps")
driver = webdriver.Chrome('/home/travis/virtualenv/python2.7.9 /chromedriver',chrome_options=options)
有一种更简单的方法可以在Travis CI上启动Chrome,只需在addons/apt/sources中指定google Chrome,并在addons/apt/packages中指定google Chrome软件包 以下是我的示例配置,以便更好地理解:
sudo: required
dist: trusty
addons:
apt:
sources:
- google-chrome
packages:
- google-chrome-stable
language: node_js
node_js:
- "6"
cache:
directories: node_modules
branches:
only: master
before_script:
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
- npm i -g npm@^3
- sleep 3
编辑:截至2018年10月,Travis CI正在慢慢远离集装箱(请参阅)。因此,可以省略
sudo:false
,但给定的ChromeDriver设置仍然有效
如果您想要使用环境(快速启动时间,但没有sudo
),您也可以按如下方式进行操作(相应地包括语言
等等):
之后,正如您已经提到的,将--无沙盒添加到您的Chrome选项中(取自此选项):
var-webdriver=require('selenium-webdriver');
变量色度选项={
'args':['--没有沙盒']
};
var chromeCapabilities=webdriver.Capabilities.chrome();
色度能力集('chromeOptions',chromeOptions);
var driver=new webdriver.Builder().withCapabilities(chromeCapabilities.build();
这是由于Travis CI中的错误。但是,如果您仍然需要sudo
,或者有一个基于容器的环境意义有限的长时间运行的构建,那么您还可以设置sudo:true
,并省略添加--无沙箱
额外资源:
尝试将sudo:true
添加到.travis.yml
文件中。这将启动另一种可能工作得更好的VM。(不过,启动时间会慢一些。)
dist: trusty
sudo: false
addons:
chrome: stable
apt:
packages:
- chromium-chromedriver
before_script:
# include ChromeDriver in PATH
- ln --symbolic /usr/lib/chromium-browser/chromedriver "${HOME}/bin/chromedriver"
# start Chrome and listen on localhost
- google-chrome-stable --headless --disable-gpu --remote-debugging-port=9222 http://localhost &