我正在尝试在ubuntu 14.04 vm上运行量角器测试(通过谷歌云), 出于某种原因,当我运行'protractor conf.js'时,我得到一个错误说:
E / launcher - WebDriverError:未知错误:Chrome无法启动:异常退出
我按照这个任务来安装无头镀铬: https://gist.github.com/alonisser/11192482
在运行量角器cons.js之前,我正在运行“webdriver-manager start”
当我运行'Xvfb -ac:2 -screen 0 1280x1024x16'当它到达时冻结 '初始化内置扩展GLX'
我也尝试将conf.js更改为 chromeOptions:{ args:[“ - headless”,“ - disable-gpu”,“ - window-size = 800x600”]' 但是,量角器打印'开始'然后错误:'失败:未知错误:键码转换需要X显示,请考虑使用Xvfb'
重要的是要提到它在几个小时之前都很好用。 然后我就让我的mac睡觉了,当然它是退出vm ..
我在mac中使用量角器进行相同的测试,效果很好。 问题与实例vm上的chrome / chromeDriver有关。
非常感谢!!!
答案 0 :(得分:9)
在AWS EC2机器上使用selenium + python 2.7 + chromedriver时遇到了类似的问题。
在我的情况下,我使用的是最新的无头功能,因此在ChromeOptions对象中添加“ no-sandbox ”参数就可以了。
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('headless')
chrome_options.add_argument('no-sandbox')
driver = webdriver.Chrome(chrome_options=chrome_options)
问题似乎是chrome的权限问题。如果没有--no-sandbox标志
,它不允许'root'用户执行它答案 1 :(得分:2)
原来,答案就在我的问题中。
您应该运行命令 Xvfb -ac :99 -screen 0 1280x1024x16
在 export DISPLAY=:99
我还在start.sh脚本中添加了命令 export DISPLAY=:99
订单似乎很重要。您可以在运行Xvfb时忽略GLX的错误,它可以在没有它的情况下工作。