iOS - UI Automation通过辅助功能标签获取文本字段?

时间:2011-11-29 05:00:58

标签: iphone ios accessibility ios-ui-automation

所以在我的nib文件中我启用了辅助功能并将文本字段的可访问性标签设置为“txt” 我试图根据辅助功能名称找到此文本并更改其文本。

var target = UIATarget.localTarget();
var application = target.frontMostApp(); 
var mainWindow = application.mainWindow();
mainWindow.logElementTree();

// This works
var textField = mainWindow.textFields()[0];

//this doesn't work
var textField = mainWindow.textFields()["txt"];

textField.setValue("Hello");

我做错了吗?如何根据辅助功能标签找到标签?

修改

我也对其他解决方案持开放态度,我试图避免根据索引

获取文本字段

1 个答案:

答案 0 :(得分:5)

我有类似的问题,并在代码中设置辅助功能标签值而不是在nib文件中解决我的问题。例如,我需要在UIAutomation脚本中访问UITextField,我必须在viewDidLoad方法中设置可访问性标签值,如下所示。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    testTxtField.accessibilityLabel = @"myTxtBox";
}

以下是我的UIAutomation脚本

var target = UIATarget.localTarget();
var application = target.frontMostApp(); 
var mainWindow = application.mainWindow();
mainWindow.logElementTree();

// This works
//var textField = mainWindow.textFields()[0];

// Now, this work too.
var textField = mainWindow.textFields()["myTxtBox"];
textField.setValue("Hello");

UIALogger.logMessage("Text field:" + textField.label());