最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

09airtest-selenium:web自動(dòng)化測(cè)試實(shí)戰(zhàn)

2021-06-10 17:53 作者:Airtest醬  | 我要投稿

同學(xué)們好,我是網(wǎng)易AirtestProject的團(tuán)隊(duì)成員曉娟,歡迎大家來(lái)到我們的視頻教程專(zhuān)欄《14天Airtest自動(dòng)化測(cè)試小白課程》。

很多同學(xué)都知道,我們這個(gè)AirtestProject項(xiàng)目包含airtest和poco兩個(gè)測(cè)試框架,其實(shí)我們這個(gè)項(xiàng)目還有另外一個(gè)測(cè)試框架,叫airtest-selenium,是對(duì)selenium的python庫(kù)做的一層封裝,它主要用來(lái)對(duì)瀏覽器進(jìn)行自動(dòng)化測(cè)試,包含以下幾個(gè)方面的改動(dòng):

  • 添加了部分圖象識(shí)別的接口

  • 封裝了一些多標(biāo)簽頁(yè)切換的接口

  • 運(yùn)行時(shí)自動(dòng)記錄核心api的log內(nèi)容,可生成網(wǎng)頁(yè)版的測(cè)試報(bào)告

那么今天我們就來(lái)學(xué)習(xí)下,如何使用這個(gè)封裝好的airtest-selenium,在瀏覽器上進(jìn)行自動(dòng)化測(cè)試。

airtest-selenium輔助窗功能

默認(rèn)情況下,IDE的selenium Window是沒(méi)有展示出來(lái)的,我們可以在IDE的頂部菜單--窗口處,勾選上selenium Window,此時(shí)在poco的輔助窗下面,就會(huì)出現(xiàn)airtest-selenium的輔助窗了:


另外,在使用IDE進(jìn)行瀏覽器的自動(dòng)化之前,需要在選項(xiàng)--設(shè)置中,把chrome path填上,否則在使用打開(kāi)瀏覽器的功能按鈕時(shí),會(huì)出現(xiàn)彈窗,提示請(qǐng)?jiān)O(shè)置chrome path:

設(shè)置好chrome path以后,我們就可以用快捷按鈕打開(kāi)我們的瀏覽器來(lái)進(jìn)行元素檢索和錄制腳本了。

點(diǎn)擊輔助窗的打開(kāi)瀏覽器的按鈕,可以看到我們打開(kāi)了剛才設(shè)置好的chrome瀏覽器,并且在腳本編輯窗的上面,會(huì)出現(xiàn)了一條亮黃色的提示,讓我們選擇是否插入初始化腳本,點(diǎn)擊yes,腳本編輯窗就會(huì)被自動(dòng)插入打開(kāi)瀏覽器的初始化語(yǔ)句:


初始化語(yǔ)句中包含了一些必要的引入,創(chuàng)建了1個(gè)chrome實(shí)例,并且設(shè)置隱式等待時(shí)間為20s。

接下來(lái)我們看看元素檢索和定位的功能按鈕,單擊元素定位按鈕,再把鼠標(biāo)移動(dòng)到瀏覽器的元素上,會(huì)出現(xiàn)1個(gè)藍(lán)色的半透明框框選住對(duì)應(yīng)的元素,此時(shí)我們單擊鼠標(biāo)左鍵,即可在腳本編輯窗中插入該元素的定位腳本,自動(dòng)生成的定位腳本所用的定位方法都是find_element_by_xpath():


再來(lái)看看錄制功能,這個(gè)錄制功能跟airtest和poco的錄制功能有點(diǎn)類(lèi)似,都是隨著我們?cè)诖郎y(cè)設(shè)備上進(jìn)行一些操作,然后自動(dòng)幫我們生成對(duì)應(yīng)的操作腳本:


可以看到,隨著鼠標(biāo)在瀏覽器上進(jìn)行一系列的操作,腳本編輯窗也出現(xiàn)了對(duì)應(yīng)的自動(dòng)化腳本,比較特別的是,當(dāng)我們點(diǎn)擊某個(gè)元素,會(huì)觸發(fā)打開(kāi)1個(gè)新標(biāo)簽頁(yè)的動(dòng)作時(shí),腳本也會(huì)自動(dòng)幫我們錄制切換標(biāo)簽頁(yè)的語(yǔ)句。

輔助窗的常用api介紹

輔助窗給我們提供了11個(gè)常用api的功能按鈕,我們分別來(lái)看一下:

元素定位和實(shí)操

借助selenium Window這個(gè)輔助窗,我們已經(jīng)可以非常容易地完成大部分的web自動(dòng)化腳本。但是在面對(duì)更多復(fù)雜的測(cè)試需求和操作時(shí),我們還是要擁有一定的自己編寫(xiě)腳本的能力。

在web自動(dòng)化中,最核心也最基礎(chǔ)的事情就是進(jìn)行元素定位,那么除了借助輔助窗幫我們生成定位腳本之外,怎么自己編寫(xiě)各種元素的定位腳本呢?

