版本可能在調試調用高版本瀏覽器會出現(xiàn)系統(tǒng)提示報錯,在排除代碼錯誤的前提,可能是跟selenium版本與目標調用瀏覽器版本不兼容。">
一、概述
我之前用過selenium 2.x版本操作老版本的firefox,很流暢,F(xiàn)在瀏覽器和selenium都升級后問題隨之而來。
1.<selenium2.x> 版本可能在調試調用高版本瀏覽器會出現(xiàn)系統(tǒng)提示報錯,在排除代碼錯誤的前提,可能是跟selenium版本與目標調用瀏覽器版本不兼容。
<selenium3.x>版本則一定會出現(xiàn),官方提示了新版本的selenium調用瀏覽器,需要到指定網(wǎng)站下載一個類似“補丁文件”的東東(比如,selenium調用Firefox高版本的geckodriver文件)
2.系統(tǒng)中的瀏覽器可能存在你不留意的更新升級,而且主流瀏覽器對selenium的控制現(xiàn)已普遍要用瀏覽器官方提供的控件補丁,才能正常調用操作瀏覽器。
二、問題場景復原
工作環(huán)境
1.Ubantu 14.04版本
2.Python 2.7 (本問題和python版本無關)
3.沒有提前下載瀏覽器對selenium的對應補丁文件時候
4.selenium調用本地Firefox瀏覽器或者Chrome瀏覽器(其他主流瀏覽器高版本同樣可能出錯)
代碼
#coding:utf-8
from selenium import webdriver
‘’‘ 這是一段selenium代碼’‘’
browser = webdriver.Firefox()
browser.get("http://docs.seleniumhq.org/")
browser.close()
如果你調用的是Chrome瀏覽器,我們換成調用Chrome瀏覽器方法
browser = webdriver.Chrome()
注意:代碼沒有錯誤,錯誤的是selenium與高版本瀏覽器不兼容
報錯信息
調用Firfox瀏覽器方法報錯
調用Chrome瀏覽器方法報錯
報錯解讀
1 對于調用Firefox瀏覽器,系統(tǒng)提示我們,缺少一個叫geckodriver的文件,并且需要設置路徑指向
2 對于調用Chrome瀏覽器,系統(tǒng)提示我們,缺少一個叫chromedriver的文件,并且需要設置路徑指向
三、解決辦法
Step1.你需要從selenium官網(wǎng)的提供網(wǎng)址針對不通瀏覽器下載這類補丁文件(每個主流瀏覽器的補丁文件都不相同)
官方提供瀏覽器driver補丁文件下載地址:
selenium提供瀏覽器官方driver補丁文件下載.
Step2.把下載后的壓縮包,解壓縮后的文件,放在瀏覽器文件夾下,并且在終端命令行下配置環(huán)境變量
舉例說明:
1.我把調用Firefox瀏覽器的補丁文件geckodriver文件解壓縮后放在我本地的Firefox文件夾下
2.對照geckodriver所在位置,我在終端執(zhí)行一條指令進行配置路徑:
#export PATH=$PATH:/usr/lib/firefox
注意:我們配置環(huán)境變量指向的是瀏覽器補丁文件所在瀏覽器文件的位置,且不能指向這個文件。
#export PATH=$PATH:/usr/lib/firefox/geckodriver
如果這么輸入終端命令會出現(xiàn)如下報錯:
3.關于Windows環(huán)境下,MacOS環(huán)境下,都需各位少俠們自己配置其相同原理的環(huán)境變量的操作,才能有效。