『心善淵』Selenium3.0基礎 — 2、搭建Selenium測試框架環境

Selenium環境搭建步驟

  1. 安裝瀏覽器。
  2. 下載瀏覽器對應的Selenium驅動。
  3. 把下載好的Selenium驅動,與Python進行整合。
  4. 安裝Selenium自動化測試框架。
  5. 在Python程式碼中導入Selenium相關API,進行操作。

1、瀏覽器安裝

下載並安裝好需要的瀏覽器,如下:

Chrome瀏覽器、Firefox瀏覽器、Safari瀏覽器、Edge瀏覽器、Opera瀏覽器等。

根據自己的需求安裝對應的瀏覽器,非常簡單,不做過多說明。

2、瀏覽器驅動下載

(1)ChromeDriver for Chrome

如果使用Chrome瀏覽器進行自動化測試,就需要下載ChromeDriver驅動。

選擇指定的ChromeDriver版本,可根據不同的平台(Win、Mac、Linux)下載指定的ChromeDriver

如下圖所示:

image

(2)Geckodriver for Firefox

如果使用Firefox進行自動化測試,在Selenium 1.0或者Selenium 2.0是可以直接驅動Firefox進行測試的,但如果使用的是Selenium 3.0,則需要下載geckodriver驅動。

根據不同的平台(Win、Mac、Linux等)下載指定的geckodriver驅動。

如下圖所示:

image

提示:

  • Firefox 47 及以前版本,不需要geckodriver驅動。
  • geckodriver v0.19.0Firefox 55(及更高版本),Selenium3.5(及更高)
  • geckodriver v0.21.0Firefox 57(及更高版本),Selenium3.11(及更高)
  • 我應用的版本v0.24.0v0.26.0Firefox 76Selenium3.14

(3)IEDriverServer for IE

如果使用IE進行自動化測試,就需要下載IEDriverServer驅動。

IEDriverServer下載地址://selenium-release.storage.googleapis.com/index.html

根據Win平台是32位還是64位,下載指定的IEDriverServer驅動。

如下圖所示:

image

IEDriverServer的版本號和Selenium的版本號一定要一致。

如果執行腳本的時候會有如下報錯:

Unexpected error launching Internet Explorer. Protected Mode settings are not the same for all zones.

說明瀏覽器的安全性設置較高,解決方法:

修改IE的設置,打開IE —>選項—>安全,不選中啟用保護模式。

如下圖所示:

image

(4)for Edge

在Windows 10中Edge瀏覽器的驅動由Microsoft提供,也需要單獨下載。

下載地址://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

需要根據Edge瀏覽器版本下載對應的版本驅動。

1)如何查看windows 10中Edge瀏覽器的版本

方式一:打開Edge瀏覽器,進入設置

image

設置的介面的最下方,就可以查看到Edge瀏覽器的版本。

image

方式二開始 —> 設置 —> 系統 —> 關於

就可以查看到Edge瀏覽器的版本,如下圖所示:

image

2)Edge瀏覽器18版本的Selenium驅動安裝

Edge瀏覽器18版本以前的Selenium驅動,在上面網址中,下載對應的驅動版本就可以了。

Edge瀏覽器18版本,需要在Windows 10系統的命令提示符中(管理員方式打開),執行如下命令即可。

DISM.exe /Online /Add-Capability /CapabilityName:Microsoft.WebDriver~~~~0.0.1.0

如下圖:

image

安裝完成之後,我們就可以適用Selenium測試Edge瀏覽器了,不需要在下載單獨的Edge瀏覽器驅動了。

(5)OperaDriver for Opera

如果使用Opera瀏覽器進行自動化測試,就需要下載operadriver驅動。

下載驅動的時候,一定要看好驅動支援的瀏覽器版本。

如下圖所示:

image

3、瀏覽器驅動與Python整合

將下載好的瀏覽器驅動解壓後,如:chromedriver.exe放置在Python安裝路徑的根目錄下即可。

這樣一步操作,就完成了瀏覽器驅動與Python的整合。

如下圖所示:

image

4、安裝Selenium

在Windows環境下,安裝方式有兩種(任選一種即可)

(1)在線安裝

  • 命令行輸入pip install -U selenium
  • 若Selenium安裝超時失敗,可以試試中國源:
    • 使用阿里雲鏡像:pip install -i //mirrors.aliyun.com/pypi/simple/ selenium
    • 使用清華大學鏡像:pip install -i //pypi.tuna.tsinghua.edu.cn/simple/ selenium
    • 使用中國科技大學鏡像:pip install -i //pypi.mirrors.ustc.edu.cn/simple/ selenium
    • 使用豆瓣鏡像:pip install -i //pypi.douban.com/simple/ selenium
  • 安裝Selenium指定版本(例如3.9.0)
    命令行輸入pip install -U selenium==3.9.0

(2)離線安裝

