目的是打算用python控制瀏覽器。把整個過程記錄下來,但願能給你們節省時間。
最折騰人的,就是各類軟件的版本了吧。
先上個軟件版本:
樹莓派3B
iceweasel 52+selenium 3.3 +geckodriver 15.0
python2.7
firefox在樹莓派中,名稱爲iceweasel。iceweasel,selenium,geckodriver均有版本對應關係,其中一個搞錯,極可能就報錯。
過程python
得先apt-get update下git
sudo apt-get update
sudo apt-get install iceweasel
查看iceweasel的版本,確保是52的github
iceweasel -version
個人是52.7.3web
對於52.7.3的iceweasel,江湖傳說得配0.15.0版本的geckodriver:下載地址
這裏要注意選擇arm的編譯版本
下載下來後,對其進行解壓縮,獲得geckodriver文件,將此文件的權限,設置爲777chrome
sudo chmod -R 777 geckodriver
將geckodeiver文件,移動到環境變量/usr/local/bin目錄下
windows
Selenium的版本要3.3以上才能夠。咱們就用3.3吧,防止出什麼幺蛾子瀏覽器
sudo pip install selenium==3.3
這樣安裝就完成了,下面咱們來準備python測試的代碼:python2.7
from selenium import webdriver browser = webdriver.FireFox() browser.get('http://www.baidu.com') browser.get('http://www.qq.com')
功能是先訪問百度,而後再訪問qq的網站。python運行後,能順利打開firefox,而且完成這個過程,說明環境安裝成功。
性能
對兩點進行下記錄
1.不少網上的博文,對geckodriver文件放在哪裏沒有作說明,我本身嘗試了,假如隨便放在某個目錄下。例如~目錄。那麼在python代碼的browser = webdriver.FireFox()中,就要傳入geckodriver的路徑做爲參數。可是我發現,在webdriver.FireFox()中指定了geckodriver完整路徑,會報一個很奇怪的錯誤。說指定的路徑不是目錄...我查了不少教程,都是說此處指定的是文件的路徑名,而不是文件夾的名字。因此有點匪夷所思。還望知道的朋友指教。
2.關於chromium瀏覽器
原本我是打算使用selennium來控制chromium的,畢竟樹莓派3B自帶的chreomium。性能感受也要好點。可是嘗試到最後,報一個狀態碼爲127的錯誤,網上搜了下,可能仍是驅動版本的問題。網上有一篇博客講的比較詳細:連接 文章中,特別注意本身樹莓派上的chromium的version。按文章的提示,個人樹莓派上的版本,就沒找到對應的驅動。chromium和chrome用的同一套驅動,其餘文章還提到chrome和driver之間版本對應關係:連接。可是,隨着版本的維護,比較新的版本,已經不支持arm的Linux了。網上成功經驗的資料相對也比較少,大多也都是遇到了各類問題。測試
3.若考慮windows下安裝,參考此文。臨時查到的,放到這裏,備忘。連接 特別感謝此文,少走了莫大的彎路:https://blog.csdn.net/DDQ_DQ/article/details/77367739