最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python+Selenium自動(dòng)化環(huán)境搭建與操作基礎(chǔ)詳解

 更新時(shí)間:2022年03月11日 16:30:43   作者:佛系的老肖  
Selenium是如今最常用的自動(dòng)化測(cè)試工具之一,支持快速開發(fā)自動(dòng)化測(cè)試框架,且支持在多種瀏覽器上執(zhí)行測(cè)試。本文將介紹關(guān)于Selenium?Python自動(dòng)化腳本環(huán)境搭建的相關(guān)資料,需要的朋友可以參考下

一、環(huán)境搭建

1、python 安裝

下載地址:點(diǎn)擊這里下載

選擇合適的版本進(jìn)行安裝

在這里插入圖片描述

根據(jù)自己的操作系統(tǒng)類型以及位數(shù)選擇

在這里插入圖片描述

WINDOS + R 輸入cmd

打開DOS窗口,檢查環(huán)境變量是否配置正確

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

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

2、pycharm 下載安裝

(1)pycharm下載

下載地址:點(diǎn)擊這里下載

右側(cè)為社區(qū)版,開源免費(fèi)

左側(cè)為專業(yè)版,收費(fèi)

在這里插入圖片描述

(2) 安裝

運(yùn)行exe程序,點(diǎn)擊【Next】

在這里插入圖片描述

選擇安裝目錄后,點(diǎn)擊【Next】

在這里插入圖片描述

勾選相關(guān)選項(xiàng)后點(diǎn)擊【Next】

在這里插入圖片描述

點(diǎn)擊【Install】完成安裝

等待安裝完成即可

在這里插入圖片描述

點(diǎn)擊【Finish】完成安裝

(3)創(chuàng)建項(xiàng)目

運(yùn)行pycharm,點(diǎn)擊【New Project】

在這里插入圖片描述

配置項(xiàng)目基本信息

(1) 選擇項(xiàng)目的存儲(chǔ)路徑

(2) 選擇項(xiàng)目依賴的Python庫,會(huì)在項(xiàng)目中創(chuàng)建一個(gè)venv的虛擬環(huán)境

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

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

在這里插入圖片描述

創(chuàng)建腳本

在項(xiàng)目名稱上點(diǎn)擊鼠標(biāo)右鍵,創(chuàng)建一個(gè)python文件

在這里插入圖片描述

輸入腳本名稱,按Enter鍵創(chuàng)建文件

在這里插入圖片描述

3、selenium 下載安裝

(1) 通過 pip 命令下載

WINDOS + R 輸入CMD 打開DOS窗口

輸入:pip insatall selenium

在這里插入圖片描述

如果在安裝時(shí)出現(xiàn)了以下內(nèi)容,就是pip版本的問題,

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

(2) 通過 pycharm 下載

打開pycharm 點(diǎn)擊左上角 【file】 選擇 settings

在這里插入圖片描述

選擇項(xiàng)目 ,點(diǎn)擊【+】

在這里插入圖片描述

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

在這里插入圖片描述

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

下載地址:點(diǎn)擊這里下載

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

或者

項(xiàng)目所在位置 如 D:\pythonProject\venv\Lib\site-packages

4、瀏覽器驅(qū)動(dòng)下載安裝

注意?。?! 驅(qū)動(dòng)版本必須要和瀏覽器版本一致

查看瀏覽器版本一般在瀏覽器設(shè)置中的關(guān)于里面,用Edge瀏覽器舉例:版本號(hào)為:版本 96.0.1054.62

在這里插入圖片描述

驅(qū)動(dòng)下載后放置于放在python根目錄下

在這里插入圖片描述

(1)Edge 驅(qū)動(dòng)下載安裝

下載地址:點(diǎn)擊這里下載

注意版本一致,系統(tǒng)一致

在這里插入圖片描述

(2)Chrome 驅(qū)動(dòng)下載安裝

下載地址:點(diǎn)擊這里下載

Chrome驅(qū)動(dòng) 瀏覽器最新版在網(wǎng)頁靠近下方位置

在這里插入圖片描述

點(diǎn)擊相應(yīng)版本進(jìn)去

點(diǎn)擊文件將自動(dòng)下載

在這里插入圖片描述

(3)IE 驅(qū)動(dòng)下載安裝

下載地址:點(diǎn)擊這里下載

官網(wǎng)有4.0版的IE驅(qū)動(dòng),點(diǎn)擊即可下載

在這里插入圖片描述

其他版本下載地址:

下載地址:點(diǎn)擊這里下載

在這里插入圖片描述

(4)Firefox 驅(qū)動(dòng)下載安裝

下載地址:點(diǎn)擊這里下載

這里是版本號(hào):

在這里插入圖片描述

