Python語言中的Selenium環境搭建

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環境搭建內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: