您好,登錄后才能下訂單哦!
1、selenium元素定位樣例
以下是一段Python+ selenium的用例樣例,對元素的操作是以元素id為基礎的
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元素定位樣例
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
在現有的自動化軟件當中,都是以上述8種定位方式中的一種對元素進行定位。現在現實的測試環境經常不是我們想象的那樣平靜。頁面中出現id,name,tag 重復的很多。也許在我們寫用例的不重復,經過一輪版本修改后很可能變得重復了。xpath是最不可能失效的,但是經常因父節點的修改而導致失效是常有的事。因此自動化設計人員疲于奔命的維護用例,工作量非常的巨大。
2008年市場上出現一款kylinTOP的軟件,支持智能元素定位, 我比較感興趣就去研究了一下,該軟件的用例主要通過錄制生成,錄制生成一些可視化的腳本,如下所示:錄制腳本是打開一個頁面,擊點一個按鈕。
上圖是點按鈕的步驟,步驟中記錄了按鈕的多個屬性:title|alt、src、border、alt、xpath以及它的孩子信息。有些屬性并不能唯一定位元素(頁面中存在重復),如:border。kylinTOP記錄下了按鈕元素的所有身份信息。當筆者嘗試修改頁面代碼中title|alt的值 ,使頁面中title|alt的值有重復。在腳本回放時,仍然可以正常運行。恢復title|alt值 ,重復上述修改步驟,逐個修改其它屬性值,仍然不影響腳本運行。通過測試發現,修改按鈕任何屬性都不影響腳本執行。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。