溫馨提示×

溫馨提示×

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

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

如何用自動化測試工具實現(xiàn)元素定位?

發(fā)布時間:2020-05-23 13:51:57 來源:億速云 閱讀:329 作者:鴿子 欄目:移動開發(fā)

1、selenium元素定位樣例

 以下是一段Python+ selenium的用例樣例,對元素的操作是以元素id為基礎(chǔ)的

 from selenium import webdriver
 url = "http://10.98.110.44/egov-portal/egov/shIndex.html"
 # 打開瀏覽器,最大化瀏覽器
 driver = webdriver.Chrome()
 driver.get( url )
 driver.implicitly_wait( 10 )
 driver.maximize_window()
 #輸入賬號
 driver.find_element_by_id("username").send_keys(“zhangsan")
 #輸入密碼
 driver.find_element_by_id("password").send_keys("ww1234")
 #點擊登錄按鈕
 driver.find_element_by_id("submitButton").click()

 2、robotFramwork+seleniuLibrary元素定位樣例

如何用自動化測試工具實現(xiàn)元素定位?

3、UFT工具元素定位方法樣例

Dialog("Login").WinEdit("AgentName:").Set "mercury"
Dialog("Login_2").WinButton("Help").Click
Dialog("Login_2").Dialog("FlightReservations").Static("The password is 'MERCURY'").CheckCheckPoint("The password is 'MERCURY'")
Dialog("Login_2").Dialog("FlightReservations").WinButton("確定").Click
Dialog("Login").WinButton("OK").Click
Window("FlightReservation").Activate
Window("FlightReservation").ActiveX("MaskEdBox").Type "102715"
#選擇日期
Window("Flight Reservation").WinComboBox("FlyFrom:").Select "Frankfurt"

 從以上信息我看到,元素的定位都是通過元素的屬性定位,元素屬性主要有以下8種:

 1、id定位: driver.find_element_by_id("kw")

 2、name定位: driver.find_element_by_name("wd")

 3、class定位: driver.find_element_by_class_name("s_ipt")

 4、tag定位:driver.find_element_by_tag_name("input")

 5、link定位:driver.find_element_by_link_text("新聞")

 6、partial_link定位:driver.find_element_by_partial_link_text()

 7、xpath定位: driver.find_element_by_xpath("/html/body/div[2]/div/form/div/input")

 8、CSS定位:driver.find_element_by_css_selector

在現(xiàn)有的自動化軟件當(dāng)中,都是以上述8種定位方式中的一種對元素進行定位。現(xiàn)在現(xiàn)實的測試環(huán)境經(jīng)常不是我們想象的那樣平靜。頁面中出現(xiàn)id,name,tag 重復(fù)的很多。也許在我們寫用例的不重復(fù),經(jīng)過一輪版本修改后很可能變得重復(fù)了。xpath是最不可能失效的,但是經(jīng)常因父節(jié)點的修改而導(dǎo)致失效是常有的事。因此自動化設(shè)計人員疲于奔命的維護用例,工作量非常的巨大。

 2008年市場上出現(xiàn)一款kylinTOP的軟件,支持智能元素定位, 我比較感興趣就去研究了一下,該軟件的用例主要通過錄制生成,錄制生成一些可視化的腳本,如下所示:錄制腳本是打開一個頁面,擊點一個按鈕。如何用自動化測試工具實現(xiàn)元素定位?

上圖是點按鈕的步驟,步驟中記錄了按鈕的多個屬性:title|alt、src、border、alt、xpath以及它的孩子信息。有些屬性并不能唯一定位元素(頁面中存在重復(fù)),如:border。kylinTOP記錄下了按鈕元素的所有身份信息。當(dāng)筆者嘗試修改頁面代碼中title|alt的值 ,使頁面中title|alt的值有重復(fù)。在腳本回放時,仍然可以正常運行。恢復(fù)title|alt值 ,重復(fù)上述修改步驟,逐個修改其它屬性值,仍然不影響腳本運行。通過測試發(fā)現(xiàn),修改按鈕任何屬性都不影響腳本執(zhí)行。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI