一倾剿,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自動化測試唉侄。