伦理片hd-伦理片 在线播放-伦理片 在线-伦理免费在线观看-综合图片区-综合婷婷

訂閱本欄目 RSS您所在的位置: 深山工作室 > python > 正文

Appium元素定位方式之a(chǎn)ndroid_uiautomator定位

2022/9/23 17:04:58 字體: 瀏覽 1217

1. android_uiautomator定位
  相當(dāng)于使用 UiAutomator Api 去遞歸地搜索元素(Android 專(zhuān)屬),可以說(shuō)android uiautomator是終極定位方式,有的時(shí)候一些元素不能夠很好的定位時(shí),那么就需要采用android uiautomator去定位,他是一種非常強(qiáng)有力的定位方式,原理是通過(guò)android 自帶的android uiautomator的類(lèi)庫(kù)去查找元素。appium對(duì)android 的uiautomator進(jìn)行了封裝,該方法的參數(shù)為UiSelector類(lèi)定位元素的表達(dá)式:new UiSelector().屬性('屬性值'),實(shí)例化一個(gè)UiSelector對(duì)象,然后通過(guò)實(shí)例接口調(diào)用。
  AndroidUIAutomator是一個(gè)強(qiáng)有力的元素定位方式,它是通過(guò)Android UIAutomator類(lèi)庫(kù)去找元素,可以選擇resourceId、text、className、description作為傳入的字符串。

1.1 android_uiautomator之text文本定位語(yǔ)法
  1) 使用text文本定義
    loc_text = 'new UiSelector().text("登錄/注冊(cè)")'
   driver.find_element_by_android_uiautomator(loc_text).click()
  2) uiautomator text模糊定位
    文本比較長(zhǎng)的時(shí)候,可以用textContains模糊匹配,通過(guò)text的部分信息就能夠進(jìn)行定位,我們直接看代碼:
    loc_text = 'new UiSelector().textContains("登錄/注冊(cè)")'
   driver.find_element_by_android_uiautomator(loc_text).click()
   在上面的代碼中我們只是將.text()的方法變成了.textContains(),在方法中傳入模糊的數(shù)據(jù)就好。看到這里是否有人思考過(guò)一個(gè)問(wèn)題,既然有類(lèi)似的模糊尋找,那么有沒(méi)有像正則表達(dá)式一樣的查找呢?答案是肯定的,看我們下面的方法。

  3) textMatches 正則匹配查找
textMatches故名思義就是通過(guò)正則的來(lái)進(jìn)行查找定位,也是通過(guò)text的屬性來(lái)進(jìn)行正則匹配,我們直接看代碼:
   loc_text = 'new UiSelector().textMatches("^登錄/.*")'
   driver.find_element_by_android_uiautomator(loc_text).click()
  4) textStartsWith是以某個(gè)文本開(kāi)頭來(lái)匹配
    new UiSelector().textStartsWith("以text文本開(kāi)頭")
    loc_text = 'new UiSelector().textStartsWith("登錄")'
    driver.find_element_by_android_uiautomator(loc_text).click()

1.2 android_uiautomator之resourceId定位
resourceId定位和appium封裝好的id定位是一樣的,只是這里將寫(xiě)法變成了uiautomator的寫(xiě)法而已。

1) resourceId定位
    oc_id = 'new UiSelector().resourceId(" com.wm.dmall:id/net_image_view ")'
    driver.find_element_by_android_uiautomator(loc_id).click()
    通過(guò)上面的代碼和之前的代碼對(duì)比大家可能發(fā)現(xiàn)其實(shí)他們前面都是一樣的,只是在定位的時(shí)候發(fā)生了一些變化,text變換成了resourceId即可,也就是頁(yè)面對(duì)象屬性的信息進(jìn)行變更了,其他方法都是一樣。
2) resourceIDMatches 定位
通過(guò)id進(jìn)行正則匹配定位
    loc_id = 'new UiSelector().resourceIdMatches(".+net_image_view ")'
    driver.find_element_by_android_uiautomator(loc_id).click()
    1.3 android_uiautomator之className定位
    頁(yè)面上的class屬性一般不唯一,多半用在復(fù)數(shù)定位時(shí)候。比如通過(guò)class屬性定位'同意'這個(gè)按鈕下標(biāo)就是1。

1) className定位
# className復(fù)數(shù)定位
loc_class = 'new UiSelector().className("android.widget.TextView")'
driver.find_elements_by_android_uiautomator(loc_class)[1].click()

20 uiautomator classNameMatches定位
通過(guò)className正則匹配進(jìn)行定位:

loc_class = 'new UiSelector().classNameMatches (".*widget.TextView")'
driver.find_elements_by_android_uiautomator(loc_class)[1].click()
1.4 android_uiautomator之description定位


loc_id = 'new UiSelector().
description("多點(diǎn)")'
driver.find_element_by_android_uiautomator(loc_id).click()
1.5 android_uiautomator之組合定位

1)id與text屬性組合
id_text = 'resourceId("com.wm.dmall:id/funcTitle").text("待支付")'
driver.find_element_by_android_uiautomator(id_text).click()
2)class與text屬性組合
class_text = 'className("android.widget.TextView").text("待支付")'
driver.find_element_by_android_uiautomator(class_text).click()
3)父子關(guān)系定位
son = 'resourceId("com.wm.dmall:id/container").childSelector(text("我的"))'
driver.find_element_by_android_uiautomator(son).click()
4)兄弟定位fromParent
有時(shí)候父元素不好定位,但是跟他相鄰的兄弟元素很好定位,這時(shí)候就可以通過(guò)兄弟元素,找到同一父級(jí)元素下的子元素。

