使用“isSecureTextEntry = true”测试文本字段时访问 ID 不起作用

Access ID does not work when testing a textfield with `isSecureTextEntry = true`

所以我正在尝试访问并确认我的 uitests 中是否存在密码文本字段,但是一旦分配给它们 isSecureTextEntry = true,测试就无法再通过 accessID 找到它们。有谁知道为什么?是否有办法解决这个问题,以便我可以找到它们并在测试中使用它们?最好这样我仍然可以使用访问 ID 在测试中找到它们。

我的测试很简单:

func testHasPasswordTextField() {
    let passwordTextField = app.textFields[AccesID.passwordTextField]

    XCTAssertTrue(passwordTextField.isHittable)
}

我在 运行 测试时出现以下错误:

"No matches found for Find: Elements matching predicate '"密码" IN identifiers' from input {( 文本字段,0x600000193e80,特征:146029150208,标识符:'Email',占位符值:'Email' )}".

如果isSecureTextEntry = false(或者只是不设置)

,则测试顺利通过

好的,所以一位同事刚刚为我发现,当通过 accessabilityidentifierisSecureTextEntry 设置为 true 测试和查找文本字段时,文本字段现在在测试中发现为 secureTextFields 所以我的测试像以前一样通过了,但现在看起来像这样:

func testHasPasswordTextField() {
    let passwordTextField = app.secureTextFields[AccesID.passwordTextField]

    XCTAssertTrue(passwordTextField.isHittable)
}