2015-09-25 108 views
3

背景:你怎麼看到XCUIElement樹?

我用的iOS 9.0 GM XCode的UI級別的測試實驗。

問:

有沒有在XCode中通用的命令,讓你看到一個訪問要素及其關係的「樹」?與Appium中的'page'命令類似嗎?

理想我想能夠在這會給我的選擇/操作可用元素的列表,調試器中運行的命令。目前,您可以在單個XCUIElement上使用debugDescription,但僅爲該元素提供信息。

+0

你找到一種方式來獲得這些信息? – MatterGoal

+0

不幸的是,它似乎並不像蘋果計劃提供的東西。下面的答案可能是解決這個問題的最好方法,但這並不理想。 –

回答

4

我建議從菜單欄中選擇:調試>查看調試>在調試運行時,捕獲視圖層次。您不僅可以直觀地表示視圖,還可以通過左側的調試導航器顯示層次結構。這可能與UI Testing的觀點不是一對一的,但它可能非常有幫助。希望有所幫助。

+2

這真的很酷,但它在可訪問性方面沒有答案......如果蘋果給我們一個方便的方法來獲取帶有標識符的可用元素的列表,那將會很好。 –

+0

當您在Xcode的視圖調試器中選擇視圖時,右側的對象檢查器顯示輔助功能信息。這可能是有用的。 – wolfrevo

6

這不完全是您要求的,但Xcode的輔助功能檢查器使您可以更輕鬆地查看您的視圖層次結構,以便通過標識符訪問哪些元素。 (注:這不是在IB的的事項,它的「標識符」字段輔助功能面板中的「標籤」。):

在Xcode中7.2,打開Xcode->打開開發者工具 - >輔助檢查。 (您可能需要爲應用程序授予在系統偏好設置中運行的權限。)然後從Xcode啓動iOS應用程序,並將鼠標懸停在SIMULATOR中的任何UI元素上。你會看到關於元素的類型,描述,層次等

任何時候你記錄UI操作的綜合信息和輸出看起來不正確,使用該工具來找出描述需要添加,更改了哪些無障礙,或刪除。 (我花了幾天的時間試圖通過UI測試工具獲得深度嵌入的UISegmentedControl,並且一旦我想出如何使用輔助工具檢查工具,問題就變得很明顯。)

感謝shinobicontrols的人。 com爲偉大的技巧!

3

設置一個斷點,你想看到的樹......在調試器類型:

po print(XCUIApplication().debugDescription) 

打印出的一切XCUITesting訪問。你也可以扔在您的測試:

func testTreeExample() { 
    XCUIApplication().buttons["login"].tap() 
    print(XCUIApplication().debugDescription) 
    XCUIApplication().buttons["next"].tap() 
    print(XCUIApplication().debugDescription) 
} 

Thta方式,如果你都很難找到的東西,你可以把它autmatically打印出來的應用程序認爲你做的東西之後什麼。