錯誤
- 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"); //指定瀏覽器分辨率