在這里下載:

在這里插入圖片描述

另外這個(gè)網(wǎng)站也可以下載

下載地址:點(diǎn)擊這里下載

二、Selenium 簡(jiǎn)介

Selenium 是什么?

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

(1)Selenium IDE

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

(2)Selenium RC

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

(3)Selenium WebDriver

WebDriver作為Selenium2的核心特性提供比RC更簡(jiǎn)潔易用的API,是官方推薦的RC替代方案??梢愿玫闹С謩?dòng)態(tài)網(wǎng)頁,不需要再額外啟動(dòng)一個(gè)獨(dú)立的Server。

(4)Selenium Grid

是Selenium的一個(gè)擴(kuò)展工具,可以很方便地同時(shí)在多臺(tái)機(jī)器上和異構(gòu)環(huán)境中并行運(yùn)行多個(gè)RC或WebDriver用例。

三、常用方法

1、瀏覽器操作

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

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

關(guān)閉瀏覽器

- quit()			#退出瀏覽器--退出整個(gè)瀏覽器  
- close()			#關(guān)閉瀏覽器--當(dāng)前頁面【開了多個(gè)頁面時(shí),無法關(guān)閉】  
- os.system('taskkill /im chrome.exe /F')   #殺死進(jìn)程

刷新瀏覽器

dr.refresh()    #刷新

前進(jìn)后退

dr.forward() #前進(jìn)
dr.back()   #后退

調(diào)整窗口大小

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

訪問URL地址

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

2、如何獲取頁面元素

首先打開瀏覽器,按F12 進(jìn)入開發(fā)者模式

在這里插入圖片描述

點(diǎn)擊右上角三個(gè)點(diǎn),可以選擇開發(fā)框??课恢?,點(diǎn)擊元素即可查看頁面屬性詳情

在這里插入圖片描述

使用開發(fā)欄左上角檢查功能 快捷鍵CTRL+SHIFT+C,鼠標(biāo)懸停至一個(gè)元素時(shí),會(huì)自動(dòng)定位到HTML元素位置

在這里插入圖片描述

當(dāng)我們定位到該元素的時(shí)候 ,可以去查看它包含了哪些屬性,適合使用哪些屬性進(jìn)行定位:

屬性定位優(yōu)先級(jí) : ID>Name>CSS>XPath

快捷復(fù)制元素屬性值的方法:

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

在這里插入圖片描述

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

在這里插入圖片描述

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

方式一 :

單個(gè)元素獲取 (有時(shí)候會(huì)提示此種方式已經(jīng)被拋棄了,可以選擇第二種方式進(jìn)行獲取)

    - 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')

方式二:

需要導(dǎo)入模塊 from selenium.webdriver.common.by import By

單個(gè)元素獲?。?/p>

- 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="屬性值")

多元素獲?。?/p>

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

例子:

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

4、操作方法

代碼操作
send_keys(‘輸入內(nèi)容’)輸入文本
click()點(diǎn)擊
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('所有項(xiàng)目') #依據(jù)文本  

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

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

6、WINDOS彈窗

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

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

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

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

7、iframe內(nèi)嵌頁面處理

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

在這里插入圖片描述

首選需要定位到該內(nèi)嵌頁面:

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

然后切換焦點(diǎn)

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

切換后執(zhí)行操作

		driver.find_element(by="name",value="email").clear()    #清除內(nèi)容
        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()    #清除內(nèi)容
        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()        #點(diǎn)擊進(jìn)入郵箱首頁

執(zhí)行完成后切換至父級(jí)界面

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

8、上傳文件

1、針對(duì)與<input>標(biāo)簽,以及 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()    #實(shí)例化
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()

以下是我在實(shí)際運(yùn)用中獲取截圖寫入數(shù)據(jù)庫的一個(gè)方法

在這里插入圖片描述

11、等待時(shí)間

強(qiáng)制等待 :

首先需要導(dǎo)包 import time

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

隱式等待:

常用于初始化時(shí),設(shè)置全局等待

dr.implicitly_wait(5)

顯示等待:

常用于指定元素出現(xiàn)時(shí)方可操作

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

12 、 js注入

(1) 滑動(dòng)到指定位置

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

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

(2)上滑下滑頁面

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

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

13 、斷言方法及策略

在斷言時(shí),應(yīng)盡可能的使用and方法覆蓋以下斷言方法

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

2.檢查數(shù)據(jù)后臺(tái)數(shù)據(jù)是否正確(后臺(tái) 前端)—數(shù)據(jù)庫斷言 表 字段pymysql 連接 游標(biāo) SQL 獲取結(jié)果

3.業(yè)務(wù)洛基斷言:選擇關(guān)聯(lián)的功能來確定正確性,比如:上傳文件,斷言:搜索文件是否存在且一致

