airtest內建python 和selenium庫,並且進行封裝,所以用來做web 自動化也是非常方便的
操作原理:
airtest web 自動化測試是基於python 語言和selenium 庫,通過呼叫chrome瀏覽器devtools protoco協議,將使用者
操作解析成python 指令碼
1、準備安裝chrome瀏覽器最(新版本為89版本)
會啟動不起來
2、啟動airtest設定chrome 瀏覽器的啟動檔案路徑
選項->設定->selenium->chromepath 設定chrome 啟動路徑->ok
3、在airtest 的視窗中勾選上selenium window
4、新建.air airtest專案
1) 新建.air 專案
2)點選啟動瀏覽器,匯入相應的包和初始化**
包的匯入和初始化**
5、windows 視窗操作
1)windows視窗連線
1、選擇遊戲視窗
開啟正在執行chrome的視窗,然後對需要的進行框選,則該視窗會展示在視窗介面
框選瀏覽器
選中後,該chrome 會在裝置視窗展示
2、搜尋視窗
搜尋選擇對應的視窗和選擇遊戲視窗差不多
3、其他
由於windows應用的底層實現各不相同,有些應用視窗如果使用預設的一鍵嵌入方法,在嵌入到airtestide裡之後會遇到一些問題(例如嵌入後無法用滑鼠操作、無法正常嵌入、 嵌入後無法顯示影象等)。
針對這些問題,我們提供了一種無嵌入連線的方案,請在airtestide的設定面板中,找到device
-windows embed backup method
,勾選後即可使用備用方案來連線視窗。
接下來的連線方式和常規方法一樣,點選選定視窗,然後選擇待測視窗程式:
1、視窗操作
web 錄製無法模擬的按鍵操作,可以手動通過**來完成,比如send keys, keys.enter 等等。
2、元素操作
·clear() 清楚元素輸入的內容
·send_keys() 模擬鍵盤按鍵輸入內容
·click() 模擬滑鼠對元素的點選
·submit()提交表單 sendkeys(keys.return)相當於回車登入, 如果需要輸入中文,防止編碼錯誤使用sendkeys(u"中文使用者名稱")
3、webelement介面可以獲取常用的值:
·size()獲取元素的尺寸
·text()獲取元素的文字
·get_attribute(id)獲取元素的屬性值
·location()獲取元素的座標值,先找到要獲取的元素,再呼叫該方法
·page_source()返回頁面的原始碼
·driver.title()返回頁面的標題
·current_url()獲取當前頁面的url 位址
·is_displayed()設定該元素是否可見
·is_enabled()判斷元素是否被選用
·is_selected()判斷元素是否被選中
·tag_name()返回tagname 的元素
4、常見鍵盤操作
5、元素定位
·find_element_by_id:確定元素的id名稱,直接通過id查詢可定位到元素,將返回頁面查詢到的第乙個id元素
·find_element_by_name:與id同樣,當確定元素的name名稱時,可直接通過name查詢定位元素,同樣地,selenium將會返回頁面查詢到的第乙個name元素
·find element by xpath:xpath在xml文件中可遍歷節點元素和屬性,是xml路徑語言。xpath同時擴充套件了通過id/name查詢元素的方式,即是說,如果當前元素是id值,xpath會自動識別成("//*[@id="top-menu"]),同時諸多態別如input、button、錨點a、iamge等都可以進行判斷,比如 ("//button[@data-role='submit']") ,xpath的形式複雜多變,對於**頁面千變萬化的內容而言,xpath能夠很好的自適應。
使用相對路徑的寫法以雙斜線開頭,絕對路徑以單斜線開頭從html最頂層開始遍歷,如下圖:
一般格式為//tagname[a href="">@attribute='value']/路徑/路徑,如//[@id="j_pmtaskinput"]/div/label , [*]表示包含所有
但不推薦使用絕對路徑,因為頁面可能經常元素變化,稍有改動可能就會導致定位失敗;相對路徑定位相對而言位置關係改動的概率更低,更靠譜,這樣指令碼健壯性適應性更強。
·find_elment_by_css_selector:通過css選擇器定位元素,將返回頁面第乙個匹配到的元素。
find_element_by_css_selector("button.ui.teal.j_pay") #查詢tagtype.class.class..
find_element_by_css_selector("div.ui.negative.button")
#查詢所有div標籤裡面class包含ui、negative、button的元素
常用的選擇器:
#表示id,查詢id名稱為j_milestone的屬性,以及該屬性的下一級div
.表示class,查詢該id下一級的div的class為os-milestone-check
*表示所有元素,>表示下一級
表示attribute,屬性名稱,[attribute=value] 指某屬性值的該屬性
:nth-child(n) 表示該父元素的第幾個子元素
css selector 相較於xpath的優點就是效能比xpath好,另外就是頁面排版布局位置有時候會變,但css selector相對更穩定,名稱一般不會經常變更。
·find_element_by_class_name:確定元素的class name,可通過class name直接查詢定位元素,將會返回該頁面第乙個匹配的class屬性的元素。
·find_element_by_link_text:這是乙個查詢超連結非常方便的乙個定位方法,當確切知道頁面的某個超連結使用的標籤文字名稱,那可以直接通過findelementbylinktext 查詢,將會返回頁面第乙個匹配的錨點標籤。
·find element by partial link text:這也是乙個查詢超連結的方法,跟findelementbylinktext的區別在於,前者是精確查詢,後者是模糊查詢,也是相當好用的定位方法;同樣地,也是會返回頁面第乙個匹配的錨點標籤。
6、返回多個元素
find elements 查詢元素的方法跟find element 是類似的,不同的是find elements會返回乙個list列表。
乙個完整的測試指令碼一定會包含對測試結果是否與**結果一致的對比,從而判斷指令碼是否執行成功,airtest提供了以下斷言方法:
自動化實訓裝置
zn 05g型 自動化實訓裝置 一 概述 zn 05g型 自動化實訓裝置需按照人社部頒發的 維修電工技術等級標準 和 職業技能鑑定規範 的內容要求,結合技能大賽電氣安裝與除錯專案的競賽規程,根據維修電工高階 技師培訓的實際情況建立集培訓學習 理論驗證 實訓操作 考核鑑定於一體的多功能實訓裝置。同時可...
(實操)Linux開機自動掛載
在給系統新增了磁碟以後,如果重啟系統我們會發現找不到儲存了 但是使用fdisk l可以看到儲存空間,說明儲存還在。這是因為關機後,掛載已經自動解除安裝掉了。我們當然可以手動再次將其掛載,但如果每次重啟都需要這樣手動操作會很不方便 因此我們可以利用自動掛載,這樣系統每次開機的時候就可以自動將磁碟掛載上...
自動化測試 引言 自動化之我見
作為開篇,這裡先簡單介紹一下個人情況 本人非計算機專業的本科畢業,從事軟體測試工作一年多了,同樣的,接觸自動化測試領域也有一年了,打算開個部落格把我在工作中所學到與自動化測試有關的東西分享出來。好啦,下面開始說正題 自動化測試自身就是乙個很大的概念。逛過一些測試論壇的童鞋應該會知道qtp和loadr...