Python+Selenium(1)- 環(huán)境搭建

一倾剿,Selenium 簡介

Selenium是目前最流行的web自動化測試工具,也常用于網(wǎng)絡(luò)爬蟲蚌成,已經(jīng)更新到3以上的版本前痘。

1,組件

它提供了以下web自動化測試組件:

  • Selenium IDE担忧,F(xiàn)irefox瀏覽器的一個插件芹缔,提供簡單的腳本錄制、編輯與回放功能涵妥;
  • Selenium Remote Control (RC)乖菱,是selenium 1 提供的組件,包含:Selenium Server(用于提供自動化測試服務(wù))蓬网、Selenium Client(用于執(zhí)行腳本)窒所;
  • Selenium Grid,用于對測試用例集做分布式處理(并行)帆锋,現(xiàn)已集成到selenium server中吵取;
  • WebDriver,Selenium2(包括Selenium3)拋棄了Selenium RC锯厢,而是使用WebDriver皮官。相比Selenium RC脯倒,Webdriver 的API更容易理解和使用,可讀性和可維護(hù)性也有較大提高捺氢。

因?yàn)楹竺嫖覀兊膚eb自動化測試使用的是Selenium3(即WebDriver)藻丢,這里對WebDriver做一下說明:

  • Webdriver不依賴于任何測試框架,除了必要的瀏覽器驅(qū)動摄乒,無需啟動其他進(jìn)程悠反,也不必像Selenium 1那樣需要先啟動服務(wù);

  • 設(shè)計模式:按照Server-Client的經(jīng)典設(shè)計模式設(shè)計馍佑;

  • Server端:可以是任意的瀏覽器斋否,當(dāng)腳本啟動瀏覽器時,該瀏覽器就是Server拭荤,它的職責(zé)是處理Client發(fā)送的請求并做出響應(yīng)茵臭;

  • Client端:即我們的測試代碼,測試代碼發(fā)送HTTP請求給Server(即瀏覽器)舅世,Server接受請求旦委,執(zhí)行相應(yīng)操作并返回結(jié)果;

  • 不同的瀏覽器雏亚,WebDriver需要依賴對應(yīng)的瀏覽器驅(qū)動(如 chromedriver.exe)來轉(zhuǎn)化瀏覽器的native調(diào)用社证,所以進(jìn)行Selenium自動化時,需先下載對應(yīng)的瀏覽器的驅(qū)動评凝。

2追葡,特點(diǎn)

  • 免費(fèi)開源的自動化測試工具(框架)
  • 支持多平臺:windows、linux、MAC
  • 支持多種瀏覽器:Chrome、Firefox幽告、IE、Safari谬返、Opera
  • 支持多種開發(fā)語言: java、ruby日杈、python遣铝、C、C#等
  • 支持分布式執(zhí)行測試用例集莉擒,即可并行執(zhí)行測試

不過多贅述酿炸,當(dāng)你看到這篇博客的時候,相信你已經(jīng)對selenium有了個大概的認(rèn)知涨冀。接下來我們開始在windows 10 上搭建python+selenium環(huán)境填硕。

二,Python+Selenium環(huán)境搭建

1,下載python

建議下載python 3.x版本扁眯,官方已經(jīng)停止對python 2.x版本維護(hù)更新壮莹。

windows版本官網(wǎng)下載地址:https://www.python.org/downloads/windows/

以安裝Python 3.7.7為例,進(jìn)入上面的網(wǎng)址姻檀,根據(jù)系統(tǒng) (32/64位)選擇命满,我這里選擇下載64位的

2,安裝python

雙擊下載好的文件绣版,一路默認(rèn)安裝即可周荐,這里注意勾選添加python至環(huán)境變量,這樣就不需要后續(xù)再設(shè)置環(huán)境變量了僵娃。

3,驗(yàn)證是否安裝完成

cmd窗口輸入命令:python腋妙,出現(xiàn)版本信息等則說明安裝成功默怨,且環(huán)境變量設(shè)置成功,如下

如果在上一步中骤素,未勾選添加python至環(huán)境變量匙睹,輸入python命令后會提示:不是內(nèi)部或外部命令,只需將python的安裝路徑添加至環(huán)境變量即可济竹,具體添加方法可百度痕檬。

4,安裝Selenium

cmd窗口輸入命令:pip install selenium送浊,安裝最新版本的selenium

安裝完成后可以查看版本號梦谜,命令為:pip show selenium

安裝指定版本命令為:pip install selenium==xxx

卸載命令:pip uninstall selenium

三,啟動Chrome瀏覽器

