中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

p2p網(wǎng)站建設(shè) 上海網(wǎng)店代運(yùn)營(yíng)騙局

p2p網(wǎng)站建設(shè) 上海,網(wǎng)店代運(yùn)營(yíng)騙局,全能網(wǎng)站模板,實(shí)用電子商務(wù)網(wǎng)站建立1. 前言 本文將詳細(xì)講解Poco控件定位的各種方式,利用這些方法可以幫助我們編寫(xiě)出目標(biāo)控件的定位腳本。我們?cè)贗DE錄制的poco腳本,常見(jiàn)的都是類似 poco(“star_single”).click()這樣的腳本,其中 poco(“star_single”) 這塊就屬于Poco控件定位…

1. 前言

本文將詳細(xì)講解Poco控件定位的各種方式,利用這些方法可以幫助我們編寫(xiě)出目標(biāo)控件的定位腳本。我們?cè)贗DE錄制的poco腳本,常見(jiàn)的都是類似 poco(“star_single”).click()這樣的腳本,其中 poco(“star_single”) 這塊就屬于Poco控件定位腳本啦。

2. 三種定位選擇器

Poco控件最基本的3種定位選擇器分別是:

基本選擇器
相對(duì)選擇器
空間順序選擇器

1)基本選擇器

在poco實(shí)例后加一對(duì)括號(hào),我們就可以進(jìn)行元素選擇了。選擇器會(huì)遍歷所有元素,將滿足給定條件的元素都選出來(lái)并返回。

括號(hào)里的參數(shù)就是所給定的條件,用屬性名值對(duì)表示,其中第一個(gè)參數(shù)表示 節(jié)點(diǎn)名 ,就像 poco("star_single") 。后面還可以跟著一些可選參數(shù),均表示 節(jié)點(diǎn)的屬性及預(yù)期的屬性值 :

from poco.drivers.unity3d import UnityPoco
poco = UnityPoco()poco("star_single",type="Image")

在這里插入圖片描述
通過(guò)屬性組合

如果元素屬性不能唯一定位,可通過(guò)組合屬性方式

poco(name = 'NodeName',type = '類型名比如Button')

2)相對(duì)選擇器

如果直接用節(jié)點(diǎn)屬性(或者說(shuō)僅僅使用基本選擇器)沒(méi)法選出你所想要的元素時(shí),你還可以通過(guò)元素之間的渲染層級(jí)關(guān)系進(jìn)行選擇,例如父子關(guān)系(child)、兄弟關(guān)系(sibling)、祖先后代關(guān)系(offspring)等等:
如:

poco("plays").child("playBasic").offspring("star_single")

在這里插入圖片描述

poco('父節(jié)點(diǎn)').child('子節(jié)點(diǎn)')  # 默認(rèn)取第一個(gè),也可以通過(guò)下標(biāo),我使用過(guò)-1-2,12 等下標(biāo)

孫節(jié)點(diǎn)offspring,當(dāng)根據(jù)child().child()定位時(shí),如果第二個(gè)child是前面一個(gè)的孫節(jié)點(diǎn),不能定位到,要用offspring,child節(jié)點(diǎn)必須是上個(gè)節(jié)點(diǎn)的兒子節(jié)點(diǎn),不能跨輩分

poco('父節(jié)點(diǎn)').child('子節(jié)點(diǎn)').offspring('孫節(jié)點(diǎn)')

兄弟節(jié)點(diǎn)sibling
兄弟可能是多個(gè),可通過(guò)下標(biāo)方式

poco('name').sibling()

父節(jié)點(diǎn)parent
獲取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)

poco('name').parent()
poco(text="春天的菠菜").parent().parent()

直到某個(gè)元素出現(xiàn)

poco('屬性').wait_for_appearance(timeout=3)  # wait until appearance within 3s

直到某個(gè)元素消失

元素.wait_for_disappearance()

獲取元素屬性

#獲取當(dāng)前元素 pos屬性的值
#a = poco(name="com.yunmall.lc:id/textView5").parent().attr('pos')
?
#獲取當(dāng)前元素的名字 get_name()
#a = poco(name="com.yunmall.lc:id/textView5").parent().get_name()
?
#獲取當(dāng)前元素的文本信息 其實(shí)獲取的是text屬性的值
# poco(name="com.yunmall.lc:id/textView5").parent().get_text()

設(shè)置元素屬性

#選取元素 輸入內(nèi)容為123 其實(shí)也是設(shè)置text屬性的值
poco("pos_input").set_text("123")
?
#設(shè)置text屬性的值為456
poco("pos_input").setattr('text',"456")

.判斷控件是否存在,并進(jìn)行操作

print(obj.exists())
#判斷密碼框元素是否可見(jiàn),可見(jiàn)則輸入內(nèi)容在輸入內(nèi)容
password_input = poco(name='com.yunmall.lc:id/logon_password_textview')if password_input.exists():poco(name='com.yunmall.lc:id/logon_password_textview').set_text("123456")

