Python語言中的Selenium環(huán)境搭建
1.selenium 介紹
Selenium是一個用于Web應 用程序測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏
覽器包括IE (7, 8,9, 10, 11 ) , Moilla Firefox , Safari , Google Chrome,Opera , Edge等。
這個工具的主要功能包括:測試與瀏覽器的兼容性一測試應 用程序看是否能夠很好得工作在不同瀏覽器和操作系統(tǒng)之上。測試系統(tǒng)功能一創(chuàng)建回歸測試檢驗軟件功能和用戶需求。支持自動錄制動作和自動生成Python、Net、Java、 Peri等不同語言的測試腳本。
1.1 selenium歷史
Selenium 經(jīng)歷了三個大版本,Selenium 1.0、Selenium 2.0 和 Selenium 3.0。Selenium 不是由單獨一個工具構(gòu)成的,而是由一些插件和類庫組成的,這些插件和類庫有其各自的特點和應用場景。
Selenium 1.0 家族關(guān)系如圖 所示:

1.Selenium 1.0
(1)Selenium IDE。
Selenium IDE 是嵌入在 Firefox 瀏覽器中的一個插件,可實現(xiàn)簡單的瀏覽器操作的錄制與回放功能。
(2)Selenium Grid。
Selenium Grid 是一個自動化測試輔助工具。利用 Grid 可以很方便地實現(xiàn)在多臺機器上或異構(gòu)環(huán)境中運行測試用例。
(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 函數(shù)的集合。通過這些 JavaScript 函數(shù),我們可以用程序?qū)g覽器進行操作。Launcher 用于啟動瀏覽器,把 Selenium Core 加載到瀏覽器頁面當中,同時,把瀏覽器的代理設(shè)置為 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 的工作方式有著本質(zhì)的區(qū)別。
Selenium RC 是在瀏覽器中運行 JavaScript 應用,使用瀏覽器內(nèi)置的 JavaScript 翻譯器來翻譯和執(zhí)行 selenese 的(selenese 是 Selenium 命令集合)。
WebDriver 通過原生瀏覽器支持或者瀏覽器擴展來直接控制瀏覽器。WebDriver 是針對各個瀏覽器而開發(fā)的,取代了嵌入被測 Web 應用中的 JavaScript。WebDriver 與瀏覽器緊密集成,支持創(chuàng)建更高級的測試,避免了 JavaScript 安全模型導致的限制。除來自瀏覽器廠商的支持外,WebDriver 還可利用操作系統(tǒng)級的調(diào)用,模擬用戶輸入。
Selenium 與 WebDriver 原本屬于兩個不同的項目,WebDriver 的創(chuàng)建者 Simon Stewart早在 2009 年 8 月的一封郵件中解釋了項目合并的原因。
3.Selenium 3.0
2016 年 7 月,Selenium 3.0 悄悄發(fā)布了第一個 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 瀏覽器驅(qū)動獨立了。Selenium 2.0 測試庫默認是集成Firefox 瀏覽器驅(qū)動的,在 Selenium 3.0 中,F(xiàn)irefox 瀏覽器和 Chrome 瀏覽器一樣,在使用前需要下載和設(shè)置瀏覽器驅(qū)動。
(4)mac OS 操作系統(tǒng)集成了 Safari 的瀏覽器驅(qū)動,該驅(qū)動默認在/usr/bin/safaridriver 目錄下。
(5)只支持 IE 9.0 以上版本。
4.Selenium IDE
Selenium IDE 同樣是 Selenium的家族成員。Selenium IDE 有兩個版本,舊版的 Selenium IDE 是基于 Firefox 瀏覽器擴展的

它提供了比較完備的自動化功能,如腳本錄制/回放、定時任務等;還可以將錄制的腳本導成不同編程語言的 Selenium 測試腳本,這在很大程度上可以幫助新手編寫測試用例。
但舊版的 Selenium IDE 不支持 Firefox 新版本支持的 API,因此 Selenium 團隊重新開發(fā)了新版的 Selenium IDE,可以同時支持 Chrome、Firefox 以及其他瀏覽器。
新版的 Selenium IDE 如圖所示,功能比較簡單