打開網址://pypi.org/project/selenium/

點擊Download files,下載後綴名為tar.gz包文件。

image

下載完成後,進行解壓,例如:selenium-3.14.0.tar.gz

解壓後的文件目錄,如下圖所示:

image

打開命令行,跳轉到解壓後的目錄路徑,輸入安裝命令python setup.py install即可。

安裝完成後,打開命令行,輸入pip list,查詢已安裝的模組,如下圖:

image

如圖所示Selenium就安裝成功。

同時在PyCharm中導入Selenium模組,沒有報錯,就可以正常在PyCharm中使用Selenium了。

# 1.導入selenium包
from selenium import webdriver

5、使用Selenium啟動Google瀏覽器

在Python的IDE中,編寫如下程式碼,如:PyCharm。

"""
1.學習目標
    掌握使用selenium啟動Google瀏覽器
2.操作步驟
    2.1 導入selenium包
    2.2 選擇並打開瀏覽器(Google)
    2.3 輸入百度網址
    2.4 對網址操作
    2.5 關閉瀏覽器
3.需求
    使用selenium實現在Google瀏覽器中打開百度網站
4.注意事項
    4.1 腳本的名稱一定不能為selenium
    4.2 輸入網址的時候要加上協議,如://
"""
# 學習selenium主要學習的是對webdriver的使用

# 1.導入selenium包
from selenium import webdriver
from time import sleep

# 2.選擇並打開瀏覽器(Google)
driver = webdriver.Chrome()

# 3. 輸入百度網址
driver.get("//www.baidu.com")
sleep(3)

# 4.對網址的操作
# 5.關閉瀏覽器
driver.quit()

6、拓展說明

(1)屏蔽「Chrome 正受到自動測試軟體的控制「提示資訊

81版不好用,75版可以。

"""
1.學習目標
    熟悉selenium屏蔽Google瀏覽器的資訊提示欄
2.操作步驟
    1.導包
    2.添加Google瀏覽器載入項
        屏蔽資訊提示欄
    3.打開Google瀏覽器——將屏蔽資訊提示欄參數傳入到打開瀏覽器中
    4.打開地址
    5.關閉瀏覽器
    
    總結:    
    options = webdriver.ChromeOptions()  # 實例化Google瀏覽器載入項
    options.add_argument("disable-infobars")  # 去掉Google瀏覽器資訊提示欄
    webdriver.Chrome(chrom_options=options)  # 使用瀏覽器載入項
3.需求
    使用selenium將Google瀏覽器的資訊提示欄屏蔽
"""
# 1.導入selenium包
from selenium import webdriver
from time import sleep

# 2.添加Google瀏覽器載入項
options = webdriver.ChromeOptions()
options.add_argument("disable-infobars")

# 3.打開Google瀏覽器——將屏蔽資訊提示欄參數傳入打開瀏覽器中
"""
DeprecationWarning: use options instead of chrome_options
棄用警告:使用選項代替chrome_options,改用options選項
"""
driver = webdriver.Chrome(options=options)

# 4.打開地址
url = "//www.baidu.com"
driver.get(url)
sleep(3)

# 5.關閉瀏覽器
driver.quit()

(2)Chrome模擬移動端

打開chrome —> F12 —> 開啟移動端視角,如圖所示,可以模擬iphone6等設備。

image

也可以添加或刪除設備,點擊Edit進行設置。

image

在腳本里deviceName屬性,要定義為所要模擬的設備名。

腳本程式碼如下:

"""
1.學習目標
    熟悉selenium使用Google瀏覽器模擬移動端
2.操作步驟
    1.導包
    2.添加Google瀏覽器載入項
        設置模擬的手機型號,字典類型的參數
        mobileEmulation = {"deviceName": "iPhone X"}
        options=webdriver.ChromeOptions()
        options.add_experimental_option("mobileEmulation", mobileEmulation)
        註:"mobileEmulation"為固定寫法。
    3.打開Google瀏覽器——將參數傳入打開的瀏覽器中
    4.打開地址
    5.關閉瀏覽器
3.需求
    使用selenium打開Google瀏覽器,模擬iPhoneX手機

"""
# 1.導入selenium包
from selenium import webdriver
from time import sleep

# 2.添加Google瀏覽器載入項
mobileEmulation = {"deviceName": "iPhone X"}
options = webdriver.ChromeOptions()
# 因為傳入的是字典類型的數據,所以使用的add方法也不一樣
options.add_experimental_option("mobileEmulation", mobileEmulation)

# 3.打開Google瀏覽器——將模擬移動端的參數,傳入打開的瀏覽器中
# options和chrome_options一樣,chrome_options將棄用。
driver = webdriver.Chrome(options=options)

# 4.打開地址
url = "//www.baidu.com"
driver.get(url)
sleep(3)

# 5.關閉瀏覽器
driver.quit()