首先,本地化元素的最佳做法是使用唯一ID。要做到這一點,您應該填寫Xcode中應用程序元素的accessibilityIdentifier
字段。
這是識別對象的最準確的方法。之後,你可以使用查詢這樣的:
query("* id:'account_select_button'")
查詢使用的「標記」語法尋找應用程序對象的text
或accessibilityIdentifier
特性匹配。此方法不適用於多語言應用程序或標籤更改。
對於等待元素,你應該使用這個的sleep
:
wait_for_element_exists("* marked:'Select Accounts'", :timeout => 10)
touch("* marked:'Select Accounts'")
默認情況下,葫蘆查詢僅搜索可見對象的屬性。如果一個元素是視域之外,需要滾動,直到出現元素之前,你可以用它做任何事情:
while (query("* marked:'Select Accounts'").empty?) == true
swipe :up #it performs scroll down, swipe :up equals scroll up
sleep 1 #in this case you have to wait between two swipes
end
我從來沒有嘗試過,但還有另一種方式。據我所知,這個表達式在每個視圖中查詢,而不管元素的可見性。
query("all marked:'Select Accounts'")
query("all view marked:'Select Accounts'")
query("all * marked:'Select Accounts'")