2. selenium的環(huán)境配置步驟
- 1.準備好python環(huán)境
- 2.準備好selenium環(huán)境
- 3.下載瀏覽器對應的driver版本
- 4.driver配置環(huán)境變量
- 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
設(shè)置瀏覽器的驅(qū)動非常簡單。 我們可以手動創(chuàng)建一個存放瀏覽器驅(qū)動的目錄,如: D:\driver , 將下載的瀏覽器驅(qū)動文件(例如:chromedriver、geckodriver、IEDriverServer)丟到該目錄下。
我的電腦–>屬性–>系統(tǒng)設(shè)置–>高級–>環(huán)境變量–>系統(tǒng)變量–>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

?驗證驅(qū)動 打開python自帶的編輯器

代碼:
>>> import selenium >>> from selenium import webdriver >>> driver = webdriver.Chrome
注意:Chrome “C” 區(qū)分大小寫

3.selenium-webdriver元素定位參考
自動化只要掌握四步操作:獲取元素,操作元素,獲取返回結(jié)果,斷言(返回結(jié)果與期望結(jié)果是否一致),最后自動出測試報告。本篇主要講如何用firefox輔助工具進行元素定位。(新版本的Chrome右鍵”檢查”可以查看元素)
元素定位在這四個環(huán)節(jié)中是至關(guān)重要的,如果說按學習精力分配的話,元素定位占70%;操作元素10%,獲取返回結(jié)果10%;斷言10%。如果一個頁面上的元素不能被定位到,那后面的操作就無法繼續(xù)了。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、創(chuàng)建Chrome實例 。
driver = webdriver.Chrome()
# 2、driver.get方法將定位在給定的URL的網(wǎng)頁 。
driver.get("https://www.baidu.com/") # get接受url可以是如何網(wǎng)址,此處以百度為例
# 3、定位元素
# 3.1、用id定位輸入框?qū)ο螅?
driver.find_element_by_id("kw").send_keys("python")
# 3.2、用id定位點擊對象,用click()觸發(fā)點擊事件
driver.find_element_by_id('su').click()
# 延遲3秒
time.sleep(3)
# 4、退出訪問的實例網(wǎng)站。
driver.quit()到此這篇關(guān)于Python語言中的Selenium環(huán)境搭建的文章就介紹到這了,更多相關(guān)Python Selenium環(huán)境搭建內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python+Selenium自動化環(huán)境搭建與操作基礎(chǔ)詳解
- Selenium+Python自動化腳本環(huán)境搭建的全過程
- selenium3.0+python之環(huán)境搭建的方法步驟
- Python selenium環(huán)境搭建實現(xiàn)過程解析
- Python+Selenium實現(xiàn)自動化的環(huán)境搭建的步驟(圖文)
- selenium+python自動化測試環(huán)境搭建步驟
- selenium+python自動化測試之環(huán)境搭建
- selenium3+python3環(huán)境搭建教程圖解
- Python + selenium自動化環(huán)境搭建的完整步驟
- python+selenium開發(fā)環(huán)境搭建圖文教程
- 搭建?Selenium+Python開發(fā)環(huán)境詳細步驟
相關(guān)文章
python調(diào)用c++ ctype list傳數(shù)組或者返回數(shù)組的方法
今天小編就為大家分享一篇python調(diào)用c++ ctype list傳數(shù)組或者返回數(shù)組的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02
Python中不同圖表的數(shù)據(jù)可視化的實現(xiàn)
數(shù)據(jù)可視化是以圖形格式呈現(xiàn)數(shù)據(jù)。它通過以簡單易懂的格式匯總和呈現(xiàn)大量數(shù)據(jù),幫助人們理解數(shù)據(jù)的重要性,并有助于清晰有效地傳達信息。本文為大家準備了Python實現(xiàn)不同圖表數(shù)據(jù)可視化的代碼,需要的可以參考一下2022-08-08
Win10環(huán)境python3.7安裝dlib模塊趟過的坑
這篇文章主要介紹了Win10環(huán)境python3.7安裝dlib模塊趟過的坑,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08
pytorch 實現(xiàn)在預訓練模型的 input上增減通道
今天小編就為大家分享一篇pytorch 實現(xiàn)在預訓練模型的 input上增減通道,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
python+tkinter實現(xiàn)學生管理系統(tǒng)
這篇文章主要為大家詳細介紹了python+tkinter實現(xiàn)學生管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-08-08
python深度學習TensorFlow神經(jīng)網(wǎng)絡模型的保存和讀取
這篇文章主要為大家介紹了python深度學習TensorFlow神經(jīng)網(wǎng)絡如何將訓練得到的模型保存下來方便下次直接使用。為了讓訓練結(jié)果可以復用,需要將訓練好的神經(jīng)網(wǎng)絡模型持久化2021-11-11

