日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python中Selenium模塊的使用詳解

瀏覽:89日期:2022-07-09 08:00:21

Selenium的介紹、配置和調用

Selenium(瀏覽器自動化測試框架) 是一個用于Web應用程序測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE(7, 8, 9, 10, 11),Firefox,Safari,Google Chrome,Opera等。這個工具的主要功能包括:測試瀏覽器的兼容性——測試你的應用程序看是否能夠很好得工作在不同瀏覽器和操作系統之上。測試系統功能——創建回歸測試檢驗軟件功能和用戶需求。支持自動錄制動作和自動生成 .Net、Java、Perl等不同語言的測試腳本。

框架底層使用JavaScript模擬真實用戶對瀏覽器進行操作。測試腳本執行時,瀏覽器自動按照腳本代碼做出點擊,輸入,打開,驗證等操作,就像真實用戶所做的一樣,從終端用戶的角度測試應用程序。 使瀏覽器兼容性測試自動化成為可能,盡管在不同的瀏覽器上依然有細微的差別。 使用簡單,可使用Java,Python等多種語言編寫用例腳本。

Selenium的配置

1、安裝 Selenium模塊: pip install Selenium

2、下載瀏覽器驅動,Selenium3.x調用瀏覽器必須有一個webdriver驅動文件

Chrome驅動文件下載:點擊下載chromedrive

Firefox 驅動文件下載 :點解下載geckodriver

下載之后,解壓到任意目錄(路徑不要有中文)。

Selenium的調用

from selenium import webdriver## 如果是chrome瀏覽器的驅動driver=webdriver.Chrome('G:Anaconda3-5.3.0chromedriver.exe')##如果是firefox瀏覽器的驅動driver=webdriver.Firefox(executable_path='G:Anaconda3-5.3.0geckodriver.exe')######如果瀏覽器驅動的目錄加入了環境變量的話## 如果是chrome瀏覽器的驅動driver=webdriver.Chrome()##如果是firefox瀏覽器的驅動driver=webdriver.Firefox()

Selenium的使用 定位

Selenium提供了8種定位方式

1.id2.name3.class name4.tag name5.link text6.partial link text7.xpath8.css selector

定位元素的使用

定位一個元素 定位多個元素 含義 find_element_by_id find_elements_by_id 通過元素id定位 find_element_by_name find_elements_by_name 通過元素name定位 find_element_by_class_name find_elements_by_class_name 通過classname進行定位 find_element_by_tag_name find_elements_by_tag_name 通過標簽定位 find_element_by_link_text find_elements_by_link_tex 通過完整超鏈接定位 find_element_by_partial_link_text find_elements_by_partial_link_text 通過部分鏈接定位 find_elements_by_css_selector find_elements_by_css_selector 通過css選擇器進行定位 find_element_by_xpath find_elements_by_xpath 通過xpath表達式定位

例如:

<html> <body> <form id='loginForm'> <input name='username' type='text' classname='xie' /> <input name='password' type='password' 型號 /> <input name='continue' type='submit' value='Login' /> <input name='continue' type='button' value='Clear' /> </form> <a rel='external nofollow' >百度一下</a> </body></html>

通過id進行定位第一個input框: find_element_by_id('key')

通過name進行定位第一個input框:find_element_by_name('username')

通過classname進行定位第一個input框:find_element_by_class_name('xie')

通過標簽tag進行定位input框:find_element_by_tag_name('input') //這里input太多了,用input標簽定位會出錯

通過完整超鏈接定位a標簽: find_element_by_link_text('百度一下')

用xpath進行定位:

用絕對路徑進行定位,input[1]代表form下面的第一個input標簽,從1開始, input=input[1]driver.find_elemant_by_xpath('//html/body/form/input[1]')用相對路徑進行定位,form標簽下的第一個input標簽,[1]省略了driver.find_element_by_xpath('//form/input')用相對路徑和屬性進行定位,form標簽下的input標簽的name值等于username的標簽driver.find_element_by_xpath('//form/input[@name=’username’]')其他的屬性值如果太長,也可以采取模糊方法定位例如頁面中有這么一個標簽 <a rel='external nofollow' >百度一下</a>則可以這么使用 driver.find_element_by_xpath('//a[contains(@href,’login’)]')

