我正在尝试运行一个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视图中。
答案 0 :(得分:0)
在发送到用户名文本字段的字符串的末尾发送\n
:
usernameTextField.typeText("TEST\n")
答案 1 :(得分:0)
我决定回答自己,而不是结束问题。我会告诉我代码中出了什么问题。我犯的主要错误是将 continueAfterFailure 设置为 true 。因此,错误显示在错误的行而不是实际的错误抛出行。
解决方法是,
continueAfterFailure = false
和
usernameTextField.tap()
sleep(2)
usernameTextField.typeText("TEST")
键入文本之前,应等待一小段时间,直到键盘出现在Web视图中。