2019-03-30

Chrome 的 Command Mode (--headless) 進行 ScreenShot

遇到一個問題
使用 Chrome 的 Command Mode (--headless) 進行 ScreenShot 指令如下:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --headless --disable-gpu --run-all-compositor-stages-before-draw --aggressive-cache-discard --disable-notifications --disable-remote-fonts --disable-reading-from-canvas --disable-remote-playback-api --disable-shared-workers --disable-voice-input --enable-aggressive-domstorage-flushing --window-size=1024,768 --screenshot="C:\Temp\ScreenShot.png" "https://www.google.com"

這個指令在 cmd 視窗直接執行時沒有問題,可以取得圖檔
但是如果放到 Task Scheduler 裡面跑的時候卻無法取得圖檔

由於不知道怎麼查 Chrome 的 Log ,所以先朝打開 Log 著手
在以下網站查到了怎麼開 Log

在系統環境變數加一筆 CHROME_LOG_FILE 值為 1 即可在 Chrome.exe 相同路徑中取得 debug.log

接著在 Log 中找到以下錯誤
chrome error sandbox_policy_base.cc(348)] Failed to add sandbox rule

並在這裡找到參數

於是在 Command 中增加以下參數
--no-sandbox 

在 Task Scheduler 執行就可以取得圖檔了

沒有留言:

張貼留言