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/](https://www.python.org/downloads/windows/)
以安裝Python 3.7.7為例,進入上面的網址,根據系統 (32/64位)選擇,我這裡選擇下載64位的
![](https://upload-images.jianshu.io/upload_images/11175909-dadc059d8e3bde30.png!thumbnail?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
### 2,安裝python
雙擊下載好的檔案,一路預設安裝即可,這裡注意勾選新增python至環境變數,這樣就不需要後續再設定環境變量了。
![](https://upload-images.jianshu.io/upload_images/11175909-aa7a13d8d2f8c5a3.png!thumbnail?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
### 3,驗證是否安裝完成
cmd視窗輸入命令:python,出現版本資訊等則說明安裝成功,且環境變數設定成功,如下
![](https://upload-images.jianshu.io/upload_images/11175909-9dc839f45bd8d156.png!thumbnail?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
如果在上一步中,未勾選新增python至環境變數,輸入python命令後會提示:不是內部或外部命令,只需將python的安裝路徑新增至環境變數即可,具體新增方法可百度。
### 4,安裝Selenium
cmd視窗輸入命令:**pip install selenium**,安裝最新版本的selenium
安裝完成後可以檢視版本號,命令為:pip show selenium
安裝指定版本命令為:pip install selenium==xxx
解除安裝命令:pip uninstall selenium
![](https://upload-images.jianshu.io/upload_images/11175909-df21a03abc88c43c.png!thumbnail?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
## 三,啟動Chrome瀏覽器
不同的瀏覽器,需要安裝對應瀏覽器的Selenium驅動才能進行自動化測試。首先介紹Chrome瀏覽器。
### 1,安裝Chrome瀏覽器
沒有安裝Chrome瀏覽器,則需先安裝(建議官方地址下載)
官方下載地址為:[https://www.google.cn/chrome/](https://www.google.cn/chrome/)
下載安裝過程很機械,不做過多說明。
### 2,檢視Chrome版本
開啟Chrome瀏覽器 --> 輸入網址:chrome://settings/help --> 按回車鍵,如下:
![](https://upload-images.jianshu.io/upload_images/11175909-3e5cfc2128397b18.png!thumbnail?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
### 3,下載驅動 chromedriver
下載地址:[http://chromedriver.storage.googleapis.com/index.html](http://chromedriver.storage.googleapis.com/index.html)
也可以選擇淘寶映象下載,地址為:[http://npm.taobao.org/mirrors/chromedriver/](http://npm.taobao.org/mirrors/chromedriver/)
低版本Chrome瀏覽器已經很少使用,就不做對應下載說明了。更新版本的Chrome瀏覽器(從70~87),只需根據自己電腦上安裝的Chrome瀏覽器版本下載對應的chromedriver即可,如下:
![](https://upload-images.jianshu.io/upload_images/11175909-1e1d22ef0f685eee.png!thumbnail?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
我電腦上的Chrome瀏覽器版本為 86.0.4240.111(正式版本) (64 位),選擇下載如下:
![](https://upload-images.jianshu.io/upload_images/11175909-621f7afb16cc0149.png!thumbnail?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
**注意**:這裡按照chrome版本查詢對應的chromedriver(只需對應大版本就行)下載即可,比如我的瀏覽器版本是86.0.4240.111,chromedriver裡沒有對應的86.0.4240.111版本,下載86.0.4240.22版本就行。
下載完成後,解壓該zip檔案得到chromedriver.exe檔案,將chromedriver.exe放置在python安裝目錄的Scripts中
![](https://upload-images.jianshu.io/upload_images/11175909-bf5714d232ae10f1.png!thumbnail?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
**注意**:需要將解壓出來的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](https://www.baidu.com)",而不是"[www.baidu.com](http://www.baidu.com)",否則會報錯
執行指令碼,啟動Chrome瀏覽器並開啟百度網址,如下:
![](https://upload-images.jianshu.io/upload_images/11175909-fff27847db090323.png!thumbnail?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
## 四,啟動火狐瀏覽器(Firefox)
### 1,安裝火狐瀏覽器
官網下載地址:[https://www.firefox.com.cn/](https://www.firefox.com.cn/)
安裝過程不贅述。
### 2,檢視火狐瀏覽器版本
開啟火狐瀏覽器,點選右上角"選單"按鈕進行檢視,步驟如下:
![](https://upload-images.jianshu.io/upload_images/11175909-694c9ee388985b31.png!thumbnail?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
**我這裡的火狐瀏覽器版本為: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](https://github.com/mozilla/geckodriver/releases)
我這裡選擇目前最新的版本下載(瀏覽器為64位),如下:
![](https://upload-images.jianshu.io/upload_images/11175909-b6597f4d51161def.png!thumbnail?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
如果按照後續步驟不能啟動瀏覽器,可以嘗試刪除該版本的geckodriver下載更低的版本的geckodriver。
下載後解壓檔案,將解壓後得到的 geckodriver.exe 檔案放置在python安裝目錄的Scripts中(同chromedriver.exe),如下:
![](https://upload-images.jianshu.io/upload_images/11175909-f280c350420c3d3f.png!thumbnail?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
### 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瀏覽器並開啟百度網址,如下:
![](https://upload-images.jianshu.io/upload_images/11175909-23d989954857d071.png!thumbnail?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
## 五,啟動IE瀏覽器
windows系統自帶IE瀏覽器,無需下載。
### 1,檢視IE瀏覽器版本
開啟IE瀏覽器 --> 點選右上角"設定"圖示 --> 點選"關於 Internet Explorer"按鈕,檢視
![](https://upload-images.jianshu.io/upload_images/11175909-fec4f6fad1a53fc9.png!thumbnail?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
我電腦上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 ](http://selenium-release.storage.googleapis.com/index.html)
淘寶映象下載地址:[https://npm.taobao.org/mirrors/selenium/](https://npm.taobao.org/mirrors/selenium/)
因為沒有找到不同版本的IE瀏覽器對應的驅動版本,所以我這裡直接下載最新的版本,如下:
![](https://upload-images.jianshu.io/upload_images/11175909-41044207316c3acb.png!thumbnail?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
下載後解壓該zip檔案,同樣的,將解壓後得到的IEDriverServer.exe放置在python安裝目錄的Scripts中,如下:
![](https://upload-images.jianshu.io/upload_images/11175909-b859e534906ccadc.png!thumbnail?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
### 3,啟動IE瀏覽器
首先要禁止啟用IE瀏覽器的保護模式,步驟如下:
開啟瀏覽器 --> 點選左上角"設定"圖示 --> Internet選項 --> 安全,將四個選項中的"啟用保護模式"的勾選去掉,如下:
![](https://upload-images.jianshu.io/upload_images/11175909-d89b853bf6cbd0bc.png!thumbnail?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
編寫指令碼如下:
```
# -*- 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瀏覽器並開啟百度網址,如下:
![](https://upload-images.jianshu.io/upload_images/11175909-aa14482b784229f9.png!thumbnail?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
執行指令碼開啟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自動化測試。
![](https://img2020.cnblogs.com/blog/1213182/202011/1213182-20201104142930434-475581