不同的瀏覽器袭景,需要安裝對應(yīng)瀏覽器的Selenium驅(qū)動才能進(jìn)行自動化測試唁桩。首先介紹Chrome瀏覽器。

1耸棒,安裝Chrome瀏覽器

沒有安裝Chrome瀏覽器荒澡,則需先安裝(建議官方地址下載)

官方下載地址為:https://www.google.cn/chrome/

下載安裝過程很機(jī)械,不做過多說明与殃。

2单山,查看Chrome版本

打開Chrome瀏覽器 --> 輸入網(wǎng)址:chrome://settings/help --> 按回車鍵,如下:

3幅疼,下載驅(qū)動 chromedriver

下載地址:http://chromedriver.storage.googleapis.com/index.html

也可以選擇淘寶鏡像下載米奸,地址為:http://npm.taobao.org/mirrors/chromedriver/

低版本Chrome瀏覽器已經(jīng)很少使用,就不做對應(yīng)下載說明了爽篷。更新版本的Chrome瀏覽器(從70~87)躏升,只需根據(jù)自己電腦上安裝的Chrome瀏覽器版本下載對應(yīng)的chromedriver即可,如下:

我電腦上的Chrome瀏覽器版本為 86.0.4240.111(正式版本) (64 位)狼忱,選擇下載如下:

注意:這里按照chrome版本查找對應(yīng)的chromedriver(只需對應(yīng)大版本就行)下載即可膨疏,比如我的瀏覽器版本是86.0.4240.111一睁,chromedriver里沒有對應(yīng)的86.0.4240.111版本,下載86.0.4240.22版本就行佃却。

下載完成后者吁,解壓該zip文件得到chromedriver.exe文件,將chromedriver.exe放置在python安裝目錄的Scripts中

注意:需要將解壓出來的chromedriver.exe文件放置在Scripts中饲帅,而不是將解壓得到的chromedriver文件夾放置在Scripts中复凳,否則啟動腳本時會報錯。

4灶泵,啟動Chrome瀏覽器

腳本如下:

# -*- coding:utf-8 -*-
# @author: 給你一頁白紙

import time
from selenium import webdriver

driver = webdriver.Chrome() # 啟動瀏覽器
driver.get("https://www.baidu.com") # 打開某個網(wǎng)址
time.sleep(10)
driver.quit()   # 關(guān)閉瀏覽器

注意:get()方法中URL要填寫完整育八,如:"https://www.baidu.com",而不是"www.baidu.com"赦邻,否則會報錯

運(yùn)行腳本髓棋,啟動Chrome瀏覽器并打開百度網(wǎng)址,如下:

四惶洲,啟動火狐瀏覽器(Firefox)

1按声,安裝火狐瀏覽器

官網(wǎng)下載地址:https://www.firefox.com.cn/

安裝過程不贅述。

2恬吕,查看火狐瀏覽器版本

打開火狐瀏覽器签则,點(diǎn)擊右上角"菜單"按鈕進(jìn)行查看,步驟如下:

我這里的火狐瀏覽器版本為:82.0.2 (64 位)

3铐料,下載驅(qū)動 geckodriver

selenium 3 只支持Firefox 48及以上版本渐裂,且需下載驅(qū)動,所以配置如下:

  • Firefox 48 及以上版本钠惩,Selenium 3.X + FireFox驅(qū)動(geckodriver)
  • Firefox 47 及以下版本芯义,Selenium 2.X,內(nèi)置驅(qū)動妻柒,無需下載

geckodriver下載地址:https://github.com/mozilla/geckodriver/releases

我這里選擇目前最新的版本下載(瀏覽器為64位)扛拨,如下:

如果按照后續(xù)步驟不能啟動瀏覽器,可以嘗試刪除該版本的geckodriver下載更低的版本的geckodriver举塔。

下載后解壓文件绑警,將解壓后得到的 geckodriver.exe 文件放置在python安裝目錄的Scripts中(同chromedriver.exe),如下:

4央渣,啟動Chrome瀏覽器

腳本如下:

# -*- coding:utf-8 -*-
# @author: 給你一頁白紙

import time
from selenium import webdriver

driver = webdriver.Firefox() # 啟動瀏覽器
driver.get("https://www.baidu.com") # 打開某個網(wǎng)址
time.sleep(10)
driver.quit()   # 關(guān)閉瀏覽器

運(yùn)行腳本计盒,啟動Firefox瀏覽器并打開百度網(wǎng)址,如下:

五芽丹,啟動IE瀏覽器

windows系統(tǒng)自帶IE瀏覽器北启,無需下載。

1,查看IE瀏覽器版本

打開IE瀏覽器 --> 點(diǎn)擊右上角"設(shè)置"圖標(biāo) --> 點(diǎn)擊"關(guān)于 Internet Explorer"按鈕咕村,查看

