轉發: https://blog.csdn.net/GO_D_OG/article/details/79073727
查看Debian版本 :
cat /etc/issue
測試配置:
google-chrome 版本
root@a713d689f464:/opt/chrome# google-chrome -version Google Chrome 83.0.4103.116
ChromeDriver 版本: 83
一、安裝chrome
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo apt-get -f install dpkg -i google-chrome-stable_current_amd64.deb
1、如果提示錯誤:
dpkg: error processing package google-chrome-stable (--install):
請執行:
sudo apt-get upgrade sudo apt-get update sudo apt-get -f install dpkg -i google-chrome-stable_current_amd64.deb
之后就不會報錯了,安裝成功的話可以查看到安裝路徑以及安裝的版本:
二、下載chromedriver
要根據chrome瀏覽器的版本對應下載driver驅動的版本:
下載地址:http://npm.taobao.org/mirrors/chromedriver/
解壓后放到 /usr/bin/ 目錄下
mv chromedriver /usr/bin/
三、安裝Xvfb
sudo apt-get install xvfb
安裝好后執行:
Xvfb -ac :7 -screen 0 1280x1024x8 -extension RANDR -nolisten inet6 & export DISPLAY=:7 (和上一步的number號相同)
由於每次需要運行程序前都需要啟動一次xvfb太麻煩,所以直接寫一個開機自啟動腳本,這樣下次就直接執行程序就可以了。我們需要將腳本寫在/etc/rc.local路徑下,開機之后會執行/etc/rc.local文件中的腳本,在exit 0前面添加以下內容:
安裝Xvfb
#! /bin/bash
case "$1" in start) /usr/bin/Xvfb :7 -ac -screen 0 1280x1024x8 -extension RANDR -nolisten inet6 & export DISPLAY=:7 ;; stop) killall Xvfb ;; esac
關於錯誤:Chrome failed to start: exited abnormally
這個錯誤我遇到了兩次,第一次的時候只需要安裝Xvfb就成功解決了,可第二次我已經安裝了Xvfb且正常打開了仍然提示了這樣的錯誤,原因是因為需要在自己測試代碼里加上以下內容(很關鍵!):
// 禁用擴展 chromeOptions.addArguments("--disable-extensions"); // 使用無頭模式運行 chromeOptions.addArguments("--headless"); // 禁用GPU chromeOptions.addArguments("--display-gpu"); // 啟動無沙盒模式運行 chromeOptions.addArguments("--no-sandbox");
可能是因為chrome占內存過大而卡屏,使得chrome無法正常打開
並且記得chromedriver的權限要設置為可執行:
chmod -R 777 chromedriver