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