天天看點

python chromedriver with selenium on linux

為要考慮寫一個python應用, 查資料時無意發現老朋友selenium已經發展到和chrome很深入的階段。

chrome為了配合自動測試的需求,甚至專門開發chromedriver這樣的東西,一時技癢嘗試了一下

環境是前面搭好的centos7

google.com/chrome是牆外無法通路了,幸好還有它自家分号

https://www.google.cn/chrome/

windows下通路自動判斷給的是windows安裝包,要拉到最下選擇其他平台的,然後選擇“64 位 .rpm(适用于 Fedora/openSUSE)”,得到的是一個

google-chrome-stable_current_x86_64.rpm

然後yum安裝chrome以及中文字型

# yum install google-chrome-stable_current_x86_64.rpm 
# yum install google-noto-sans-simplified-chinese-fonts
           

selenium略為麻煩,它要從python安裝,要用到pip

pip又不在centos的标準repo裡,我選擇先安裝epel源,

# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum install python2-pip python2-wheel
# pip install selenium
           

chromedriver自身位址也在牆外,幸好國内有個mirror

http://npm.taobao.org/mirrors/chromedriver

選擇了上面最新的76.0.3865.10,雖然我下載下傳的chrome版本以及到了76.0.3865.100

但大版本一緻就沒問題,下載下傳後是個zip檔案 chromedriver_linux64.zip

unzip 解壓之得到一個單獨的可執行檔案 chromedriver

終于可以開始小福利一下,誰讓csdn上python主和selenium下面最熱的居然不是自動測試,而是各種福利呢

先解決chrome不能直接在centos伺服器環境裡啟動的事

# export DISPLAY=192.168.0.102:0.0    
## 伺服器上沒有安裝Xserver,不過MobaXterm自帶的有,很好很友善
# ./chromedriver &
# vim demo.py
           

然後在demo.py裡輸入代碼, 為免廣告嫌疑我把網址馬賽克了

from selenium import webdriver

cap = webdriver.DesiredCapabilities.CHROME.copy()
browser = webdriver.Remote(command_executor="http://localhost:9515", desired_capabilities=cap);
browser.get('https://手工馬賽克/tags-all.html')
           

福利截圖被攔截了,沒得妹子看

成功後位址欄下面有一行"Chrome is being controlled by automated test software"

對測試和爬蟲需求來說,chrome還有個更強大的特性是headless模式,全程無視窗模拟真實浏覽器

這次不打算往下撸了,有空再搞