2016-09-22 50 views
1

所以我試圖讓fastlane screenshot工作,這意味着讓Xcode UITest工作......我構建了一個Ionic應用程序,該應用程序使用3個條形符號作爲滑出按鈕,並且這種事情對web應用程序來說是微不足道的。訪問Xcode UITest中的app.buttons,沒有任何可用的引用文本。

然而,當我使用uITest記錄,它曲解按鈕並最終表示這種

app.buttons[""].tap()

當嘗試運行保存的UI命令,它顯然扼流圈就這個問題和崩潰的測試...有沒有其他的方式來表示按鈕,然後使用它的標籤文本?

它似乎可以使用ID或名稱作爲按鈕標識符,但我還沒有找到解決這個問題的任何地方。

回答

2

您可以給按鈕一個AccessibilityIdentifier,它是一個只能被UI Tests讀取的屬性,並且不需要任何可讀的文本。

您也可以給該按鈕設置一個AccessibilityLabel,該按鈕可讓您的按鈕供正在使用輔助功能的人員使用,例如屏幕閱讀器或其他此類設備。

這兩個屬性都可以通過XCUIElementQuery讀取,這意味着您可以使用例如app.buttons["slide_out"].tap()

爲了做到這一點,您需要在代碼(例如button.accessibilityIdentifier = "slide_out")或故事板(屬性下;請參見屏幕截圖)中明確設置accessibilityIdentifier/accessibilityLabel。

Here is the Storyboard area in question

如果,另一方面,有一個時機的問題,因爲你需要等待元素出現,我建議喬Masilotti的博客文章有關自定義傭工XCUITest:http://masilotti.com/xctest-helpers/

+0

謝謝你你的提示和真正有用的幫助... – menriquez

+0

我幾乎不想說這個,但事實證明,真正的問題是,我需要在測試腳本中引入延遲...我覺得我需要把它放在這裏以防萬一否則遇到同樣的問題,但再次thxs的有趣的信息! – menriquez

+1

不想討厭這麼說。相反,請查看Joe Masilotti的XCUITest自定義幫助程序:http://masilotti.com/xctest-helpers/ 他找到了一個非常好的解決方案,用於在測試腳本中引入延遲。 –

相關問題