中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python+Selenium自動化環境搭建與操作的示例分析

發布時間:2022-03-14 09:25:27 來源:億速云 閱讀:166 作者:小新 欄目:開發技術

這篇文章主要介紹Python+Selenium自動化環境搭建與操作的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

一、環境搭建

1、python 安裝

下載地址:點擊這里下載

選擇合適的版本進行安裝

Python+Selenium自動化環境搭建與操作的示例分析

根據自己的操作系統類型以及位數選擇

Python+Selenium自動化環境搭建與操作的示例分析

WINDOS + R 輸入cmd

打開DOS窗口,檢查環境變量是否配置正確

(1)python -V ,返回python版本號

(2)pip -V ,返回pip工具版本號

2、pycharm 下載安裝

(1)pycharm下載

下載地址:點擊這里下載

右側為社區版,開源免費

左側為專業版,收費

Python+Selenium自動化環境搭建與操作的示例分析

(2) 安裝

運行exe程序,點擊【Next】

Python+Selenium自動化環境搭建與操作的示例分析

選擇安裝目錄后,點擊【Next】

Python+Selenium自動化環境搭建與操作的示例分析

勾選相關選項后點擊【Next】

Python+Selenium自動化環境搭建與操作的示例分析

點擊【Install】完成安裝

等待安裝完成即可

Python+Selenium自動化環境搭建與操作的示例分析

點擊【Finish】完成安裝

(3)創建項目

運行pycharm,點擊【New Project】

Python+Selenium自動化環境搭建與操作的示例分析

配置項目基本信息

(1) 選擇項目的存儲路徑

(2) 選擇項目依賴的Python庫,會在項目中創建一個venv的虛擬環境

(3) 關聯本地的Python解釋器,如果不想使用venv可以選擇本地解釋器的可執行文件

建議選擇New environment using, 然后在Base interpreter中選擇前面安裝的Python解釋器的路徑。這樣做的好處:每個項目都是獨立的空間,不會存在版本依賴沖突的問題,沖分發揮了虛擬環境的靈活性。修改完畢之后,點擊Creat,創建項目。這樣就創建了一個最初始的空項目

Python+Selenium自動化環境搭建與操作的示例分析

創建腳本

在項目名稱上點擊鼠標右鍵,創建一個python文件

Python+Selenium自動化環境搭建與操作的示例分析

輸入腳本名稱,按Enter鍵創建文件

Python+Selenium自動化環境搭建與操作的示例分析

3、selenium 下載安裝

(1) 通過 pip 命令下載

WINDOS + R 輸入CMD 打開DOS窗口

輸入:pip insatall selenium

Python+Selenium自動化環境搭建與操作的示例分析

如果在安裝時出現了以下內容,就是pip版本的問題,

Python+Selenium自動化環境搭建與操作的示例分析

輸入:python.exe -m pip install --upgrade pip 升級一下版本就行

Python+Selenium自動化環境搭建與操作的示例分析

安裝完成后 可以在 python>lib>site-packages目錄下查看

Python+Selenium自動化環境搭建與操作的示例分析

(2) 通過 pycharm 下載

打開pycharm 點擊左上角 【file】 選擇 settings

Python+Selenium自動化環境搭建與操作的示例分析

選擇項目 ,點擊【+】

Python+Selenium自動化環境搭建與操作的示例分析

輸入selenium ,選擇合適的版本(可以不選擇版本) 雙擊進行安裝

Python+Selenium自動化環境搭建與操作的示例分析

(3) 通過下載selenium安裝包進行下載

下載地址:點擊這里下載

下載完成后放在 python>lib>site-packages 目錄下

或者

項目所在位置 如 D:\pythonProject\venv\Lib\site-packages

Python+Selenium自動化環境搭建與操作的示例分析

4、瀏覽器驅動下載安裝

注意!!! 驅動版本必須要和瀏覽器版本一致

查看瀏覽器版本一般在瀏覽器設置中的關于里面,用Edge瀏覽器舉例:版本號為:版本 96.0.1054.62

