在真正的iPhone中运行XCTestCase时"Neither element nor any descendant has keyboard focus"



我正在尝试运行一个存在两个输入字段的UI测试用例。以下是我的代码

let usernameTextField = app.webViews.otherElements["Identity Server"].textFields["Username"]
let passwordField = app.webViews.otherElements["Identity Server"].secureTextFields["Password"]
_ = usernameTextField.waitForExistence(timeout: 8)
usernameTextField.tap()
usernameTextField.typeText("TEST")  // Breakpoint line
app.typeText("n")
passwordField.tap()
passwordField.typeText("test")

当我正常运行测试用例时,它失败了,问题标题中给出了错误。但是,如果我在注释行中添加一个断点,它将在没有任何错误的情况下运行。

我尝试在断点行之后分别使用以下代码片段。

sleep(8)
_ = passwordField.waitForExistence(timeout: 8)

但这些工作都没有。至于进一步的信息,这是一个Auth过程场景,其中这些输入字段位于web视图中。

我决定自己回答,而不是结束这个问题。我会告诉你我的代码出了什么问题。我犯的主要错误是continueAfterFailure设置为true。正因为如此,错误显示在错误的行而不是实际的错误抛出行。

因此,解决方案是,

continueAfterFailure = false

usernameTextField.tap()
sleep(2)
usernameTextField.typeText("TEST")

在键入文本之前,应该有一小段等待时间,直到键盘出现在web视图中。

将发送字符串末尾的n发送到用户名文本字段:

usernameTextField.typeText("TESTn")

相关内容

  • 没有找到相关文章

最新更新