错误
- Ubuntu下运行一个selenium调用无头chrome浏览器,出现问题:DevToolsActivePort file doesn't exist
背景
- 在Java项目中,使用selenium模拟谷歌浏览器打开系统页面,进行截图,在windows环境下运行都没有问题,可是部署到生成环境后,运行报错。
原因
- 使用root安装的chrome,系统使用selenium打开chrome时,需要设置参数,使其在root权限下使用
解决办法
- 设置参数如下
//设置为 headless 模式 (必须) chromeOptions.addArguments("--headless"); chromeOptions.addArguments("--disable-gpu");//谷歌文档提到需要加上这个属性来规避bug chromeOptions.addArguments("--no-sandbox");// “–no - sandbox”参数是让Chrome在root权限下跑 chromeOptions.addArguments("--disable-dev-shm-usage"); chromeOptions.addArguments("lang=zh_CN.UTF-8"); chromeOptions.addArguments("window-size=1920x1080"); //指定浏览器分辨率