<Python> Selenium調(diào)用高版本瀏覽器異常問(wèn)題

本文是作者"一葉染秋"原創(chuàng)虑稼,轉(zhuǎn)載請(qǐng)注明出處和作者:
http://www.reibang.com/p/62ed9231f824

一、概述

我之前用過(guò)selenium 2.x版本操作老版本的firefox,很流暢∫闰穑現(xiàn)在瀏覽器和selenium都升級(jí)后問(wèn)題隨之而來(lái)。

  • 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)用操作瀏覽器。

二鼠证、問(wèn)題場(chǎng)景復(fù)原

工作環(huán)境

  • 1.Ubantu 14.04版本
  • 2.Python 2.7 (本問(wèn)題和python版本無(wú)關(guān))
  • 3.沒(méi)有提前下載瀏覽器對(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()

注意:代碼沒(méi)有錯(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è)叫geckodriver的文件,并且需要設(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)境變量

舉例說(shuō)明:

  • 1.我把調(diào)用Firefox瀏覽器的補(bǔ)丁文件geckodriver文件解壓縮后放在我本地的Firefox文件夾下

  • 2.對(duì)照geckodriver所在位置,我在終端執(zhí)行一條指令進(jìn)行配置路徑:
    #export PATH=$PATH:/usr/lib/firefox

  • 3 或者直接編輯:
    vim /etc/environment 文件
    PATH = ':/usr/lib/firefox/geckodriver' 把geckodriver的路徑加入環(huán)境 變量文件中

注意:
1.必須是在管理員權(quán)限下配置(linux: root#)
2.如果你的配置后,程序依舊提示報(bào)錯(cuò)奕锌,那么請(qǐng)重啟電腦趁桃!
3.我們配置環(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)境變量的操作,才能有效罕模。

四蒿讥、一個(gè)小延伸

此時(shí)此刻估計(jì)很多小伙伴們和一樣倔強(qiáng)固執(zhí),我就是不想下載那個(gè)XXX瀏覽器補(bǔ)丁文件,我就是要用低版本selenium調(diào)用指定位置低版本瀏覽器桃犬。

"固執(zhí),是盤(pán)踞于心靈的根源性沖動(dòng)之一 "行楞。
美國(guó)哲學(xué)家攒暇、詩(shī)人 桑塔亞那

原先使用的是selenium 版本低(目前我在pip源上顯示可提供的最低版本也是2.4x,大家可以從別的網(wǎng)站上找到老版本的selenium源碼)子房,低版本的瀏覽器文件需要大家自行查找下載形用。
ps:低版本的selenium能調(diào)用打開(kāi)高版本的瀏覽器,但是會(huì)出現(xiàn)閃退等異持ず迹現(xiàn)象

代碼

    #coding:utf-8
    from selenium import webdriver
    from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
    
    ffBinary = FirefoxBinary(firefox_path="/usr/lib/firefox/firefox.sh")
    browser = webdriver.Firefox(firefox_binary=ffBinary)
    browser.get("http://docs.seleniumhq.org/")

代碼說(shuō)明

本處的路徑是相對(duì)路徑,py文件和下載的firefox瀏覽器文件夾是同一級(jí),如果你的py文件路徑和firefox文件夾路徑不通田度,要注明絕對(duì)路徑。
注意:此處的firefox文件是ubantu下的,如果是Win平臺(tái)下的firefox文件應(yīng)該是firefox.exe啟動(dòng)文件

這樣修改完之后躯砰,你的舊版本selenium配合指定路徑下的老版本瀏覽器就開(kāi)始那些年熟悉的操作了。携丁。琢歇。


-閑言碎語(yǔ)-

本文的寫(xiě)作緣由是因?yàn)橐淮魏芎?jiǎn)單的調(diào)試而消耗了本不應(yīng)該花費(fèi)的時(shí)間長(zhǎng)度,暴露了自己的一些問(wèn)題梦鉴,我覺(jué)得我不寫(xiě)出來(lái)我都虧得慌李茫。

因?yàn)橛龅絾?wèn)題報(bào)錯(cuò)或者系統(tǒng)bug時(shí)候,每個(gè)的解決問(wèn)題的方法因自己的能力水平和固化的思維邏輯所影像肥橙,這就是導(dǎo)致每個(gè)人解決問(wèn)題的能力不通和效率高低的一種原因魄宏。

