Python+Selenium(1)- 環境搭建

給你一頁白紙發表於2020-11-04

一,Selenium 簡介

Selenium是目前最流行的web自動化測試工具,也常用於網路爬蟲,已經更新到3以上的版本。

1,元件

它提供了以下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自動化時,需先下載對應的瀏覽器的驅動。

2,特點

  • 免費開源的自動化測試工具(框架)

  • 支援多平臺:windows、linux、MAC

  • 支援多種瀏覽器:Chrome、Firefox、IE、Safari、Opera

  • 支援多種開發語言: java、ruby、python、C、C#等

  • 支援分散式執行測試用例集,即可並行執行測試

不過多贅述,當你看到這篇部落格的時候,相信你已經對selenium有了個大概的認知。接下來我們開始在windows 10 上搭建python+selenium環境。

二,Python+Selenium環境搭建

1,下載python

建議下載python 3.x版本,官方已經停止對python 2.x版本維護更新。

windows版本官網下載地址:https://www.python.org/downloads/windows/

以安裝Python 3.7.7為例,進入上面的網址,根據系統 (32/64位)選擇,我這裡選擇下載64位的

2,安裝python

雙擊下載好的檔案,一路預設安裝即可,這裡注意勾選新增python至環境變數,這樣就不需要後續再設定環境變數了。

3,驗證是否安裝完成

cmd視窗輸入命令:python,出現版本資訊等則說明安裝成功,且環境變數設定成功,如下

如果在上一步中,未勾選新增python至環境變數,輸入python命令後會提示:不是內部或外部命令,只需將python的安裝路徑新增至環境變數即可,具體新增方法可百度。

4,安裝Selenium

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

安裝完成後可以檢視版本號,命令為:pip show selenium

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

解除安裝命令:pip uninstall selenium

三,啟動Chrome瀏覽器

不同的瀏覽器,需要安裝對應瀏覽器的Selenium驅動才能進行自動化測試。首先介紹Chrome瀏覽器。

1,安裝Chrome瀏覽器

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

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

下載安裝過程很機械,不做過多說明。

2,檢視Chrome版本

開啟Chrome瀏覽器 --> 輸入網址:chrome://settings/help --> 按Enter鍵,如下:

3,下載驅動 chromedriver

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

也可以選擇淘寶映象下載,地址為:http://npm.taobao.org/mirrors/chromedriver/

低版本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中,否則啟動指令碼時會報錯。

4,啟動Chrome瀏覽器

指令碼如下:

# -*- 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)

1,安裝火狐瀏覽器

官網下載地址:https://www.firefox.com.cn/

安裝過程不贅述。

2,檢視火狐瀏覽器版本

開啟火狐瀏覽器,點選右上角"選單"按鈕進行檢視,步驟如下:

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

3,下載驅動 geckodriver

selenium 3 只支援Firefox 48及以上版本,且需下載驅動,所以配置如下:

  • Firefox 48 及以上版本,Selenium 3.X + FireFox驅動(geckodriver)

  • Firefox 47 及以下版本,Selenium 2.X,內建驅動,無需下載

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

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

如果按照後續步驟不能啟動瀏覽器,可以嘗試刪除該版本的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") # 開啟某個網址
time.sleep(10)
driver.quit()   # 關閉瀏覽器

執行指令碼,啟動Firefox瀏覽器並開啟百度網址,如下:

五,啟動IE瀏覽器

windows系統自帶IE瀏覽器,無需下載。

1,檢視IE瀏覽器版本

開啟IE瀏覽器 --> 點選右上角"設定"圖示 --> 點選"關於 Internet Explorer"按鈕,檢視

我電腦上IE版本為IE 11。

2,下載驅動 IEDriverServer

Selenium3 只支援IE 9及以上版本,所以這裡建議:

  • IE 9及以上版本,Selenium3.X + IE驅動 (IEDriverServer)

  • IE 8及以下版本,Selenium2.X + IE驅動 (IEDriverServer)

IEDriverServer下載地址如下(官網下載速度較慢,也可以使用淘寶映象下載):

官網下載地址:http://selenium-release.storage.googleapis.com/index.html

淘寶映象下載地址:https://npm.taobao.org/mirrors/selenium/

因為沒有找到不同版本的IE瀏覽器對應的驅動版本,所以我這裡直接下載最新的版本,如下:

下載後解壓該zip檔案,同樣的,將解壓後得到的IEDriverServer.exe放置在python安裝目錄的Scripts中,如下:

3,啟動IE瀏覽器

首先要禁止啟用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自動化測試。

相關文章