无法在密码文本字段中输入文本以进行 iOS UI 测试

Posted

技术标签:

【中文标题】无法在密码文本字段中输入文本以进行 iOS UI 测试【英文标题】:Unable to enter texts in passcode textfields for iOS UI testing 【发布时间】:2015-08-19 18:19:03 【问题描述】:

这是我在 Xcode 上运行 UI 测试的代码:

     var target = UIATarget.localTarget();
     var app = target.frontMostApp();

     var window = app.mainWindow();

     //display the current screen 
     target.logElementTree();

     //set value as email address
     window.textFields()[0].setValue("test11@test.com");
     //set value in passcode 
     window.textFields()[1].setValue("1234");


     window.buttons()["SIGN IN"].tap();

应用界面如下所示:

对于线路:

    Window.textFields()[0].setValue("1234");

它显示:

    Unexpected error in -[UIATextField_0x7fc8ac0e360 setValue:],/SourceCache/UIAutomation_Sim/UIAutomation-430.2.1/Frameworks/UIElement.m.line 1088, kAXErrorCannotComplete

所以当脚本输入电子邮件地址而不是密码时它可以工作。我认为该应用程序检测到密码是由机器人而不是人类输入的。这就是为什么它会产生错误?如果是这样,我该如何解决?

【问题讨论】:

【参考方案1】:

这是一个安全问题。

为了测试原因,取消选中圆圈框,然后问题修复!

【讨论】:

【参考方案2】:

您可以在 Interface Builder 中选中“安全文本字段”框,并使用 window.secureTextFields 而不是 window.textFields 引用它

【讨论】:

以上是关于无法在密码文本字段中输入文本以进行 iOS UI 测试的主要内容,如果未能解决你的问题,请参考以下文章

ios开发UI篇—UITextfield

无法在文本字段中获取文本输入以解析为双精度

用户输入不适用于在表格视图中以编程方式添加的文本字段

在 UI 测试期间测试对象状态 (iOS)

文本字段内切换按钮的 IOS UI 测试用例

iOS Safari(移动)和 Angular Material UI:专注于输入字段时不需要的闪烁文本