我在這里總結(jié)了一點(diǎn)我的解決問(wèn)題小思路想和和大家探討交流

  • 1.根據(jù)系統(tǒng)提示信息確定問(wèn)題位置出處(判斷是多個(gè)原因還是單個(gè)原因),排除人為低級(jí)失誤存筏。
  • 2.首先應(yīng)該去官方網(wǎng)站去檢索問(wèn)題關(guān)鍵詞宠互,查找解決方案,最為直接有效椭坚,降低廣域搜索解決問(wèn)題的原因予跌,因?yàn)槌R?guī)出錯(cuò),官方的解決方案還是比較全面的
  • 3.不能從官方網(wǎng)站上解決問(wèn)題善茎,就直接利用科學(xué)瀏覽器檢索“系統(tǒng)報(bào)錯(cuò)部分的提示語(yǔ)”券册,或者是從各大知名平臺(tái)進(jìn)行檢索問(wèn)題關(guān)鍵詞尋求答案。
  • 4.如果你有個(gè)技術(shù)扛把子的同事,同時(shí)他比較好相處烁焙,那就不要舍近求
    遠(yuǎn)航邢。

切記不要自己一個(gè)勁和自己的報(bào)錯(cuò)代碼死較真,當(dāng)局者迷何必自己折磨自己骄蝇,在外部尋求解決方案膳殷,要相信你犯過(guò)的錯(cuò)別人都犯過(guò)(一碗雞湯,各位少俠請(qǐng)喝下)乞榨。

-鳴謝-

本次對(duì)我提供過(guò)幫助的秽之,一位真誠(chéng)無(wú)私且喜歡《秦時(shí)明月》的技術(shù)員朋友ZYJ
(大家都覺(jué)得:你側(cè)目的眼神很YD)
我的朋友千千萬(wàn),他們都很可愛(ài)吃既。

-尾語(yǔ)-

嘮嘮叨叨啰啰嗦嗦寫(xiě)完了考榨,我<簡(jiǎn)書(shū)>上的第一篇原創(chuàng)文章,的確鹦倚,我寫(xiě)的很自嗨(因?yàn)槎际俏业那袑?shí)體會(huì)啊河质,魂淡),還因?yàn)槲也皇且粋€(gè)人在戰(zhàn)斗震叙。

如果文章內(nèi)容有出錯(cuò)和相關(guān)意見(jiàn)想法掀鹅,歡迎大家指正,我都會(huì)及時(shí)改正.
十一快到啦媒楼,散花~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末乐尊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子划址,更是在濱河造成了極大的恐慌扔嵌,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,430評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件夺颤,死亡現(xiàn)場(chǎng)離奇詭異痢缎,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)世澜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén)独旷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人寥裂,你說(shuō)我怎么就攤上這事嵌洼。” “怎么了封恰?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,834評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵咱台,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我俭驮,道長(zhǎng)回溺,這世上最難降的妖魔是什么春贸? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,543評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮遗遵,結(jié)果婚禮上萍恕,老公的妹妹穿的比我還像新娘。我一直安慰自己车要,他們只是感情好允粤,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著翼岁,像睡著了一般类垫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上琅坡,一...
    開(kāi)封第一講書(shū)人閱讀 52,196評(píng)論 1 308
  • 那天悉患,我揣著相機(jī)與錄音,去河邊找鬼榆俺。 笑死售躁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的茴晋。 我是一名探鬼主播陪捷,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼诺擅!你這毒婦竟也來(lái)了市袖?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,671評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤烁涌,失蹤者是張志新(化名)和其女友劉穎苍碟,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體烹玉,經(jīng)...
    沈念sama閱讀 46,221評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡驰怎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評(píng)論 3 340
  • 正文 我和宋清朗相戀三年阐滩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了二打。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,444評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡掂榔,死狀恐怖继效,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情装获,我是刑警寧澤瑞信,帶...
    沈念sama閱讀 36,134評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站穴豫,受9級(jí)特大地震影響凡简,放射性物質(zhì)發(fā)生泄漏逼友。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評(píng)論 3 333
  • 文/蒙蒙 一秤涩、第九天 我趴在偏房一處隱蔽的房頂上張望帜乞。 院中可真熱鬧,春花似錦筐眷、人聲如沸黎烈。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,285評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)照棋。三九已至,卻和暖如春武翎,著一層夾襖步出監(jiān)牢的瞬間烈炭,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,399評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工后频, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留梳庆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,837評(píng)論 3 376
  • 正文 我出身青樓卑惜,卻偏偏與公主長(zhǎng)得像膏执,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子露久,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容