Python語(yǔ)言中的Selenium環(huán)境搭建
1.selenium 介紹
Selenium是一個(gè)用于Web應(yīng) 用程序測(cè)試的工具。Selenium測(cè)試直接運(yùn)行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏
覽器包括IE (7, 8,9, 10, 11 ) , Moilla Firefox , Safari , Google Chrome,Opera , Edge等。
這個(gè)工具的主要功能包括:測(cè)試與瀏覽器的兼容性一測(cè)試應(yīng) 用程序看是否能夠很好得工作在不同瀏覽器和操作系統(tǒng)之上。測(cè)試系統(tǒng)功能一創(chuàng)建回歸測(cè)試檢驗(yàn)軟件功能和用戶需求。支持自動(dòng)錄制動(dòng)作和自動(dòng)生成Python、Net、Java、 Peri等不同語(yǔ)言的測(cè)試腳本。
1.1 selenium歷史
Selenium 經(jīng)歷了三個(gè)大版本,Selenium 1.0、Selenium 2.0 和 Selenium 3.0。Selenium 不是由單獨(dú)一個(gè)工具構(gòu)成的,而是由一些插件和類庫(kù)組成的,這些插件和類庫(kù)有其各自的特點(diǎn)和應(yīng)用場(chǎng)景。
Selenium 1.0 家族關(guān)系如圖 所示:
1.Selenium 1.0
(1)Selenium IDE。
Selenium IDE 是嵌入在 Firefox 瀏覽器中的一個(gè)插件,可實(shí)現(xiàn)簡(jiǎn)單的瀏覽器操作的錄制與回放功能。
(2)Selenium Grid。
Selenium Grid 是一個(gè)自動(dòng)化測(cè)試輔助工具。利用 Grid 可以很方便地實(shí)現(xiàn)在多臺(tái)機(jī)器上或異構(gòu)環(huán)境中運(yùn)行測(cè)試用例。
(3)Selenium RC。
Selenium RC(Remote Control)是 Selenium 家族的核心部分,支持多種不同語(yǔ)言編寫的自動(dòng)化測(cè)試腳本。把 Selenium RC 的服務(wù)器作為代理服務(wù)器去訪問(wèn)應(yīng)用,即可達(dá)到測(cè)試的目的。
Selenium RC 分為 Client Libraries 和 Selenium Server 兩部分。Client Libraries 主要用于編寫測(cè)試腳本,負(fù)責(zé)控制 Selenium Server 的庫(kù)。Selenium Server 負(fù)責(zé)控制瀏覽器行為。
Selenium Server 主要分為三部分:Selenium Core、Launcher 和 Http Proxy。Selenium Core就是一堆 JavaScript 函數(shù)的集合。通過(guò)這些 JavaScript 函數(shù),我們可以用程序?qū)g覽器進(jìn)行操作。Launcher 用于啟動(dòng)瀏覽器,把 Selenium Core 加載到瀏覽器頁(yè)面當(dāng)中,同時(shí),把瀏覽器的代理設(shè)置為 Http Proxy。
2.Selenium 2.0
Selenium 2.0 把 WebDriver 加到了 Selenium1.0 這個(gè)家族中,簡(jiǎn)單用公式表示如下:
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 是在瀏覽器中運(yùn)行 JavaScript 應(yīng)用,使用瀏覽器內(nèi)置的 JavaScript 翻譯器來(lái)翻譯和執(zhí)行 selenese 的(selenese 是 Selenium 命令集合)。
WebDriver 通過(guò)原生瀏覽器支持或者瀏覽器擴(kuò)展來(lái)直接控制瀏覽器。WebDriver 是針對(duì)各個(gè)瀏覽器而開發(fā)的,取代了嵌入被測(cè) Web 應(yīng)用中的 JavaScript。WebDriver 與瀏覽器緊密集成,支持創(chuàng)建更高級(jí)的測(cè)試,避免了 JavaScript 安全模型導(dǎo)致的限制。除來(lái)自瀏覽器廠商的支持外,WebDriver 還可利用操作系統(tǒng)級(jí)的調(diào)用,模擬用戶輸入。
Selenium 與 WebDriver 原本屬于兩個(gè)不同的項(xiàng)目,WebDriver 的創(chuàng)建者 Simon Stewart早在 2009 年 8 月的一封郵件中解釋了項(xiàng)目合并的原因。
3.Selenium 3.0
2016 年 7 月,Selenium 3.0 悄悄發(fā)布了第一個(gè) beta 版。Selenium 3.0 做了以下更新。
(1)去掉了 Selenium RC,簡(jiǎn)單用公式表示如下:
Selenium 3.0 = Selenium 2.0 −Selenium RC
(2)Selenium 3.0 只支持 Java 8 以上版本。
(3)Selenium 3.0 中的 Firefox 瀏覽器驅(qū)動(dòng)獨(dú)立了。Selenium 2.0 測(cè)試庫(kù)默認(rèn)是集成Firefox 瀏覽器驅(qū)動(dòng)的,在 Selenium 3.0 中,F(xiàn)irefox 瀏覽器和 Chrome 瀏覽器一樣,在使用前需要下載和設(shè)置瀏覽器驅(qū)動(dòng)。
(4)mac OS 操作系統(tǒng)集成了 Safari 的瀏覽器驅(qū)動(dòng),該驅(qū)動(dòng)默認(rèn)在/usr/bin/safaridriver 目錄下。
(5)只支持 IE 9.0 以上版本。
4.Selenium IDE
Selenium IDE 同樣是 Selenium的家族成員。Selenium IDE 有兩個(gè)版本,舊版的 Selenium IDE 是基于 Firefox 瀏覽器擴(kuò)展的
它提供了比較完備的自動(dòng)化功能,如腳本錄制/回放、定時(shí)任務(wù)等;還可以將錄制的腳本導(dǎo)成不同編程語(yǔ)言的 Selenium 測(cè)試腳本,這在很大程度上可以幫助新手編寫測(cè)試用例。
但舊版的 Selenium IDE 不支持 Firefox 新版本支持的 API,因此 Selenium 團(tuán)隊(duì)重新開發(fā)了新版的 Selenium IDE,可以同時(shí)支持 Chrome、Firefox 以及其他瀏覽器。
新版的 Selenium IDE 如圖所示,功能比較簡(jiǎn)單
2. selenium的環(huán)境配置步驟
- 1.準(zhǔn)備好python環(huán)境
- 2.準(zhǔn)備好selenium環(huán)境
- 3.下載瀏覽器對(duì)應(yīng)的driver版本
- 4.driver配置環(huán)境變量
- 5.在python中import對(duì)應(yīng)的依賴
2.1 安裝/卸載 selenium
打開cmd窗口,
使用命令“pip install selenium”安裝selenium
然后用命令“pip show selenium”查看是否安裝成功。
卸載命令pip uninstall selenium
Selenium 版本 3.141.0
Python IDLE 驗(yàn)證:沒有報(bào)錯(cuò)證明成功
2.2 安裝 drive
設(shè)置瀏覽器的驅(qū)動(dòng)非常簡(jiǎn)單。 我們可以手動(dòng)創(chuàng)建一個(gè)存放瀏覽器驅(qū)動(dòng)的目錄,如: D:\driver , 將下載的瀏覽器驅(qū)動(dòng)文件(例如:chromedriver、geckodriver、IEDriverServer)丟到該目錄下。
我的電腦–>屬性–>系統(tǒng)設(shè)置–>高級(jí)–>環(huán)境變量–>系統(tǒng)變量–>Path,將“D:\driver”目錄添加到Path的值中。
Path
; D:\driver
注意:drive的版本應(yīng)該與瀏覽器保持兼容
Chrome下載地址 https://www.chromedownloads.net/chrome64win-stable/list_2_2.html Chromedriver下載地址:http://chromedriver.storage.googleapis.com/index.html
?驗(yàn)證驅(qū)動(dòng) 打開python自帶的編輯器
代碼:
>>> import selenium >>> from selenium import webdriver >>> driver = webdriver.Chrome
注意:Chrome “C” 區(qū)分大小寫
3.selenium-webdriver元素定位參考
自動(dòng)化只要掌握四步操作:獲取元素,操作元素,獲取返回結(jié)果,斷言(返回結(jié)果與期望結(jié)果是否一致),最后自動(dòng)出測(cè)試報(bào)告。本篇主要講如何用firefox輔助工具進(jìn)行元素定位。(新版本的Chrome右鍵”檢查”可以查看元素)
元素定位在這四個(gè)環(huán)節(jié)中是至關(guān)重要的,如果說(shuō)按學(xué)習(xí)精力分配的話,元素定位占70%;操作元素10%,獲取返回結(jié)果10%;斷言10%。如果一個(gè)頁(yè)面上的元素不能被定位到,那后面的操作就無(wú)法繼續(xù)了。webdriver提供的八種基本元素定位方法。
selenium的webdriver提供了八種基本的元素定位方法,前面六種是通過(guò)元素的屬性來(lái)直接定位的,后面的xpath和css定位更加靈活,需要重點(diǎn)掌握其中一個(gè)。
- 1.通過(guò)id定位:find_element_by_id()
- 2.通過(guò)name定位:find_element_by_name()
- 3.通過(guò)class定位:find_element_by_class_name()
- 4.通過(guò)tag定位:find_element_by_tag_name()
- 5.通過(guò)link定位:find_element_by_link_text()
- 6.通過(guò)partial_link定位:find_element_by_partial_link_text()
- 7.通過(guò)xpath定位:find_element_by_xpath()
- 8.通過(guò)css定位:find_element_by_css_selector()
4. 實(shí)例
import time import selenium from selenium import webdriver # 1、創(chuàng)建Chrome實(shí)例 。 driver = webdriver.Chrome() # 2、driver.get方法將定位在給定的URL的網(wǎng)頁(yè) 。 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定位點(diǎn)擊對(duì)象,用click()觸發(fā)點(diǎn)擊事件 driver.find_element_by_id('su').click() # 延遲3秒 time.sleep(3) # 4、退出訪問(wèn)的實(shí)例網(wǎng)站。 driver.quit()
到此這篇關(guān)于Python語(yǔ)言中的Selenium環(huán)境搭建的文章就介紹到這了,更多相關(guān)Python Selenium環(huán)境搭建內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python+Selenium自動(dòng)化環(huán)境搭建與操作基礎(chǔ)詳解
- Selenium+Python自動(dòng)化腳本環(huán)境搭建的全過(guò)程
- selenium3.0+python之環(huán)境搭建的方法步驟
- Python selenium環(huán)境搭建實(shí)現(xiàn)過(guò)程解析
- Python+Selenium實(shí)現(xiàn)自動(dòng)化的環(huán)境搭建的步驟(圖文)
- selenium+python自動(dòng)化測(cè)試環(huán)境搭建步驟
- selenium+python自動(dòng)化測(cè)試之環(huán)境搭建
- selenium3+python3環(huán)境搭建教程圖解
- Python + selenium自動(dòng)化環(huán)境搭建的完整步驟
- python+selenium開發(fā)環(huán)境搭建圖文教程
- 搭建?Selenium+Python開發(fā)環(huán)境詳細(xì)步驟
相關(guān)文章
Python使用ffmpy將amr格式的音頻轉(zhuǎn)化為mp3格式的例子
今天小編就為大家分享一篇Python使用ffmpy將amr格式的音頻轉(zhuǎn)化為mp3格式的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08Python 函數(shù)list&read&seek詳解
這篇文章主要介紹了Python 函數(shù)list&read&seek詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08python的dict,set,list,tuple應(yīng)用詳解
這篇文章主要介紹了python的dict,set,list,tuple應(yīng)用詳解,需要的朋友可以參考下2014-07-07Python實(shí)現(xiàn)在Word中創(chuàng)建表格并填入數(shù)據(jù)與圖片
在Word中,表格是一個(gè)強(qiáng)大的工具,本文主要為大家介紹了如何使用Python在Word中創(chuàng)建表格并填入數(shù)據(jù)、圖片,以及設(shè)置表格樣式等,感興趣的可以了解下2024-03-03在python里創(chuàng)建一個(gè)任務(wù)(Task)實(shí)例
這篇文章主要介紹了在python里創(chuàng)建一個(gè)任務(wù)(Task)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04Python爬蟲自動(dòng)化獲取華圖和粉筆網(wǎng)站的錯(cuò)題(推薦)
這篇文章主要介紹了Python爬蟲自動(dòng)化獲取華圖和粉筆網(wǎng)站的錯(cuò)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-0110行Python代碼計(jì)算汽車數(shù)量的實(shí)現(xiàn)方法
這篇文章主要介紹了10行Python代碼計(jì)算汽車數(shù)量的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Python實(shí)現(xiàn)繪制雙柱狀圖并顯示數(shù)值功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)繪制雙柱狀圖并顯示數(shù)值功能,涉及Python數(shù)值運(yùn)算及基于matplotlib的圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2018-06-06