强密码自动填充功能出现在iOS模拟器中

时间:2019-03-27 13:39:25

标签: ios autofill xcuitest uitest

我们的UI测试套件显示了一些意外行为,其中“创建密码”屏幕会间歇性地自动完成用户名和密码,这会导致测试失败。

过程类似于:

  • 点击第一个创建密码字段
  • 输入密码
  • 点击确认密码字段
  • 输入相同的密码

最后一步失败,因为两个字段中的密码均已自动完成。

enter image description here

这种情况每十到二十次执行一次。

我们的理解是,密码自动填充功能永远都不会在任何模拟器中被看到,因此完全看不到它非常令人困惑。我们可以做些什么来额外禁用自动填充功能,否则可以防止这种情况的发生?

5 个答案:

答案 0 :(得分:12)

进入模拟器的设置 -> 密码 -> 打开然后关闭自动填充密码。 enter image description here 输入任何密码 enter image description here enter image description here

答案 1 :(得分:4)

不确定从开始就是否如此,但是设置isSecureTextEntry = true也足以触发该错误(至少在Xcode 12.2中如此)。

因此,对我有用的解决方法是:

let field = UITextField()
if #available(iOS 11.0, *) {
    #if targetEnvironment(simulator)
    // Do Not enable '.password' or '.newPassword' or 'isSecureTextEntry' text content type on simulator as it ends up with annoying behaviour:
    // 'Strong Password' yellow glitch preventing from editing field.
    print("Simulator! not setting password-like text content type")
    #else
    field.textContentType = .password
    field.isSecureTextEntry = true
    #endif
}
field.placeholder = "Password"

答案 2 :(得分:4)

有同样的问题。对我有用的是进入模拟器的设置->密码->打开,然后关闭自动填充密码。

答案 3 :(得分:-1)

我认为您应该将此文本字段的内容类型设置为未指定。 它也出现在我身上,我现在要删除它。

enter image description here

答案 4 :(得分:-2)

这是一个iOS 14错误,仅当您在模拟器上运行应用程序时才会出现。修复此问题的方法是安装iOS 13.7:

打开您的Xcode: Xcode->首选项->组件

...在模拟器上选择,下载并安装iOS 13.7操作系统。然后再次运行您的应用程序。您可以在模拟器顶部的标签上检查您的iOS版本(确保运行正确的iOS版本!)