IOS中的UIAutomation错误

Posted

技术标签:

【中文标题】IOS中的UIAutomation错误【英文标题】:UIAutomation error in IOS 【发布时间】:2013-09-14 09:33:09 【问题描述】:

我在为我的应用程序编写的自动化脚本中收到此错误。以下是我的脚本:

var testName = "Test 1";
var target = UIATarget.localTarget();
var app = target.frontMostApp();
var window = app.mainWindow(); 
window.textFields()[0].setValue("Hello");

在第 5 行,我得到“无法对无效元素执行操作:来自 target.frontMostApp().mainWindow().textFields()[0] 的 UIAElementNil”。

上面的错误可能是什么原因

【问题讨论】:

【参考方案1】:

这是因为 textFields()[0] 为 nil。

mainWindow 方法返回一个窗口,textFields() 应该在 UIViewController 的视图中。

【讨论】:

我可以在ios上编写自动化脚本(使用javascript),这样它就可以在应用程序之间切换。我也想知道,我是否可以通过自动化脚本访问 iPhone 中的设置【参考方案2】:

正如 FenixAdar 所说,问题在于您想通过不存在的层次结构链访问您的文本字段元素。 要获得用户界面元素的真实层次结构,您可以在有问题的行之前插入命令target.logElementTree();。使用此命令的输出,您将能够猜出正确的表达式。

但更简单的是在您填写此文本字段并检查生成的代码时使用仪器进行记录。

【讨论】:

以上是关于IOS中的UIAutomation错误的主要内容,如果未能解决你的问题,请参考以下文章

pythonUI自动化-uiautomation

Java错误排查无法将类中的构造器应用到给定类型 无法将类 uiauto.web.common.OperationNewLabelPageImpl中的构造器 OperationNewLabe

将 iOS UIAutomation 作为操作后构建脚本运行会作为 posix spawn 错误返回

iOS/UIAutomation:如何将 isVisible() 用于第二个未标记工具栏中的按钮?

尝试在具有 IOS 8 和 Xcode 6 UIAutomation 的设备上运行脚本时出错

如何使用 iOS UIAutomation 截取点击的按钮?