先來(lái)學(xué)習(xí)1個(gè)簡(jiǎn)單的小技能,在瀏覽器上審查元素:在網(wǎng)頁(yè)的空白處,單擊右鍵,選擇檢查,在彈出的檢視窗口中,單擊檢視元素的按鈕,然后把鼠標(biāo)移動(dòng)到待檢視的元素上,就會(huì)自動(dòng)幫我們?cè)谠创a中定位到該元素,方便我們查看元素的相應(yīng)屬性:


并且,此時(shí)右鍵點(diǎn)擊高亮的元素源代碼,可以復(fù)制該元素的xpath屬性,用于元素定位,剛才我們?cè)贗DE錄制的元素定位腳本,都是根據(jù)元素的xpath屬性來(lái)定位的。除了這個(gè)以外,我們還可以利用元素的name、id、class name等屬性來(lái)進(jìn)行元素定位:

find_element_by_id()

find_element_by_name()

find_element_by_class_name()

find_element_by_xpath()

find_element_by_link_text()

find_element_by_partial_link_text()

find_element_by_css_selector()

寫(xiě)好元素定位之后,我們就可以對(duì)該元素進(jìn)行點(diǎn)擊操作、發(fā)送關(guān)鍵詞和斷言該元素是否存在等等:

# 元素點(diǎn)擊

driver.find_element_by_xpath("//*[@id=\"right_content\"]/div/div/div/div[2]/div/a[4]").click()

# 輸入

driver.find_element_by_id("title").send_keys("123")

# 斷言元素存在

driver.assert_exist("//div[@alt='到學(xué)術(shù)首頁(yè)']", "xpath", "請(qǐng)?zhí)顚?xiě)測(cè)試點(diǎn).")

除了這些常見(jiàn)的元素定位以外,我們還有可能遇到稍微特別一點(diǎn)的元素定位,比如下拉框定位、彈窗定位等等。

下拉框定位我們會(huì)用到select類(lèi),定位的基本步驟為:

①定位到下拉框這個(gè)元素

②實(shí)例化Select類(lèi)

③調(diào)用Select類(lèi)里面的方法來(lái)實(shí)現(xiàn)下拉框選項(xiàng)定位

# Select類(lèi)需要引入

from selenium.webdriver.support.select import Select

# 定位下拉框元素

ime_select = driver.find_element_by_id('ime')

# 實(shí)例下拉框

select = Select(ime_select)

# 提供3種定位方式,下拉選項(xiàng)的索引、value值和文本值

select.select_by_index(0)

select.select_by_value('2')

select.select_by_visible_text('關(guān)閉')

彈出框定位我們會(huì)用到alert類(lèi),彈出框的定位語(yǔ)句為driver.switch_to_alert()。

# 引入Alert類(lèi)

from selenium.webdriver.common.alert import Alert

print('alert彈出框的文本信息為:',driver.switch_to_alert().text)

# 點(diǎn)擊彈框的確認(rèn)按鈕

driver.switch_to_alert().accept()

最后,我們一起來(lái)完成1個(gè)簡(jiǎn)單的腳本,要求如下:

1.打開(kāi)百度首頁(yè)

2.點(diǎn)擊icon打開(kāi)新的標(biāo)簽頁(yè)

3.清空輸入框,輸入關(guān)鍵詞Airtest

4.切換到上一個(gè)打開(kāi)的標(biāo)簽頁(yè)

5.下拉框定位與實(shí)操

6.彈出框定位與實(shí)操


最后我們可以查看下這個(gè)airtest-selenium腳本的運(yùn)行報(bào)告:


課下的時(shí)候,希望同學(xué)們能自己動(dòng)手完成這個(gè)簡(jiǎn)單的小例子,鞏固下今天學(xué)習(xí)的有關(guān)airtest-selenium的內(nèi)容。

需要這個(gè)示例腳本來(lái)學(xué)習(xí)的同學(xué),可以到我們的官方公眾號(hào)回復(fù)“A09”即可獲取。


小結(jié)

那么,這節(jié)課的內(nèi)容就到此為止啦,今天我們主要學(xué)習(xí)了airtest-selenium輔助窗的功能、常用的api介紹以及元素的定位與實(shí)操。


至此,AirtestProject項(xiàng)目各個(gè)庫(kù)的介紹與基本使用,我們就都講完了。不過(guò)我們?cè)谥v授這些測(cè)試框架的使用時(shí),都是基于我們特定的編輯器AirtestIDE。那還有很多同學(xué)想要在命令行運(yùn)行腳本或者使用其它python的編輯器,比如pycharm等等,別著急,下節(jié)課我們就會(huì)帶大家聊一聊,如何脫離AirtestIDE來(lái)使用這些測(cè)試框架。下期我們不見(jiàn)不散~


09airtest-selenium:web自動(dòng)化測(cè)試實(shí)戰(zhàn)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
合肥市| 册亨县| 泽普县| 射阳县| 桂东县| 大余县| 武功县| 龙海市| 泰顺县| 德江县| 涟源市| 凌海市| 六枝特区| 确山县| 扎兰屯市| 越西县| 镇原县| 庆阳市| 志丹县| 西乡县| 渭源县| 湖州市| 卢氏县| 榆中县| 调兵山市| 南京市| 望谟县| 桃园县| 宁都县| 玉树县| 台山市| 信阳市| 金塔县| 建始县| 陆川县| 霞浦县| 河源市| 南木林县| 泗阳县| 永和县| 翼城县|