在实际的iPhone中运行XCTestCase时,“元素或任何子孙都没有键盘焦点”

时间:2018-08-08 04:23:40

标签: iphone xcode-ui-testing swift4.1 xctestcase

我正在尝试运行一个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视图中。

2 个答案:

答案 0 :(得分:0)

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

usernameTextField.typeText("TEST\n")

答案 1 :(得分:0)

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

解决方法是,

continueAfterFailure = false

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

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