4.斷言方法

is_displayed()顯示,存在

以上就是Python+Selenium自動(dòng)化環(huán)境搭建與操作基礎(chǔ)詳解的詳細(xì)內(nèi)容,更多關(guān)于Python Selenium環(huán)境搭建的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python入門教程(二十一)Python的數(shù)組

    Python入門教程(二十一)Python的數(shù)組

    這篇文章主要介紹了Python入門教程(二十一)Python的數(shù)組,數(shù)組是一種特殊變量,數(shù)組可以在單個(gè)名稱下保存多個(gè)值,我們可以通過引用索引號(hào)來訪問這些值,需要的朋友可以參考下
    2023-04-04
  • Python?Pandas中缺失值NaN的判斷,刪除及替換

    Python?Pandas中缺失值NaN的判斷,刪除及替換

    缺失值是指數(shù)據(jù)集中的某些觀察存在遺漏的指標(biāo)值,缺失值的存在同樣會(huì)影響到數(shù)據(jù)剖析和挖掘的效果,下面這篇文章主要給大家介紹了關(guān)于Python?Pandas中缺失值NaN的判斷,刪除及替換的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • python+opencv實(shí)現(xiàn)閾值分割

    python+opencv實(shí)現(xiàn)閾值分割

    這篇文章主要為大家詳細(xì)介紹了python+opencv實(shí)現(xiàn)閾值分割的相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Python 讀取千萬級(jí)數(shù)據(jù)自動(dòng)寫入 MySQL 數(shù)據(jù)庫

    Python 讀取千萬級(jí)數(shù)據(jù)自動(dòng)寫入 MySQL 數(shù)據(jù)庫

    這篇文章主要介紹了Python 讀取千萬級(jí)數(shù)據(jù)自動(dòng)寫入 MySQL 數(shù)據(jù)庫,本篇文章會(huì)給大家系統(tǒng)的分享千萬級(jí)數(shù)據(jù)如何寫入到 mysql,分為兩個(gè)場(chǎng)景,兩種方式
    2022-06-06
  • 利用Python快速繪制海報(bào)地圖

    利用Python快速繪制海報(bào)地圖

    這篇文章主要介紹了如何利用Python快速繪制海報(bào)級(jí)別的地圖,,需要的朋友可以參考下面文章的詳細(xì)介紹
    2021-09-09
  • python ssh 執(zhí)行shell命令的示例

    python ssh 執(zhí)行shell命令的示例

    這篇文章主要介紹了python ssh 執(zhí)行shell命令的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-09-09
  • 使用Python計(jì)算隱含波動(dòng)率

    使用Python計(jì)算隱含波動(dòng)率

    隱含波動(dòng)率(Implied?Volatility)在金融領(lǐng)域是一個(gè)核心概念,用于描述市場(chǎng)對(duì)于未來資產(chǎn)價(jià)格波動(dòng)的預(yù)期程度,本文將詳細(xì)介紹如何使用Python計(jì)算隱含波動(dòng)率,需要的可以了解下
    2024-11-11
  • python虛擬環(huán)境遷移方法

    python虛擬環(huán)境遷移方法

    今天小編就為大家分享一篇python虛擬環(huán)境遷移方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python爬蟲獲取數(shù)據(jù)保存到數(shù)據(jù)庫中的超詳細(xì)教程(一看就會(huì))

    Python爬蟲獲取數(shù)據(jù)保存到數(shù)據(jù)庫中的超詳細(xì)教程(一看就會(huì))

    使用爬蟲爬數(shù)據(jù),總要涉及到數(shù)據(jù)持久化,也就是數(shù)據(jù)存儲(chǔ)的問題,下面這篇文章主要給大家介紹了關(guān)于Python爬蟲獲取數(shù)據(jù)保存到數(shù)據(jù)庫中的超詳細(xì)教程,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • django雙下劃線的具體使用

    django雙下劃線的具體使用

    雙下劃線約定通常用于執(zhí)行一些特定的查詢操作,本文主要介紹了django雙下劃線的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05

最新評(píng)論

山丹县| 扬州市| 吉隆县| 宣恩县| 穆棱市| 大姚县| 平舆县| 辰溪县| 盱眙县| 孝昌县| 大化| 津市市| 新疆| 玛沁县| 黑山县| 抚州市| 民乐县| 界首市| 周至县| 徐汇区| 云霄县| 浏阳市| 高安市| 上栗县| 常宁市| 林口县| 伽师县| 奉贤区| 万源市| 遂川县| 同心县| 旺苍县| 隆昌县| 林西县| 炉霍县| 土默特左旗| 肇庆市| 敦煌市| 遂川县| 永安市| 门源|