Python+Selenium自動化環境搭建與操作的示例分析

驅動下載后放置于放在python根目錄下

Python+Selenium自動化環境搭建與操作的示例分析

(1)Edge 驅動下載安裝

下載地址:點擊這里下載

注意版本一致,系統一致

Python+Selenium自動化環境搭建與操作的示例分析

(2)Chrome 驅動下載安裝

下載地址:點擊這里下載

Chrome驅動 瀏覽器最新版在網頁靠近下方位置

Python+Selenium自動化環境搭建與操作的示例分析

點擊相應版本進去

點擊文件將自動下載

Python+Selenium自動化環境搭建與操作的示例分析

(3)IE 驅動下載安裝

下載地址:點擊這里下載

官網有4.0版的IE驅動,點擊即可下載

Python+Selenium自動化環境搭建與操作的示例分析

其他版本下載地址:

下載地址:點擊這里下載

Python+Selenium自動化環境搭建與操作的示例分析

(4)Firefox 驅動下載安裝

下載地址:點擊這里下載

這里是版本號:

Python+Selenium自動化環境搭建與操作的示例分析

在這里下載:

Python+Selenium自動化環境搭建與操作的示例分析

另外這個網站也可以下載

下載地址:點擊這里下載

二、Selenium 簡介

Selenium 是什么?

Selenium是針對Web應用的開源自動化測試工具,通過編寫模擬用戶操作的腳本,它會打開瀏覽器對Web應用進行黑盒測試。可以方便的用于功能測試、兼容性測試、 穩定性測試及并發測試。目前已被主流瀏覽器廠商廣泛支持,同時也是很多其它自動化測試工具(比如,RobotFramework)的底層核心技術。Selenium由IDE、Remote Control(簡稱RC)、WebDriver、Grid四個工程組成:

(1)Selenium IDE