我電腦上IE版本為IE 11场钉。

2,下載驅(qū)動 IEDriverServer

Selenium3 只支持IE 9及以上版本懈涛,所以這里建議:

  • IE 9及以上版本逛万,Selenium3.X + IE驅(qū)動 (IEDriverServer)
  • IE 8及以下版本,Selenium2.X + IE驅(qū)動 (IEDriverServer)

IEDriverServer下載地址如下(官網(wǎng)下載速度較慢批钠,也可以使用淘寶鏡像下載):

官網(wǎng)下載地址:<u style="">http://selenium-release.storage.googleapis.com/index.html</u>

淘寶鏡像下載地址:https://npm.taobao.org/mirrors/selenium/

因?yàn)闆]有找到不同版本的IE瀏覽器對應(yīng)的驅(qū)動版本宇植,所以我這里直接下載最新的版本,如下:

下載后解壓該zip文件埋心,同樣的指郁,將解壓后得到的IEDriverServer.exe放置在python安裝目錄的Scripts中,如下:

3拷呆,啟動IE瀏覽器

首先要禁止啟用IE瀏覽器的保護(hù)模式闲坎,步驟如下:

打開瀏覽器 --> 點(diǎn)擊左上角"設(shè)置"圖標(biāo) --> Internet選項(xiàng) --> 安全,將四個選項(xiàng)中的"啟用保護(hù)模式"的勾選去掉洋腮,如下:

編寫腳本如下:

# -*- coding:utf-8 -*-
# @author: 給你一頁白紙

import time
from selenium import webdriver

driver = webdriver.Ie() # 啟動瀏覽器
driver.get("https://www.baidu.com") # 打開某個網(wǎng)址
time.sleep(10)
driver.quit()   # 關(guān)閉瀏覽器

運(yùn)行腳本,啟動IE瀏覽器并打開百度網(wǎng)址手形,如下:

運(yùn)行腳本打開IE瀏覽器時啥供,遇到報錯如下:
selenium.common.exceptions.SessionNotCreatedException: Message: Unexpected error launching Internet Explorer. Browser zoom level was set to 150%. It should be set to 100%

解決方法:打開瀏覽器 --> 點(diǎn)擊左上角"設(shè)置"圖標(biāo) --> 選擇"縮放",修改成100%即可库糠。

至此伙狐,windows上Python + Selenium環(huán)境便搭建完成,并且能通過腳本啟動Chrome瞬欧、Firefox贷屎、IE瀏覽器。

實(shí)際測試過程中艘虎,大家可根據(jù)需要選擇相應(yīng)的瀏覽器進(jìn)行web自動化測試唉侄。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市野建,隨后出現(xiàn)的幾起案子属划,更是在濱河造成了極大的恐慌,老刑警劉巖候生,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件同眯,死亡現(xiàn)場離奇詭異,居然都是意外死亡唯鸭,警方通過查閱死者的電腦和手機(jī)须蜗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人明肮,你說我怎么就攤上這事菱农。” “怎么了晤愧?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵大莫,是天一觀的道長。 經(jīng)常有香客問我官份,道長只厘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任舅巷,我火速辦了婚禮羔味,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘钠右。我一直安慰自己赋元,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布飒房。 她就那樣靜靜地躺著搁凸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪狠毯。 梳的紋絲不亂的頭發(fā)上护糖,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機(jī)與錄音嚼松,去河邊找鬼嫡良。 笑死,一個胖子當(dāng)著我的面吹牛献酗,可吹牛的內(nèi)容都是我干的寝受。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼罕偎,長吁一口氣:“原來是場噩夢啊……” “哼很澄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起颜及,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤痴怨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后器予,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浪藻,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年乾翔,在試婚紗的時候發(fā)現(xiàn)自己被綠了爱葵。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片施戴。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖萌丈,靈堂內(nèi)的尸體忽然破棺而出赞哗,到底是詐尸還是另有隱情,我是刑警寧澤辆雾,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布肪笋,位于F島的核電站,受9級特大地震影響度迂,放射性物質(zhì)發(fā)生泄漏藤乙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一惭墓、第九天 我趴在偏房一處隱蔽的房頂上張望坛梁。 院中可真熱鬧,春花似錦腊凶、人聲如沸划咐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽褐缠。三九已至,卻和暖如春风瘦,著一層夾襖步出監(jiān)牢的瞬間队魏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工弛秋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留器躏,地道東北人俐载。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓蟹略,卻偏偏與公主長得像,于是被迫代替她去往敵國和親遏佣。 傳聞我的和親對象是個殘疾皇子挖炬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345