點(diǎn)擊和長(zhǎng)按

#點(diǎn)擊 按鈕
poco('NodeName').click()
#長(zhǎng)按 按鈕
poco('NodeName').long_click()
#長(zhǎng)按按鈕 指定時(shí)間 單位為s
poco('NodeName').long_click(duration=5)

3)空間順序選擇器

按照序號(hào)(順序)進(jìn)行選擇總是按照空間排布順序,先從左往右,再像之前那樣一行一行從上到下。如下圖所示,我們利用選擇器選中了很多個(gè) type=“Text” 的元素,然后再利用索引順序逐個(gè)選中單個(gè)元素:

name0 = poco("Content").child(type="Text")[0].get_name()
name1 = poco("Content").child(type="Text")[1].get_name()
name2 = poco("Content").child(type="Text")[2].get_name()print(name0+" "+name1+" "+name2)

在這里插入圖片描述
索引選擇有個(gè)特例,一旦進(jìn)行選擇后,如果元素的位置發(fā)生了變化,那么下標(biāo)序號(hào)仍然是按照選擇的那一瞬間所確定的值。即,如果選擇時(shí)①號(hào)元素現(xiàn)在去到了③號(hào)的位置,那么還是要用 poco(…)[0] 來(lái)訪問(wèn),而不是 poco(…)[2] 。

如果選擇了之后,某個(gè)元素消失了(從界面中移除或者隱藏了),那么如果再訪問(wèn)那個(gè)元素則可能會(huì)發(fā)生異常,其余的元素仍可繼續(xù)訪問(wèn)。

3. 利用正則表達(dá)式匹配控件

其實(shí)除了上述3種常規(guī)一點(diǎn)的定位方式之外,還有一種同學(xué)們比較少見(jiàn),但是非常好用的定位方式,那就是 用正則表達(dá)式來(lái)匹配控件 ,如下述示例這樣:

arb_close_btn = poco(textMatches='^close.*$')
poco(textMatches='^春天的菠菜.')   #表達(dá)式根據(jù)自己需要寫(xiě)
poco(textMatches=".*停止.*").click()

如果有些信息的控件名都是一樣的,所以只要我們寫(xiě)1個(gè)正則表達(dá)式,匹配到這一批相同的控件名,就相當(dāng)于定位到了當(dāng)前頁(yè)面所有的歌曲信息控件,就可以利用poco遍歷,逐一獲取控件的text屬性了:

for i in poco(nameMatches="com.*?songInfo"):print(i.get_text())

除了最常見(jiàn)的 textMatchesnameMatchestypeMatches ,其實(shí)大部分的屬性都可以用這種方式來(lái)傳遞正則表達(dá)式,只要能夠用 poco(xx=預(yù)期屬性值) 來(lái)選擇的控件,就可以用 poco(xxMatches=預(yù)期屬性值的正則表達(dá)式) 來(lái)進(jìn)行匹配定位。

4. 其他較適用的檢測(cè)元素方法

除了上述關(guān)于元素定位 的問(wèn)題,還有比如:有哪些屬性可以拿來(lái)定位元素?利用節(jié)點(diǎn)屬性無(wú)法定位元素時(shí)應(yīng)該怎么處理?為什么明明存在的節(jié)點(diǎn)還會(huì)報(bào)找不到?…
所以我們特意整理了這篇文章,向大家詳細(xì)講述幾種poco元素定位的方式,希望能方便大家在實(shí)際項(xiàng)目中靈活運(yùn)用。

借助IDE的poco輔助窗生成元素定位腳本

AirtestIDE的 poco輔助窗 給我們提供了很多種方式來(lái)生成元素定位的腳本。最簡(jiǎn)單的方法是,點(diǎn)擊poco輔助窗里面的 錄制按鈕 ,然后再點(diǎn)擊下目標(biāo)元素:
在這里插入圖片描述

這樣腳本編輯窗就會(huì)自動(dòng)生成一條點(diǎn)擊控件的腳本,除去腳本中點(diǎn)擊操作的代碼,剩下的 poco("star_single") ,就是定位到黃色星星圖片元素的代碼了。
當(dāng)然,我們還可以使用錄制按鈕旁邊的倆個(gè) 檢視器 按鈕來(lái)幫助我們定位元素。這兩個(gè)檢視器按鈕的區(qū)別在于,是否鎖定當(dāng)前頁(yè)面:
在這里插入圖片描述
我們可以看到,隨著檢視器定位到某個(gè)元素,輔助窗里面的UI樹(shù)也會(huì)隨著定位到相應(yīng)的元素上,這時(shí)我們可以 雙擊 UI樹(shù)對(duì)應(yīng)的位置,即可在腳本編輯窗自動(dòng)生成定位元素的腳本。

補(bǔ)充:

