rf中resourceid_RF(三)元素定位方法
經過較長時間的自動化編寫,個人認為,UI自動化的精髓除了設計思路,那就是元素定位了!接下來就介紹常用的定位方法以及寫法!
一、APP元素定位工具及寫法
還記得RF(一)中,安裝過一個Android SDK嗎?這個工具就在sdk目錄下,它叫做uiautomatorviewer.bat
(路徑:\android-sdk-windows\tools\uiautomatorviewer.bat)
它長這個樣(雙擊打開):
下面,我們用某鵝介紹一下APP元素定位的用法及寫法(看圖!)
1、首先!我們需要連接手機(使用adb devices命令查看是否連接成功,RF(一)中也有介紹)
2、將我們要獲取元素的APP打開,停留在當前界面。點擊uiautomatorviewer工具的這個按鈕,就可以把手機界面獲取出來
3、將鼠標移動到需要獲取元素的位置,點擊一次(然后右面就會顯示這個元素的相關信息,見下圖!)
4、現在!就可以寫相關的定位了!(選擇的“新用戶”按鈕)
使用text定位:xpath=//*[@text=‘新用戶‘]
(如果有唯一的文本的話,建議使用文本定位。優點1、可以讓其他維護的同學一眼就知道這個步驟是操作哪里。2、簡單不易寫錯)
使用id定位:xpath=//*[@resource-id=‘com.tencent.mobileqq:id/btn_register‘]
(使用id定位的優點:id一定是唯一的,如果不修改素材,這個id基本不會變,可以降低維護成本)
使用xpath路徑定位:父節點定位、子節點定位、兄弟節點定位(寫法往下看 ↓ )
(優點:無!但是碰到沒有唯一值的元素,使用xpath路徑還是個不錯的選擇!)
checked屬性:(再多介紹一個屬性checked)這個屬性我常用在判斷手機某權限是否打開,比如通知權限(測消息通知使用)、位置權限、相機權限等
checked數值為true,則開關為打開狀態,checked數值為flase,則開關為關閉狀態
二、WEB元素定位
這里使用的是chrome瀏覽器,用某度做介紹。
1、打開baidu.com,點擊F12,選擇Elements(或者界面上右鍵某元素,點擊檢查)
2、接下來,我們就來使用 百度搜索的數據框 講解一下web的八大定位!
1)id定位(涉及selenium):driver.find_element_by_id("kw")
2)name定位(涉及selenium):driver.find_element_by_name("wd")
3)className定位(涉及selenium):driver.find_element_by_class_name("s_ipt")
4)tagName定位(涉及selenium):driver.find_element_by_tag_name("input")
5)linkText定位(涉及selenium):driver.find_element_by_link_text(a標簽的文本內容,精準匹配)? 比如:driver.find_element_by_partial_link_text(“百度首頁”)
6)partialLinkText定位(涉及selenium):driver.find_element_by_partial_link_text(a標簽的部分文本內容,模糊匹配) 比如:driver.find_element_by_partial_link_text(“首頁”)
7)cssSelector定位(涉及selenium):driver.find_element_by_css_selector(#kw)
8)xpath定位
絕對定位:單斜杠“/”開頭(缺點:很不穩定,所以不推薦)(寫起來太長了,偷懶寫了個好找的)/html/body/div/div/div[3]/a
相對定位(推薦!)雙斜杠“//”開頭
1)//標簽名[@屬性名=值]://input[@id="kw"]
2) //標簽名[contains(@屬性名,部分屬性值)]://input[contains(@id,"kw")]
3)軸定位:已知的元素/軸名稱::標簽名稱[@屬性名稱=屬性值]
【軸定位下一篇詳細說一下!】
原文:https://www.cnblogs.com/x495122903/p/12886882.html
總結
以上是生活随笔為你收集整理的rf中resourceid_RF(三)元素定位方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unity输入控制
- 下一篇: led灯条串联图_串联式电路 - 自制1