2011-04-19 57 views
2

我正在編寫自動化測試時,通過其可訪問性標籤檢測元素? 這會導致很多問題。iPhone - 自動測試?

  • 這是檢測元素的正確方法嗎?
  • 如果不是有更好的方法來 檢測元素而不使用 輔助功能標籤?

回答

4

UI自動化使用輔助功能標籤(如果已設置)爲每個元素派生一個名稱屬性。除了顯而易見的好處之外,使用這些名稱可以大大簡化測試腳本的開發和維護。

name屬性是這些元素的四個屬性之一,可以在您的測試腳本中非常有用。

  • 名:從可訪問 標籤
  • 值導出:所述 控制的當前值,例如,在一個 文本字段中的文本
  • 元素:任何子 元素包含在當前內 元件,例如,將細胞在一個 表視圖
  • 父:即 包含當前元素的元素

Instruments User Guide

0

不明白你的意思是「這會導致很多問題。」通過Automation Instrument中的可訪問性屬性訪問元素非常簡單。

var button = UIATarget.localTarget().frontMostApp().mainWindow().buttons()["Cancel"]; 

當然,您也可以按照屏幕上的順序訪問元素。例如:

var button = UIATarget.localTarget().frontMostApp().mainWindow().buttons()[3]; 

將引用屏幕上的第4個按鈕(它們從0開始編號)標籤。但是,如果您決定在下一版本的應用中重新排列屏幕上的元素,則此方法可能會破壞您的測試,因此通過輔助功能標籤訪問它們更安全。

此外,輔助功能元素使您的應用更易於人們(殘疾人)使用,因爲他們會依賴VoiceOver來使用應用界面 - 所以使用輔助功能在進行界面測試時會迫使您爲應用構建更好的輔助功能。