#根據多個元素屬性選取
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
(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的種類為第乙個。很自然的可以理解為屬...