以上是普通的情況,存在可以定位的屬性,當某個元素的各個屬性及其組合都不足以定位時,我們可以利用其兄弟節點或者父節點等各種可以定位的元素進行定位,先看看xpath中支持的方法:

1、child 選取當前節點的所有子元素

2、parent 選取當前節點的父節點

3、descendant選取當前節點的所有后代元素(子、孫等)

4、ancestor 選取當前節點的所有先輩(父、祖父等)

5、descendant-or-self選取當前節點的所有后代元素(子、孫等)以及當前節點本身

6、ancestor-or-self 選取當前節點的所有先輩(父、祖父等)以及當前節點本身

7、preceding-sibling選取當前節點之前的所有同級節點

8、following-sibling選取當前節點之后的所有同級節點

9、preceding 選取文檔中當前節點的開始標簽之前的所有節點

10、following 選取文檔中當前節點的結束標簽之后的所有節點

11、self 選取當前節點

12、attribute 選取當前節點的所有屬性

13、namespace選取當前節點的所有命名空間節點

Python中Selenium模塊的使用詳解

上圖實例,需要點擊訂單號為17051915200001的發貨按鈕,這時候不能直接定位到發貨按鈕,而是要先定位到訂單號元素,再定位他的兄弟節點。參照上圖,我們首先定位到td標簽中包含訂單號的td元素,然后選擇其之后的同級節點,following-sibling,我們要找的元素在后面的第8個td標簽下,因此定位可以寫名為下面的格式

driver.find_element_by_xpath('//td[contains(text(),’17051915200001’)]/following-sibling::td[8]/a[@class=’link’]')

但是如果頁面中有兩個相同的定位元素的話,我們這樣使用就有可能會報錯

比如有下面兩個輸入框,一個輸入用戶名的,一個輸入密碼的,但是 class 都是等于 inputclass 。這時,如果我們使用class_name 來定位元素的話,就會出現意想不到的錯誤

<input type='text' name='username'><input type='password' name='password'><br/>#python代碼driver.find_element_by_class_name('inputclass').send_keys('admin')driver.find_element_by_class_name('inputclass').send_keys('password')

我們的本意是在username框內輸入admin,password框內輸入 password 。但是由于兩個框的 class 相同,而我們又是使用class_name進行元素的定位,所以我們所有的操作都會對第一個元素進行。

Python中Selenium模塊的使用詳解

還有如果我們定位的元素頁面沒有的話,也會報錯

比如我們使用這條語句用class_name來進行定位元素,但是當頁面沒有 class_name='aa' 的元素的話,就會報錯,表示找不到通過 class name 方法找的元素 aa

driver.find_element_by_class_name('aa').send_keys('bb')NoSuchElementException: no such element: Unable to locate element: {'method':'class name','selector':'aa'}

定位下拉標簽元素

Python中Selenium模塊的使用詳解

import SelectSelect(driver.find_element_by_xpath('//select[@id=’9560af43bfc949c4826d329c352e4eb6_class’]')).select_by_index(4) #定位公共互聯網環境

在iframe框架之間切換

Python中Selenium模塊的使用詳解

#切換到指定的iframe框架driver.switch_to.frame('mainFrame') #切換iframe框架driver.switch_to.default_content() #切換到主框架

上傳文件

上傳文件使用的是AutoIt,安裝好后,打開AutoIt Window Info,鼠標選中Finder Tool,然后鼠標左鍵按住拖到文件名框內,得到如圖數據

Python中Selenium模塊的使用詳解

然后鼠標選中Finder Tool,鼠標左鍵按住拖到打開按鈕,得到如圖數據

Python中Selenium模塊的使用詳解

打開SciTE Script Editor,輸入如下內容

Python中Selenium模塊的使用詳解

WinWait('CLASS:#32770','',5) #設置5秒用于等待上傳窗口的顯示ControlFocus('打開','','Edit1') #把輸入焦點定位到上傳文本框中ControlSetText('打開','','Edit1','C:Users17250Desktop1.txt') #輸入文件路徑Sleep(5000) #等待上傳時間,單位毫秒ControlClick('打開','','Button1'); #點擊打開按鈕,開始上傳

保存為1.au3,點擊Tools->Go運行。

然后打開Compile Script to .exe ,然后選中1.au3,它會自動將其轉換為1.exe。

