首頁 > 軟體

Python語言中的Selenium環境搭建

2022-08-22 18:02:26

1.selenium 介紹

Selenium是一個用於Web應 用程式測試的工具。Selenium測試直接執行在瀏覽器中,就像真正的使用者在操作一樣。支援的瀏
覽器包括IE (7, 8,9, 10, 11 ) , Moilla Firefox , Safari , Google Chrome,Opera , Edge等。

這個工具的主要功能包括:測試與瀏覽器的相容性一測試應 用程式看是否能夠很好得工作在不同瀏覽器和作業系統之上。測試系統功能一建立迴歸測試檢驗軟體功能和使用者需求。支援自動錄製動作和自動生成Python、Net、Java、 Peri等不同語言的測試指令碼。

1.1 selenium歷史

Selenium 經歷了三個大版本,Selenium 1.0、Selenium 2.0 和 Selenium 3.0。Selenium 不是由單獨一個工具構成的,而是由一些外掛和類庫組成的,這些外掛和類庫有其各自的特點和應用場景。

Selenium 1.0 家族關係如圖 所示:

1.Selenium 1.0

(1)Selenium IDE。

Selenium IDE 是嵌入在 Firefox 瀏覽器中的一個外掛,可實現簡單的瀏覽器操作的錄製與回放功能。

(2)Selenium Grid。

Selenium Grid 是一個自動化測試輔助工具。利用 Grid 可以很方便地實現在多臺機器上或異構環境中執行測試用例。

(3)Selenium RC。

Selenium RC(Remote Control)是 Selenium 家族的核心部分,支援多種不同語言編寫的自動化測試指令碼。把 Selenium RC 的伺服器作為代理伺服器去存取應用,即可達到測試的目的。

Selenium RC 分為 Client Libraries 和 Selenium Server 兩部分。Client Libraries 主要用於編寫測試指令碼,負責控制 Selenium Server 的庫。Selenium Server 負責控制瀏覽器行為。

Selenium Server 主要分為三部分:Selenium Core、Launcher 和 Http Proxy。Selenium Core就是一堆 JavaScript 函數的集合。通過這些 JavaScript 函數,我們可以用程式對瀏覽器進行操作。Launcher 用於啟動瀏覽器,把 Selenium Core 載入到瀏覽器頁面當中,同時,把瀏覽器的代理設定為 Http Proxy。

2.Selenium 2.0

Selenium 2.0 把 WebDriver 加到了 Selenium1.0 這個家族中,簡單用公式表示如下:

Selenium 2.0 = Selenium 1.0 + WebDriver

需要注意的是,在 Selenium 2.0 中主推的是 WebDriver,可以將其看作 Selenium RC 的替代品。為了保持向下的相容性,Selenium 2.0 並沒有徹底拋棄 Selenium RC。

Selenium RC 與 WebDriver 的工作方式有著本質的區別。

Selenium RC 是在瀏覽器中執行 JavaScript 應用,使用瀏覽器內建的 JavaScript 翻譯器來翻譯和執行 selenese 的(selenese 是 Selenium 命令集合)。

WebDriver 通過原生瀏覽器支援或者瀏覽器擴充套件來直接控制瀏覽器。WebDriver 是針對各個瀏覽器而開發的,取代了嵌入被測 Web 應用中的 JavaScript。WebDriver 與瀏覽器緊密整合,支援建立更高階的測試,避免了 JavaScript 安全模型導致的限制。除來自瀏覽器廠商的支援外,WebDriver 還可利用作業系統級的呼叫,模擬使用者輸入。

Selenium 與 WebDriver 原本屬於兩個不同的專案,WebDriver 的建立者 Simon Stewart早在 2009 年 8 月的一封郵件中解釋了專案合併的原因。

3.Selenium 3.0

2016 年 7 月,Selenium 3.0 悄悄釋出了第一個 beta 版。Selenium 3.0 做了以下更新。

(1)去掉了 Selenium RC,簡單用公式表示如下:

Selenium 3.0 = Selenium 2.0 −Selenium RC

(2)Selenium 3.0 只支援 Java 8 以上版本。

(3)Selenium 3.0 中的 Firefox 瀏覽器驅動獨立了。Selenium 2.0 測試庫預設是整合Firefox 瀏覽器驅動的,在 Selenium 3.0 中,Firefox 瀏覽器和 Chrome 瀏覽器一樣,在使用前需要下載和設定瀏覽器驅動。

