poco選取元素

2022-09-14 16:03:31 字數 4673 閱讀 2412

#

根據多個元素屬性選取

poco(name="

com.yunmall.lc:id/tab_me

").click()​#

根據當前元素的多個屬性值選取元素

poco(text="

我",name="

com.yunmall.lc:id/tab_me

").click()

poco(resourceid='

com.yunmall.lc:id/gotologon

').child(name='

android.widget.imageview

').click()

注意:child獲得a節點下的子節點b,節點可能多個,預設取第乙個

poco("

collectionview

").child(type="

cell

")[0].offspring(name="服飾

",type="

statictext

").click()

注意:poco("collectionview").child(type="cell")[0].offspring(name="雲南風景",type="statictext").click()

當根據child().child()定位時,如果第二個child是前面乙個的孫節點,不能定位到,要用offspring,child節點必須是上個節點的兒子節點,不能跨輩分

#

根據哥哥的屬性(name="com.yunmall.lc:id/textview5") 取name='com.yunmall.lc:id/logon_password_textview'兄弟節點

poco(name="

com.yunmall.lc:id/textview5

").sibling(name='

com.yunmall.lc:id/logon_password_textview

').click()

#

根據兒子找父親

poco(name="

com.yunmall.lc:id/textview5

").parent()

#

獲取當前元素 pos屬性的值

#a = poco(name="com.yunmall.lc:id/textview5").parent().attr('pos')​#

獲取當前元素的名字 get_name()

#a = poco(name="com.yunmall.lc:id/textview5").parent().get_name()​#

獲取當前元素的文字資訊 其實獲取的是text屬性的值

#poco(name="com.yunmall.lc:id/textview5").parent().get_text()

#

選取元素 輸入內容為123 其實也是設定text屬性的值

poco("

pos_input

").set_text("

123")​

#設定text屬性的值為456

poco("

pos_input

").setattr('

text

',"456

")

輸出乙個節點是否存在 返回 t f

print

(obj.exists())

#判斷密碼框元素是否可見,可見則輸入內容在輸入內容

password_input = poco(name='

com.yunmall.lc:id/logon_password_textview')

ifpassword_input.exists():

poco(name='

com.yunmall.lc:id/logon_password_textview

').set_text("

123456

")

#

點選 按鈕

poco('

nodename

').click()

#長按 按鈕

poco('

nodename

').long_click()

#長按按鈕 指定時間 單位為s

poco('

nodename

').long_click(duration=5)

時間停留x秒,一般在乙個互動完後都會寫上大概1s左右的停留

time.sleep(x)

等待某個事件結束,直到某個節點出現

#

等到3秒內出現

poco('

nodename

直到某個節點消失

左上角(0,0),右下角(1,1),橫座標為x,縱座標為y,點選節點的某個位置

#點選節點的中心點位置

poco(name='

com.yunmall.lc:id/logon_password_textview

').focus('

center

').click()

#點選節點的靠近左上角位置

poco(name='

com.yunmall.lc:id/logon_password_textview

').focus([0.1, 0.1]).long_click()

#點選節點的右下角位置

poco(name='

com.yunmall.lc:id/logon_password_textview

').focus([1, 1]).long_click()

a.拖拽

從乙個節點位置拖拽到另乙個節點位置

poco('

aenodename

').drag_to(poco('

benodename

'))

從列表的一端滑動到另一端

listview = poco('

scroll view')

listview.focus([0.5, 0.7]).drag_to(listview.focus([0.5, 0.2]))

b.滑動

滑動列表

poco('

scroll view

').swipe([0, -0.1])

poco(

'scroll view

').swipe('

up')

從a點滑動到b點

x, y = poco('

scroll view

').get_position()

end = [x, y - 0.1]

poco.swipe([x, y], end)

從a點向指定方向和定長移動

x, y = poco('

scroll view

').get_position()

dir = [0, -0.1]

poco.swipe([x, y], direction=dir)

a. invalidoperationexception

無效操作,主要原因是選中和操作的ui在螢幕外

try

: poco.click([1.1, 1.1]) #

click outside screen

except

invalidoperationexception:

print('

【error】tips

')

b. poconosuchnodeexception

對找不到的節點執行了操作或者獲取屬性,應該通過呼叫.exists()來避免這個異常報錯的出現

try

: node.click()

except

poconosuchnodeexception:

print('

oops!')

try:

node.attr(

'text')

except

poconosuchnodeexception:

print('

oops!

')

兩個例外:

node = poco('

not existed node

') #

只是獲取乙個節點不會觸發異常

print(node.exists()) #

=> false. 該方法不會報出異常

c. pocotargettimeout

某個定時器結束時觸發,但如果操作太快,節點還沒顯示在介面上,很可能是觸發的poconosuchnodeexception

node= poco('

node')

try:

except

pocotargettimeout:

print('

oops!

')

d.pocotargetremovedexception

某個節點已經被刪除時會觸發

Revit選取元素

revit包含以下幾種互動方式 1.先選擇元素,在執行外部命令,外部命令可以獲取選擇元素並做相應處理。2.先執行命令,在選擇元素或者位置,選擇結束後命令繼續執行。這種形式又包括 單選 多選 框選 點選 public class revitselect iexternalcommand taskdia...

js dom元素的選取

1.獲取節點 根據元素id獲取元素document.getelementbyid 元素id 值是乙個object 根據元素name獲取元素document.getelementbyname 元素的name 值是乙個object 根據元素標籤獲取獲取元素document.getelementbytag...

常用元素選取方式

通過 button 可以選取所有 type button 的 元素 和 元素,如果去掉冒號,button 只能獲取 元素。點進這裡測試button點進這裡測試 buttonbutton 按鈕 關於 和 這兩個符號的理解 可以理解為種類的意思,如 p first,p的種類為第乙個。很自然的可以理解為屬...