Python中Selenium模塊的使用詳解

在python中使用

os.system('C:Users17250Desktop1.exe')

Webdriver模塊的使用

控制瀏覽器操作的一些方法

方法 說明 set_window_size() 設置瀏覽器的大小 back() 控制瀏覽器后退 forward() 控制瀏覽器前進 refresh() 刷新當前頁面 clear() 清除文本 send_keys (value) 模擬按鍵輸入 click() 單擊元素 submit() 用于提交表單 get_attribute(name) 獲取元素屬性值 is_displayed() 設置該元素是否用戶可見 size 返回元素的尺寸 text 獲取元素的文本

鼠標事件

在 WebDriver 中, 將這些關于鼠標操作的方法封裝在 ActionChains 類提供。

方法 說明 ActionChains(driver) 構造ActionChains對象 context_click() 執行鼠標懸停操作 move_to_element(above) 右擊 double_click() 雙擊 drag_and_drop() 拖動 move_to_element(above) 執行鼠標懸停操作 context_click() 用于模擬鼠標右鍵操作, 在調用時需要指定元素定位 perform() 執行所有 ActionChains 中存儲的行為,可以理解成是對整個操作的提交動作

鍵盤事件

Selenium中的Key模塊為我們提供了模擬鍵盤按鍵的方法,那就是send_keys()方法。它不僅可以模擬鍵盤輸入,也可以模擬鍵盤的操作。

常用的鍵盤操作如下:

模擬鍵盤按鍵 說明 send_keys(Keys.BACK_SPACE) 刪除鍵(BackSpace) send_keys(Keys.SPACE) 空格鍵(Space) send_keys(Keys.TAB) 制表鍵(Tab) send_keys(Keys.ESCAPE) 回退鍵(Esc) send_keys(Keys.ENTER) 回車鍵(Enter)

組合鍵的使用

模擬鍵盤按鍵 說明 send_keys(Keys.CONTROL,‘a’) 全選(Ctrl+A) send_keys(Keys.CONTROL,‘c’) 復制(Ctrl+C) send_keys(Keys.CONTROL,‘x’) 剪切(Ctrl+X) send_keys(Keys.CONTROL,‘v’) 粘貼(Ctrl+V) send_keys(Keys.F1…Fn) 鍵盤 F1…Fn

獲取斷言信息

不管是在做功能測試還是自動化測試,最后一步需要拿實際結果與預期進行比較。這個比較的稱之為斷言。通過我們獲取title 、URL和text等信息進行斷言。

屬性 說明 title 用于獲得當前頁面的標題 current_url 用戶獲得當前頁面的URL text 獲取搜索條目的文本信息

參考文章:https://blog.csdn.net/weixin_36279318/article/details/79475388