(4)mac OS 作業系統整合了 Safari 的瀏覽器驅動,該驅動預設在/usr/bin/safaridriver 目錄下。

(5)只支援 IE 9.0 以上版本。

4.Selenium IDE

Selenium IDE 同樣是 Selenium的家族成員。Selenium IDE 有兩個版本,舊版的 Selenium IDE 是基於 Firefox 瀏覽器擴充套件的

它提供了比較完備的自動化功能,如指令碼錄製/回放、定時任務等;還可以將錄製的指令碼導成不同程式語言的 Selenium 測試指令碼,這在很大程度上可以幫助新手編寫測試用例。

但舊版的 Selenium IDE 不支援 Firefox 新版本支援的 API,因此 Selenium 團隊重新開發了新版的 Selenium IDE,可以同時支援 Chrome、Firefox 以及其他瀏覽器。

新版的 Selenium IDE 如圖所示,功能比較簡單

2. selenium的環境設定步驟

  • 1.準備好python環境
  • 2.準備好selenium環境
  • 3.下載瀏覽器對應的driver版本
  • 4.driver設定環境變數
  • 5.在python中import對應的依賴

2.1 安裝/解除安裝 selenium

開啟cmd視窗,

使用命令“pip install selenium”安裝selenium

然後用命令“pip show selenium”檢視是否安裝成功。

解除安裝命令pip uninstall selenium

Selenium 版本 3.141.0

Python IDLE 驗證:沒有報錯證明成功

2.2 安裝 drive

設定瀏覽器的驅動非常簡單。 我們可以手動建立一個存放瀏覽器驅動的目錄,如: D:driver , 將下載的瀏覽器驅動檔案(例如:chromedriver、geckodriver、IEDriverServer)丟到該目錄下。

我的電腦–>屬性–>系統設定–>高階–>環境變數–>系統變數–>Path,將“D:driver”目錄新增到Path的值中。

Path

; D:driver

注意:drive的版本應該與瀏覽器保持相容

 Chrome下載地址 https://www.chromedownloads.net/chrome64win-stable/list_2_2.html

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


驗證驅動 開啟python自帶的編輯器

程式碼:

>>> import selenium
>>> from selenium import webdriver
>>> driver = webdriver.Chrome

注意:Chrome “C” 區分大小寫

3.selenium-webdriver元素定位參考

自動化只要掌握四步操作:獲取元素,操作元素,獲取返回結果,斷言(返回結果與期望結果是否一致),最後自動出測試報告。本篇主要講如何用firefox輔助工具進行元素定位。(新版本的Chrome右鍵”檢查”可以檢視元素)
元素定位在這四個環節中是至關重要的,如果說按學習精力分配的話,元素定位佔70%;操作元素10%,獲取返回結果10%;斷言10%。如果一個頁面上的元素不能被定位到,那後面的操作就無法繼續了。webdriver提供的八種基本元素定位方法。

selenium的webdriver提供了八種基本的元素定位方法,前面六種是通過元素的屬性來直接定位的,後面的xpath和css定位更加靈活,需要重點掌握其中一個。

  • 1.通過id定位:find_element_by_id()
  • 2.通過name定位:find_element_by_name()
  • 3.通過class定位:find_element_by_class_name()
  • 4.通過tag定位:find_element_by_tag_name()
  • 5.通過link定位:find_element_by_link_text()
  • 6.通過partial_link定位:find_element_by_partial_link_text()
  • 7.通過xpath定位:find_element_by_xpath()
  • 8.通過css定位:find_element_by_css_selector()

4. 範例

import time
import selenium
from selenium import webdriver

# 1、建立Chrome範例 。
driver = webdriver.Chrome()
# 2、driver.get方法將定位在給定的URL的網頁 。
driver.get("https://www.baidu.com/")  # get接受url可以是如何網址,此處以百度為例
# 3、定位元素
# 3.1、用id定位輸入框物件,
driver.find_element_by_id("kw").send_keys("python")
# 3.2、用id定位點選物件,用click()觸發點選事件
driver.find_element_by_id('su').click()
# 延遲3秒
time.sleep(3)
# 4、退出存取的範例網站。
driver.quit()

到此這篇關於Python語言中的Selenium環境搭建的文章就介紹到這了,更多相關Python Selenium環境搭建內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com