2012-02-20 49 views
1

我在UIAutomation腳本中按名稱獲取界面元素時遇到問題。在UIAutomation中通過UIAElementArray名稱獲取元素時遇到問題

我已成立了一個文本控件的輔助功能面板:

accessibility panel

我知道我有權利父視圖,因爲這樣的代碼將工作設置字段內容:

var view = UIATarget.localTarget().frontMostApp().mainWindow(); 
var textfields = view.textFields(); 
textfields[0].setValue("testuser"); 

不幸的是,如果我嘗試通過名稱訪問該字段,作爲文檔似乎表明我應該能夠做到,我得到一個錯誤:

var view = UIATarget.localTarget().frontMostApp().mainWindow(); 
var textfields = view.textFields(); 
textfields['foo'].setValue("testuser"); 

無法無效元素上執行操作:UIAElementNil從target.frontMostApp()主窗口()文本框()[「富」]

是否有人有任何想法,爲什麼查找按姓名功能沒有按」。我似乎在這裏爲我工作?

感謝您的任何見解!

+0

添加從UIATarget.localTarget()。frontMostApp()。mainWindow()。logElementTree() – 2012-03-14 16:19:18

回答

1

看起來UI自動化在Title字段中查找元素的名稱,而不是文檔化的Accessibility Label字段;至少,這是我的經驗。將標題添加到您的UI元素(通過屬性)應該會導致所需的行爲。

更新:經過進一步的實驗,現在看來,編輯的字段可能是可訪問標識符(而非標籤),該AFAICT只能以編程方式設置。

0

根據UI Automation Reference Guide

UIAElementArray部分,你可能想嘗試這樣的:

var textfields = view.textFields(); 

textfields.withName("foo")[0].setValue("testuser"); 
3

如果您正在使用的輔助層工作,您必須啓用它在設備/模擬器:

Settings-> General-> Accessibility-> Accessibility Inspector-> ON

相關問題