到此這篇關于Python中Selenium模塊的使用詳解的文章就介紹到這了,更多相關Python Selenium模塊使用內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩欧美自拍| 亚洲高清影视| 欧美极品一区二区三区| 国产精品chinese| 国产不卡av一区二区| 久久亚洲精品中文字幕蜜潮电影| 国产精品88久久久久久| 在线日韩成人| 国产精品99久久免费| 正在播放日韩精品| 欧美特黄一级| 欧美偷窥清纯综合图区| 肉色欧美久久久久久久免费看| 久久一级电影| 亚洲日本免费电影| 久久免费精品| 野花国产精品入口| 久久av免费看| 一区在线视频观看| 麻豆一区二区三| 精品在线99| 欧美一区成人| 亚洲二区精品| 国产精品一区二区三区av| 亚洲成人不卡| 深夜福利一区| 日韩av福利| 亚洲精品福利| 深夜福利视频一区二区| 男女男精品网站| 国产精品久久久久蜜臀| 欧美综合二区| 韩国一区二区三区视频| 国产精品试看| 色欧美自拍视频| 天堂va在线高清一区| 色婷婷精品视频| 国产精品片aa在线观看| 午夜亚洲精品| 日韩精品中文字幕第1页| 亚洲精品高潮| 精品中文字幕一区二区三区av| 国产精品美女午夜爽爽| 激情91久久| 中文字幕在线看片| 国产乱码精品| 免费在线观看成人| 亚洲日本网址| 久久av电影| 色综合视频一区二区三区日韩| 久久精品免费一区二区三区| 国产精品自拍区| 蜜臀久久99精品久久久久久9 | 精品国产亚洲一区二区三区在线| 激情久久中文字幕| 美女精品视频在线| 日韩欧美2区| 欧美/亚洲一区| 精品久久美女| 国产探花一区在线观看| 午夜一级久久| 亚洲欧美日韩高清在线| 超碰99在线| 免费一区二区三区在线视频| 亚洲精选成人| 六月婷婷一区| 午夜久久tv| 久久精品免费一区二区三区 | 精品无人区麻豆乱码久久久 | 欧美日韩一区二区三区不卡视频| 久久国产福利| 9色精品在线| 亚洲手机视频| 日韩精品首页| 神马午夜在线视频| 日韩1区2区| 福利一区二区| 成人精品高清在线视频| 国产三级一区| 日本亚洲三级在线| 视频在线观看91| 99re国产精品| 99国产成+人+综合+亚洲欧美| 色吊丝一区二区| 日韩黄色大片网站| 国产白浆在线免费观看| 欧美成人aaa| 国产精品久久久网站| 欧美日韩调教| 久久国产精品免费精品3p | 久久精品观看| 不卡一二三区| 欧美国产一级| 欧美精品高清| 99精品一区| av一区二区高清| 亚洲激情中文在线| 国产免费成人| 免费在线视频一区| 深夜福利亚洲| 欧美日韩中出| 久久亚洲人体| 国产日韩电影| 蜜臀久久99精品久久一区二区| 999久久久91| 午夜影院欧美| 亚洲一区欧美二区| 亚洲精品美女| 国产伦一区二区三区| 久久在线91| www成人在线视频| 在线视频精品| 日韩高清在线观看一区二区| 欧美日韩夜夜| 成人国产精品久久| 亚洲a在线视频| 在线一区免费观看| 日韩国产精品久久久久久亚洲| 国产精品一区二区三区www| 精品高清久久| 亚洲二区在线| 综合国产在线| 国产美女视频一区二区| 超碰在线99| 日韩视频二区| 日韩av一区二区在线影视| 国产精品对白久久久久粗| 国产成人精品一区二区免费看京 | 91欧美在线| 欧美日韩国产传媒| 日韩精品视频在线看| 久久久久97| 在线精品视频在线观看高清| 少妇精品在线| 久久99免费视频| 久久婷婷丁香| 中文无码久久精品| 久久超碰99| 99久久99久久精品国产片果冰| 男女男精品视频网| 精品国产乱码久久久| 91高清一区| 国产麻豆精品| 免费观看不卡av| 国产精品亚洲综合久久| 免费污视频在线一区| 亚洲精选久久| 亚洲最新无码中文字幕久久 | 成人在线观看免费视频| 欧美日韩国产欧| 久久不卡国产精品一区二区| 欧美.日韩.国产.一区.二区| 日韩精品视频网| 肉色欧美久久久久久久免费看| 亚洲综合福利| 不卡福利视频| 欧美伊人影院| 欧美69视频| 国产高清日韩| 日韩在线播放一区二区| 精品国产网站| 亚洲在线网站| 久久不卡日韩美女| 中文在线不卡| 成人午夜网址| 亚州精品视频| 久久精品免费一区二区三区| 久久精品av麻豆的观看方式| 欧美 日韩 国产精品免费观看| 国产欧美日韩亚洲一区二区三区| 欧美精选一区二区三区| 久久av免费| 综合一区二区三区| 欧美日韩一二三四| 精品一区二区三区四区五区| 视频一区视频二区中文字幕| av在线最新| 日韩精品午夜视频| 亚洲精品一区二区妖精| 日本久久综合| 国产麻豆精品| 亚洲伊人精品酒店| 久久亚洲国产| 91亚洲国产成人久久精品| 欧美日韩一区二区三区不卡视频 | 亚洲影视一区| 三上悠亚国产精品一区二区三区| 中文字幕一区二区三区日韩精品 | 国产福利一区二区三区在线播放| 国产精品日本| 日韩网站中文字幕| 国产精品欧美三级在线观看| 亚洲一区二区三区无吗| 成人自拍av| 国产一区二区三区四区五区| 日本午夜免费一区二区| 亚洲欧美久久久| 免费久久久久久久久| 精品国产免费人成网站| 美女视频黄 久久|