由於最近發現咨詢火狐瀏覽器打不開的問題比較多,現羅列幾點解決辦法。
1,由於selenium更新3.0的原因導致不在默認支持火狐瀏覽器,且支持的火狐瀏覽器大概在45以上的版本,所以很多都由於這個原因導致selenium在運行時打不開瀏覽器。
解決辦法有兩種:
1). 可繼續使用selenium2.x的版本,但是隨着selenium及火狐的不斷更新,時間久了始終會有點坑的。但是目前能解決,selenium2.53.6默認支持火狐47及47以下的瀏覽器。
python更新selenium的版本可用:
pip install -U selenium==2.53.6
2). 第二種辦法當然就是使用限制的selenium3.0的版本,由於不在默認支持火狐瀏覽器,且 Message: 'geckodriver' executable needs to be in PATH 這個錯誤大家應該
都不陌生了,問題如看到的一樣,需要名為geckodriver.exe的一個火狐瀏覽器driver在path中,當然解決辦法就是,下載一個geckodriver.exe並將存放的路徑添加在path中,簡單點就
直接放python的根目錄下即可,下載地址 https://github.com/mozilla/geckodriver/releases,另外需要注意下,geckodriver分32及64位的版本,版本需與瀏覽器對應。當你看到如下報錯時,Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided, and no binary flag set on the command line, 說明你的火狐瀏覽器和driver版本沒有對應上,需確保火狐及driver都是32位或64位的。
順便提一下現在新的版本,selenium=3.4.3,selenium2Library=1.8.0,火狐瀏覽器當前最新版本是55,然后geckodriver=0.18. 安裝使用的時候 請注意下geckodriver支持的火狐瀏覽器。
另外有些人可能裝了類似geckodriver=0.15的版本,只時候你可能需要降一下selenium版本方可使用,pip install -U selennium=3.0.2
3). 順便提一下,很多人現在使用的robotframework版本及ride版本都比較落后,先說明下robotframework版本最新為3.0,ride的版本為1.5.2.1.所以引起打不開瀏覽器如果
上面的已經做了,仍然打不開,可考慮更新下這兩個的版本。
pip install -U robotframework
pip install -U robotframework-ride
總結下,如果使用selenium2.x的版本,需火狐瀏覽器為47及以下的版本,如果使用selenium3.0,需確保下載有geckodriver且路徑在path中。目前selenium3.0支持火狐45及以上的版本。目前最新的火狐瀏覽器為49。
2,順便提一下谷歌及ie,由於selenium2.x默認不支持,所以更新3.0之后仍需要chromedriver.exe及iedriverserver.exe。可自行在http://chromedriver.storage.googleapis.com/index.html下載,自行百度chromedriver支持的版本吧
3,當遇到瀏覽器打開了,但是無法訪問頁面的時候,往往是由於使用了高版本的瀏覽器和低版本的selenium導致的,解決辦法同上。