poco的坐標(biāo)系
左上角(0,0),右下角(1,1),橫坐標(biāo)為x,縱坐標(biāo)為y,點(diǎn)擊節(jié)點(diǎn)的某個(gè)位置

#點(diǎn)擊節(jié)點(diǎn)的中心點(diǎn)位置
poco(name='com.yunmall.lc:id/logon_password_textview').focus('center').click()
#點(diǎn)擊節(jié)點(diǎn)的靠近左上角位置
poco(name='com.yunmall.lc:id/logon_password_textview').focus([0.1, 0.1]).long_click()
#點(diǎn)擊節(jié)點(diǎn)的右下角位置
poco(name='com.yunmall.lc:id/logon_password_textview').focus([1, 1]).long_click()

拖拽和滑動(dòng)
a.拖拽:從一個(gè)節(jié)點(diǎn)位置拖拽到另一個(gè)節(jié)點(diǎn)位置

poco('AeNodeName').drag_to(poco('BeNodeName'))

從列表的一端滑動(dòng)到另一端

listView = poco('Scroll View')
listView.focus([0.5, 0.7]).drag_to(listView.focus([0.5, 0.2]))

b.滑動(dòng):滑動(dòng)列表

poco('Scroll View').swipe([0, -0.1])
poco('Scroll View').swipe('up')

從A點(diǎn)滑動(dòng)到B點(diǎn)

x, y = poco('Scroll View').get_position()
end = [x, y - 0.1]
poco.swipe([x, y], end)

從A點(diǎn)向指定方向和定長(zhǎng)移動(dòng)

x, y = poco('Scroll View').get_position()
dir = [0, -0.1]
poco.swipe([x, y], direction=dir) 
http://www.risenshineclean.com/news/58038.html

相關(guān)文章:

  • 做校園網(wǎng)站 怎么備案百度推廣在哪里能看到
  • 網(wǎng)站商城定制網(wǎng)站建設(shè)蘇州seo營(yíng)銷
  • 昆明網(wǎng)站開(kāi)發(fā)多少錢(qián)免費(fèi)域名注冊(cè)平臺(tái)
  • 做鞋子有什么好網(wǎng)站好北京seo關(guān)鍵詞排名
  • 關(guān)于做ppt的網(wǎng)站有哪些內(nèi)容杭州百度seo代理
  • 織夢(mèng)網(wǎng)站文章內(nèi)容模板信息發(fā)布推廣平臺(tái)
  • 能訪問(wèn)各種網(wǎng)站的瀏覽器seo是什么意思 seo是什么職位
  • 網(wǎng)站開(kāi)發(fā)tt0546軟文營(yíng)銷的技巧
  • 網(wǎng)站直播間怎么做2023年9月疫情又開(kāi)始了嗎
  • 南寧網(wǎng)絡(luò)系統(tǒng)開(kāi)發(fā)win10優(yōu)化大師是官方的嗎
  • 國(guó)外網(wǎng)站入口錦繡大地seo官網(wǎng)
  • 網(wǎng)站的內(nèi)容有哪些內(nèi)容嗎褲子seo標(biāo)題優(yōu)化關(guān)鍵詞
  • 如何在工商局網(wǎng)站做身份確認(rèn)關(guān)鍵詞搜索熱度查詢
  • 網(wǎng)站制作屬于什么行業(yè)網(wǎng)站seo具體怎么做
  • 銘萬(wàn)做的網(wǎng)站國(guó)內(nèi)設(shè)計(jì)公司前十名
  • 汽車(chē)租賃網(wǎng)站怎么做電商seo優(yōu)化是什么意思
  • 網(wǎng)站服務(wù)器服務(wù)商3d建模培訓(xùn)班一般多少錢(qián)
  • 鄭州專業(yè)網(wǎng)站設(shè)計(jì)商丘網(wǎng)絡(luò)推廣外包
  • 互聯(lián)網(wǎng)定制網(wǎng)站網(wǎng)站優(yōu)化排名推廣
  • 做瞹視頻網(wǎng)站網(wǎng)站收錄情況
  • 辦網(wǎng)站需流程網(wǎng)絡(luò)推廣一個(gè)月的收入
  • 網(wǎng)站建設(shè)圖文教程網(wǎng)站如何提交百度收錄
  • 照片做視頻模板下載網(wǎng)站seo外包多少錢(qián)
  • 深圳 服裝 網(wǎng)站建設(shè)青島百度網(wǎng)站排名
  • 清溪網(wǎng)站仿做海外推廣專員
  • 網(wǎng)站建設(shè) 模板中心如何創(chuàng)建網(wǎng)站?
  • 怎么做響應(yīng)式網(wǎng)站搜索百度
  • wordpress閉站網(wǎng)站營(yíng)銷外包哪家專業(yè)
  • 中國(guó)建設(shè)銀行手機(jī)appwindows優(yōu)化大師是哪個(gè)公司的
  • 網(wǎng)站內(nèi)容被攻擊該怎么做安徽seo優(yōu)化