是一個用于錄制/回放測試腳本的Firefox附加組件,錄制的腳本可以生成基于Selenium RC的測試代碼(Java、Ruby、C#等)。適用于快速入門,不太適用于實際較大的測試項目;

(2)Selenium RC

RC由Server和Client組成兩部分組成,Server負責加載/關閉瀏覽器以及作為HTTP代理來訪問Web應用,Clinet支持多種編程語言和測試框架(TestNG、JUnit、NUnit等)。

(3)Selenium WebDriver

WebDriver作為Selenium2的核心特性提供比RC更簡潔易用的API,是官方推薦的RC替代方案。可以更好的支持動態網頁,不需要再額外啟動一個獨立的Server。

(4)Selenium Grid

是Selenium的一個擴展工具,可以很方便地同時在多臺機器上和異構環境中并行運行多個RC或WebDriver用例。

三、常用方法

1、瀏覽器操作

打開瀏覽器: (必須具備相應的驅動程序,如果打不開,基本是驅動程序配置有問題)

- webdriver.Chrome()			#打開谷歌瀏覽器
- webdriver.Firefox()			#打開火狐瀏覽器
- webdriver.Edge()				#打開Edge瀏覽器
- webdriver.Ie()				#打開IE瀏覽器
- webdriver.Safari()			#打開Safari瀏覽器
- webdriver.Opera() 			#打開Opera瀏覽器

關閉瀏覽器

- quit()			#退出瀏覽器--退出整個瀏覽器  
- close()			#關閉瀏覽器--當前頁面【開了多個頁面時,無法關閉】  
- os.system('taskkill /im chrome.exe /F')   #殺死進程

刷新瀏覽器

dr.refresh()    #刷新

前進后退

dr.forward() #前進
dr.back()   #后退

調整窗口大小

dr.maximize_window()
dr.minimize_window()
dr.set_window_size(300,400)

訪問URL地址

dr.get('http://192.168.14.162:8081/agileone1/')

2、如何獲取頁面元素

首先打開瀏覽器,按F12 進入開發者模式

Python+Selenium自動化環境搭建與操作的示例分析

點擊右上角三個點,可以選擇開發框停靠位置,點擊元素即可查看頁面屬性詳情

Python+Selenium自動化環境搭建與操作的示例分析

使用開發欄左上角檢查功能 快捷鍵CTRL+SHIFT+C,鼠標懸停至一個元素時,會自動定位到HTML元素位置

Python+Selenium自動化環境搭建與操作的示例分析

當我們定位到該元素的時候 ,可以去查看它包含了哪些屬性,適合使用哪些屬性進行定位:

屬性定位優先級 : ID>Name>CSS>XPath

快捷復制元素屬性值的方法:

1、選擇合適的屬性,雙擊 CTRL+C

Python+Selenium自動化環境搭建與操作的示例分析

2、定位到屬性后鼠標郵件,選擇復制(COPY)—> 選擇合適的類型

Python+Selenium自動化環境搭建與操作的示例分析

3、查找定位頁面元素的方法

方式一 :

單個元素獲取 (有時候會提示此種方式已經被拋棄了,可以選擇第二種方式進行獲取)

    - driver.find_element_by_id('username')  				#通過id獲取
    - driver.find_element_by_class_name('login-password')  	#通過class獲取
    - driver.find_element_by_name('')  						#通過name 屬性獲取
    - driver.find_element_by_link_text('※ 公告管理 ※') 	#通過超鏈接文本獲取  
    - driver.find_element_by_partial_link_text('公告管理') 	#通過超鏈接文本部分獲取  
    - driver.find_element_by_css_selector('input#username.login-username')  #通過CSS獲取
    - driver.find_element_by_tag_name('input')  			#通過tag name定位
    - driver.find_element_by_xpath('//*[@id="username"])   	#通過xpath定位

批量元素獲取

driver.find_elements_by_屬性名('屬性值')

示例:

driver.find_elements_by_class_name('form-control')[0].send_keys('admin')

方式二:

需要導入模塊 from selenium.webdriver.common.by import By

單個元素獲取:

- driver.find_element(by=By.ID,value="屬性值")	#通過ID定位
- driver.find_element(by=By.XPATH,value="屬性值")
- driver.find_element(by=By.CLASS_NAME,value="屬性值")
- driver.find_element(by=By.CSS_SELECTOR,value="屬性值")
- driver.find_element(by=By.NAME,value="屬性值")
- driver.find_element(by=By.LINK_TEXT,value="屬性值")
- driver.find_element(by=By.TAG_NAME,value="屬性值")
- driver.find_element(by=By.PARTIAL_LINK_TEXT,value="屬性值")

多元素獲取:

driver.find_elements(by=By.ID,value='屬性值')[索引位置].send_keys('輸入的內容')

例子:

driver.find_elements(by=By.ID,value='username')[0].send_keys('admin')

4、操作方法

代碼操作
send_keys(‘輸入內容’)輸入文本
click()點擊
clear()清空
text獲取文本信息
double_click雙擊
context_click右鍵
move_to_element懸停
drag_and_drop(before,after)拖拽

5、下拉框操作

Select(driver.find_element_by_id('scope')).select_by_visible_text('所有項目') #依據文本  

Select(driver.find_element_by_id('scope')).select_by_index(1)		#依據索引位置  

Select(driver.find_element_by_id('scope')).select_by_value('0')	#依據value值

6、WINDOS彈窗

 driver.switch_to.alert().accept()  	#alert--提示確認:

driver.switch_to.alert.dismiss()		#取消

driver.switch_to.alert.send_keys() 		#文本提示

driver.switch_to.alert.text				#獲取提示框中的文本信息

7、iframe內嵌頁面處理

處理鑲嵌在HTML頁面中iframe頁面(一個HTML頁面中包裹著另一個HTML頁面)

Python+Selenium自動化環境搭建與操作的示例分析

首選需要定位到該內嵌頁面:

iframe=driver.find_element(by="xpath",value="/html/body/div[2]/div[3]/div[1]/div/div[4]/div[1]/div[1]/iframe")

然后切換焦點

driver.switch_to.frame(iframe)   #切換至內嵌頁面

切換后執行操作

		driver.find_element(by="name",value="email").clear()    #清除內容
        time.sleep(0.5)
        driver.find_element(by="name",value="email").send_keys("a123456")	#輸入賬戶
        time.sleep(0.5)
        driver.find_element(by="name",value="password").clear()    #清除內容
        time.sleep(0.5)
        driver.find_element(by="name", value="password").send_keys("a123456")	#輸入密碼
        time.sleep(0.5)
        driver.find_element(by="id",value="dologin").click()        #點擊進入郵箱首頁

執行完成后切換至父級界面

driver.switch_to.parent_frame()  # 切回父級頁面

8、上傳文件

1、針對與<input>標簽,以及 type=file 類型,可以直接輸用send_keys

driver.find_element_by_id("imgfile").send_keys("D:\pictyres\selenium.png")

2、使用鍵盤事件上傳文件

需要安裝 pykeyboard 模塊

driver.find_element_by_xpath('元素位置').click() 
pk=PyKeyboard()    #實例化
pk.type_string(r'文件路徑')
pk.press_key(pk.enter_key)  #按壓
pk.release_key(pk.enter_key)  #釋放

9、切換頁面

句柄切換 driver.switch_to.window('新句柄')

for handle in driver.window_handles:	#遍歷
	if handle !=driver.current_window_handle:	
		driver.switch_to.window(handle)

#句柄切換
driver.swithch_to_window(driver.window_handles[-1])
print(driver.current_window_handle)

10、截圖

 		driver.get_screenshot_as_file(filename)
        driver.save_screenshot(filename)
        driver.get_screenshot_as_png()
        driver.get_screenshot_as_base64()

以下是我在實際運用中獲取截圖寫入數據庫的一個方法

Python+Selenium自動化環境搭建與操作的示例分析

11、等待時間

強制等待 :

首先需要導包 import time

time.sleep(2),常用于獲取文本前設置,單位秒

隱式等待:

常用于初始化時,設置全局等待

dr.implicitly_wait(5)

顯示等待:

常用于指定元素出現時方可操作

WebDriverWait(driver=dr,timeout=5,poll_frequency=0.5).until(lambda dr:dr.find_element_by_link_text('注銷'))

12 、 js注入

(1) 滑動到指定位置

target = driver.find_elements_by_class_name(f"屬性值")[0]  # 獲取元素

driver.execute_script("arguments[0].scrollIntoView();", target)  # 滑動到指定元素位置

(2)上滑下滑頁面

driver.execute_script('window.scrollBy(0,600)')  # 下滑頁面

driver.execute_script('window.scrollBy(0,-600)')  # 上滑頁面

13 、斷言方法及策略

在斷言時,應盡可能的使用and方法覆蓋以下斷言方法

1.檢查文本提示信息是否滿足預期

2.檢查數據后臺數據是否正確(后臺 前端)&mdash;數據庫斷言 表 字段pymysql 連接 游標 SQL 獲取結果

3.業務洛基斷言:選擇關聯的功能來確定正確性,比如:上傳文件,斷言:搜索文件是否存在且一致

4.斷言方法

is_displayed()顯示,存在

以上是“Python+Selenium自動化環境搭建與操作的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西平县| 汨罗市| 承德县| 资溪县| 安乡县| 广宁县| 双峰县| 十堰市| 凌海市| 洛扎县| 泰和县| 津南区| 灵川县| 鄂尔多斯市| 嘉义市| 武鸣县| 伊吾县| 台安县| 罗平县| 宁强县| 中超| 金湖县| 申扎县| 和田市| 保亭| 金平| 册亨县| 嘉禾县| 来凤县| 大悟县| 泰和县| 高尔夫| 丘北县| 信宜市| 马鞍山市| 达尔| 墨竹工卡县| 丰宁| 新建县| 长白| 霍林郭勒市|