brother = 'resourceId("com.wm.dmall:id/nav_item_laber_tv").fromParent(text("我的"))'
driver.find_element_by_android_uiautomator(brother).click()

信息來(lái)源網(wǎng)址:https://www.cnblogs.com/dy99/p/14287543.html

相關(guān)閱讀
旅行社網(wǎng)站模板9
CSS編寫(xiě)中靈活運(yùn)行注釋的意義
微信公眾號(hào)用客服接口推送菜單消息
跳轉(zhuǎn)菜單,跳轉(zhuǎn)后用新窗口打開(kāi)
div+css中absolute標(biāo)簽與relative標(biāo)簽的巧妙運(yùn)用
ASP把數(shù)字用逗號(hào)每3位隔開(kāi)顯示代碼
ASP.NET AJAX的應(yīng)用
連云港五洲旅行社有限公司
共有0條關(guān)于《Appium元素定位方式之a(chǎn)ndroid_uiautomator定位》的評(píng)論
發(fā)表評(píng)論
正在加載評(píng)論......
返回頂部發(fā)表評(píng)論
呢 稱(chēng):
表 情:
內(nèi) 容:
評(píng)論內(nèi)容:不能超過(guò) 1000 字,需審核,請(qǐng)自覺(jué)遵守互聯(lián)網(wǎng)相關(guān)政策法規(guī)。
驗(yàn)證碼: 驗(yàn)證碼 
網(wǎng)友評(píng)論聲明,請(qǐng)自覺(jué)遵守互聯(lián)網(wǎng)相關(guān)政策法規(guī)。

您發(fā)布的評(píng)論即表示同意遵守以下條款:
一、不得利用本站危害國(guó)家安全、泄露國(guó)家秘密,不得侵犯國(guó)家、社會(huì)、集體和公民的合法權(quán)益;
二、不得發(fā)布國(guó)家法律、法規(guī)明令禁止的內(nèi)容;互相尊重,對(duì)自己在本站的言論和行為負(fù)責(zé);
三、本站對(duì)您所發(fā)布內(nèi)容擁有處置權(quán)。

更多信息>>欄目類(lèi)別選擇
百度小程序開(kāi)發(fā)
微信小程序開(kāi)發(fā)
微信公眾號(hào)開(kāi)發(fā)
uni-app
asp函數(shù)庫(kù)
ASP
DIV+CSS
HTML
python
更多>>同類(lèi)信息
Android移動(dòng)端自動(dòng)化測(cè)試:使用UIAutomatorViewer與Selenium定位元素
python通過(guò)代碼修改pip下載源讓下載庫(kù)飛起
python里面requests.post返回的res.text還有其它的嗎
windows7環(huán)境下安裝配置jdk
python對(duì)微信操作要用到這兩個(gè)庫(kù)wxpy與itchat
8種Python字符串拼接的方法,你知道幾種
更多>>最新添加文章
dw里面查找替換使用正則刪除sqlserver里面的CONSTRAINT
Android移動(dòng)端自動(dòng)化測(cè)試:使用UIAutomatorViewer與Selenium定位元素
抖音直播音掛載小雪花 懂車(chē)帝小程序
javascript獲取瀏覽器指紋可以用來(lái)做投票
火狐Mozilla Firefox出現(xiàn):無(wú)法載入您的Firefox配置文件 它可能已經(jīng)丟失 或是無(wú)法訪問(wèn) 問(wèn)題解決集合處理辦法
在Android、iOS、Windows、MacOS中微信小程序的文件存放路徑
python通過(guò)代碼修改pip下載源讓下載庫(kù)飛起
python里面requests.post返回的res.text還有其它的嗎
更多>>隨機(jī)抽取信息
華東賓館
絕對(duì)讓你長(zhǎng)見(jiàn)識(shí):200個(gè)騙人的創(chuàng)業(yè)項(xiàng)目!
專(zhuān)業(yè)地接服務(wù)的旅行社建站解決方案
asp iis 開(kāi)啟本地FSO權(quán)限
CSS光標(biāo)屬性一覽表
asp中eof的介紹
主站蜘蛛池模板: 亚洲男女激情 | 成人欧美一区二区三区 | 欧美三级网站在线观看 | 欧美.亚洲.日本一区二区三区 | 毛片在线视频在线播放 | 国产亚洲精品不卡在线 | 久久影视精品 | 中文字幕日韩精品麻豆系列 | 精品国产一区二区二三区在线观看 | 天天摸日日摸 | 久久免费精品高清麻豆 | 色综合五月婷婷 | 一级片韩国 | 亚洲涩综合| 日本高清视频成人网www | 国产高清免费在线观看 | 中国成人在线视频 | 亚洲影视天堂 | h成年同人动漫在线观看网站 | 狠狠热精品免费观看 | 久久99综合 | 91精品视频在线播放 | 亚洲精品欧美精品中文字幕 | 高清日韩在线 | 国产精品久久久久久免费播放 | 一级毛片一一级一级乇片 | 国产深夜福利19禁在线播放 | 国产成人免费高清激情视频 | 婷婷综合网站 | 中文字幕在线一区二区在线 | 一个色综合网 | 日本无遮挡吸乳视频看看 | 九热视频| 成人欧美精品一区二区不卡 | 91麻豆高清国产在线播放 | 色www免费视频 | 色www精品视频在线观看 | 蓝军出击免费观看全集下载 | 欧美精品做人一级爱免费 | 欧美成人自拍视频 | 成人国内精品久久久久影院 |