Ios 在UIAutomation中按名称从UIAEElementArray获取元素时遇到问题

Ios 在UIAutomation中按名称从UIAEElementArray获取元素时遇到问题,ios,ios-ui-automation,Ios,Ios Ui Automation,在UIAutomation脚本中按名称获取接口元素时遇到问题 我已经为文本控件设置了可访问性面板: 我知道我有正确的父视图,因为这段代码将用于设置字段内容: var view = UIATarget.localTarget().frontMostApp().mainWindow(); var textfields = view.textFields(); textfields[0].setValue("testuser"); 不幸的是,如果我试图按名称访问该字段,正如文档似乎指出的那样,我会得

在UIAutomation脚本中按名称获取接口元素时遇到问题

我已经为文本控件设置了可访问性面板:

我知道我有正确的父视图,因为这段代码将用于设置字段内容:

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");
无法对无效元素执行操作:target.frontMostApp.mainWindow.textFields[foo]中的UIAElementNil

有人知道为什么按名称查找功能在这里对我不起作用吗


谢谢你的洞察力

UI Automation似乎在Title字段中查找元素的名称,而不是在documented Accessibility Label字段中查找;至少,这是我的经验。通过属性向UI元素添加标题应该会产生所需的行为


更新:经过进一步的实验,现在看来要编辑的字段可能是可访问性标识符而不是标签,AFAICT只能通过编程方式设置

UI Automation似乎在Title字段中查找元素的名称,而不是在documented Accessibility Label字段中查找;至少,这是我的经验。通过属性向UI元素添加标题应该会产生所需的行为

更新:经过进一步的实验,现在看来要编辑的字段可能是可访问性标识符而不是标签,AFAICT只能通过编程方式设置

根据

UIAEElementArray部分,您可能希望尝试以下方法:

var textfields = view.textFields();

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

UIAEElementArray部分,您可能希望尝试以下方法:

var textfields = view.textFields();

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

如果您正在使用辅助功能层,则必须在设备/模拟器中启用它:

设置->常规->辅助功能->辅助功能检查器->打开


如果您正在使用辅助功能层,则必须在设备/模拟器中启用它:

设置->常规->辅助功能->辅助功能检查器->打开


添加UIATarget.localTarget.frontMostApp.mainWindow.logElementTree的输出,并读取UIATarget.localTarget.frontMostApp.mainWindow.logElementTree的输出