【问题标题】:Strong password autofill appears in iOS simulatoriOS模拟器中出现强密码自动填充
【发布时间】:2019-08-18 02:31:07
【问题描述】:

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

这个过程是这样的:

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

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

大约每十到二十次测试执行中就有一次发生这种情况。

我们的理解是密码自动填充永远不会在任何模拟器中看到,所以看到这一点非常令人困惑。我们可以做些什么来额外禁用自动填充,或者以其他方式防止这种情况发生?

【问题讨论】:

  • 这被归档为 rdr://49643422 / 反馈 FB5665786
  • 如果其他人遇到此问题,我们通过稍微修改 UI 测试以在移动到第二个输入字段之前手动关闭键盘来缓解它。

标签: ios autofill xcuitest uitest


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    进入模拟器的设置 -> 密码 -> 打开然后关闭自动填充密码。

    输入任何密码

    【讨论】:

      【解决方案3】:

      不确定从一开始是否就是这样,但设置 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"
      

      【讨论】:

      • 这对我不起作用。使用模拟器 14.2 - iPhone 12 Pro Max
      【解决方案4】:

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

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

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

      【讨论】:

      • 这个bug最初是针对iOS12提出的,所以我认为不仅仅是iOS14。不过,鉴于这里的活动增加,自 iOS14 以来它可能已经开始更频繁地发生了。
      • 它适用于我在 iOS 13.7 中没有任何问题。
      • 不像@Estel 所说的那样专门用于 iOS 14,但它在 iOS 13.7 上对我有用,所以为之欢呼!
      猜你喜欢
      • 2021-09-07
      • 2019-04-05
      • 1970-01-01
      • 2019-03-10
      • 1970-01-01
      • 1970-01-01
      • 2019-03-21
      • 2019-09-15
      • 2017-12-15
      相关资源
      最近更新 更多