UI测试iOS 13-清除后保留旧值的文本字段
在iOS13上,我注意到在通过编程清除textfield后,UI测试中该textfield的值不会更新 在我的UI测试中:UI测试iOS 13-清除后保留旧值的文本字段,ios,swift,uitextfield,ios13,xcode-ui-testing,Ios,Swift,Uitextfield,Ios13,Xcode Ui Testing,在iOS13上,我注意到在通过编程清除textfield后,UI测试中该textfield的值不会更新 在我的UI测试中: 文本被输入文本字段 某些操作会导致我的代码清除textfield(在本例中,点击屏幕键盘上的return) textfield的值被选中,并且它仍然包含在清除之前存在的文本 下面是我用来清除文本字段的代码: func clearInput() { textField.text = nil } 以下是我在UI测试中使用的检查: xctasert
func clearInput() {
textField.text = nil
}
以下是我在UI测试中使用的检查:
xctasert((createPasswordPage.passwordSecureTextField.value as?String)==”)
这在iOS13上失败,但会传递到旧版本,如iOS12
知道为什么会这样吗
例如:
代码
class PasswordViewController: UIViewController {
@IBOutlet weak var textField: UITextField!
@IBOutlet weak var button: UIButton!
...
@IBAction func buttonTapped(_ sender: Any) {
// Clear the text
textField.text = nil
}
}
用户界面测试
func testTextClearing() {
let page = PasswordPage()
// Enter text
page.passwordTextField.tap()
page.passwordTextField.typeText("some text")
// Tap button causing text to clear from the textfield
page.button.tap()
XCTAssert((page.passwordTextField.value as? String) == "")
}
请在断言和共享结果之前添加一个add
print(XUIApplication().debugDescription)
是否将文本字段放在UITableViewCell中?如果是这样,UITableView会执行一些可访问性缓存,这可能会导致类似这样的奇怪问题。如果是这种情况,一个简单的解决方法是从表视图单元格的contentView中添加和删除UIView,这将使可访问性缓存无效。请在断言和共享结果之前添加一个addprint(XUIApplication().debugDescription)
作为UITableViewCell中的文本字段?如果是这样,UITableView会执行一些可访问性缓存,这可能会导致类似这样的奇怪问题。如果是这种情况,一个简单的解决方法是在表视图单元格的contentView中添加和删除UIView,这将使可访问性缓存无效。