Selenium是目前最流行的web自動化測試工具,也常用於網絡爬蟲,已經更新到3以上的版本。
它提供了以下web自動化測試組件:
Selenium IDE,Firefox浏覽器的一個插件,提供簡單的腳本錄制、編輯與回放功能;
Selenium Remote Control (RC),是selenium 1 提供的組件,包含:Selenium Server(用於提供自動化測試服務)、Selenium Client(用於執行腳本);
Selenium Grid,用於對測試用例集做分布式處理(並行),現已集成到selenium server中;
WebDriver,Selenium2(包括Selenium3)拋棄了Selenium RC,而是使用WebDriver。相比Selenium RC,Webdriver 的API更容易理解和使用,可讀性和可維護性也有較大提高。
因為後面我們的web自動化測試使用的是Selenium3(即WebDriver),這裡對WebDriver做一下說明:
Webdriver不依賴於任何測試框架,除了必要的浏覽器驅動,無需啟動其他進程,也不必像Selenium 1那樣需要先啟動服務;
設計模式:按照Server-Client的經典設計模式設計;
Server端:可以是任意的浏覽器,當腳本啟動浏覽器時,該浏覽器就是Server,它的職責是處理Client發送的請求並做出響應;
Client端:即我們的測試代碼,測試代碼發送HTTP請求給Server(即浏覽器),Server接受請求,執行相應操作並返回結果;
不同的浏覽器,WebDriver需要依賴對應的浏覽器驅動(如 chromedriver.exe)來轉化浏覽器的native調用,所以進行Selenium自動化時,需先下載對應的浏覽器的驅動。
免費開源的自動化測試工具(框架)
支持多平台:windows、linux、MAC
支持多種浏覽器:Chrome、Firefox、IE、Safari、Opera
支持多種開發語言: java、ruby、python、C、C#等
支持分布式執行測試用例集,即可並行執行測試
不過多贅述,當你看到這篇博客的時候,相信你已經對selenium有了個大概的認知。接下來我們開始在windows 10 上搭建python+selenium環境。
建議下載python 3.x版本,官方已經停止對python 2.x版本維護更新。
windows版本官網下載地址:Python Releases for Windows | Python.org
以安裝Python 3.7.7為例,進入上面的網址,根據系統 (32/64位)選擇,我這裡選擇下載64位的
雙擊下載好的文件,一路默認安裝即可,這裡注意勾選添加python至環境變量,這樣就不需要後續再設置環境變量了。
cmd窗口輸入命令:python,出現版本信息等則說明安裝成功,且環境變量設置成功,如下
如果在上一步中,未勾選添加python至環境變量,輸入python命令後會提示:不是內部或外部命令,只需將python的安裝路徑添加至環境變量即可,具體添加方法可百度。
cmd窗口輸入命令:pip install selenium,安裝最新版本的selenium
安裝完成後可以查看版本號,命令為:pip show selenium
安裝指定版本命令為:pip install selenium==xxx
卸載命令:pip uninstall selenium
不同的浏覽器,需要安裝對應浏覽器的Selenium驅動才能進行自動化測試。首先介紹Chrome浏覽器。
沒有安裝Chrome浏覽器,則需先安裝(建議官方地址下載)
官方下載地址為:Google Chrome 網絡浏覽器
下載安裝過程很機械,不做過多說明。
打開Chrome浏覽器 --> 輸入網址:chrome://settings/help --> 按回車鍵,如下:
下載地址:http://chromedriver.storage.googleapis.com/index.html
也可以選擇淘寶鏡像下載,地址為:CNPM Binaries Mirror
低版本Chrome浏覽器已經很少使用,就不做對應下載說明了。更新版本的Chrome浏覽器(從70~87),只需根據自己電腦上安裝的Chrome浏覽器版本下載對應的chromedriver即可,如下:
我電腦上的Chrome浏覽器版本為 86.0.4240.111(正式版本) (64 位),選擇下載如下:
注意:這裡按照chrome版本查找對應的chromedriver(只需對應大版本就行)下載即可,比如我的浏覽器版本是86.0.4240.111,chromedriver裡沒有對應的86.0.4240.111版本,下載86.0.4240.22版本就行。
下載完成後,解壓該zip文件得到chromedriver.exe文件,將chromedriver.exe放置在python安裝目錄的Scripts中
注意:需要將解壓出來的chromedriver.exe文件放置在Scripts中,而不是將解壓得到的chromedriver文件夾放置在Scripts中,否則啟動腳本時會報錯。
腳本如下:
# -*- coding:utf-8 -*-
# @author: 給你一頁白紙
import time
from selenium import webdriver
driver = webdriver.Chrome() # 啟動浏覽器
driver.get("https://www.baidu.com") # 打開某個網址
time.sleep(10)
driver.quit() # 關閉浏覽器
注意:get()方法中URL要填寫完整,如:"https://www.baidu.com",而不是"www.baidu.com",否則會報錯
運行腳本,啟動Chrome浏覽器並打開百度網址,如下:
官網下載地址:Firefox 火狐浏覽器 - 全新、安全、快速 | 官方最新下載
安裝過程不贅述。
打開火狐浏覽器,點擊右上角"菜單"按鈕進行查看,步驟如下:
我這裡的火狐浏覽器版本為:82.0.2 (64 位)
selenium 3 只支持Firefox 48及以上版本,且需下載驅動,所以配置如下:
Firefox 48 及以上版本,Selenium 3.X + FireFox驅動(geckodriver)
Firefox 47 及以下版本,Selenium 2.X,內置驅動,無需下載
geckodriver下載地址:Releases · mozilla/geckodriver · GitHub
我這裡選擇目前最新的版本下載(浏覽器為64位),如下:
如果按照後續步驟不能啟動浏覽器,可以嘗試刪除該版本的geckodriver下載更低的版本的geckodriver。
下載後解壓文件,將解壓後得到的 geckodriver.exe 文件放置在python安裝目錄的Scripts中(同chromedriver.exe),如下:
腳本如下:
# -*- coding:utf-8 -*-
# @author: 給你一頁白紙
import time
from selenium import webdriver
driver = webdriver.Firefox() # 啟動浏覽器
driver.get("https://www.baidu.com") # 打開某個網址
time.sleep(10)
driver.quit() # 關閉浏覽器
運行腳本,啟動Firefox浏覽器並打開百度網址,如下:
windows系統自帶IE浏覽器,無需下載。
打開IE浏覽器 --> 點擊右上角"設置"圖標 --> 點擊"關於 Internet Explorer"按鈕,查看
我電腦上IE版本為IE 11。
Selenium3 只支持IE 9及以上版本,所以這裡建議:
IE 9及以上版本,Selenium3.X + IE驅動 (IEDriverServer)
IE 8及以下版本,Selenium2.X + IE驅動 (IEDriverServer)
IEDriverServer下載地址如下(官網下載速度較慢,也可以使用淘寶鏡像下載):
官網下載地址:http://selenium-release.storage.googleapis.com/index.html
淘寶鏡像下載地址:CNPM Binaries Mirror
因為沒有找到不同版本的IE浏覽器對應的驅動版本,所以我這裡直接下載最新的版本,如下:
下載後解壓該zip文件,同樣的,將解壓後得到的IEDriverServer.exe放置在python安裝目錄的Scripts中,如下:
首先要禁止啟用IE浏覽器的保護模式,步驟如下:
打開浏覽器 --> 點擊左上角"設置"圖標 --> Internet選項 --> 安全,將四個選項中的"啟用保護模式"的勾選去掉,如下:
編寫腳本如下:
# -*- coding:utf-8 -*-
# @author: 給你一頁白紙
import time
from selenium import webdriver
driver = webdriver.Ie() # 啟動浏覽器
driver.get("https://www.baidu.com") # 打開某個網址
time.sleep(10)
driver.quit() # 關閉浏覽器
運行腳本,啟動IE浏覽器並打開百度網址,如下:
運行腳本打開IE浏覽器時,遇到報錯如下:
selenium.common.exceptions.SessionNotCreatedException: Message: Unexpected error launching Internet Explorer. Browser zoom level was set to 150%. It should be set to 100%
解決方法:打開浏覽器 --> 點擊左上角"設置"圖標 --> 選擇"縮放",修改成100%即可。
至此,windows上Python + Selenium環境便搭建完成,並且能通過腳本啟動Chrome、Firefox、IE浏覽器。
實際測試過程中,大家可根據需要選擇相應的浏覽器進行web自動化測試。