Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UI测试iOS 13-清除后保留旧值的文本字段_Ios_Swift_Uitextfield_Ios13_Xcode Ui Testing - Fatal编程技术网

UI测试iOS 13-清除后保留旧值的文本字段

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

在iOS13上,我注意到在通过编程清除textfield后,UI测试中该textfield的值不会更新

在我的UI测试中:

  • 文本被输入文本字段
  • 某些操作会导致我的代码清除textfield(在本例中,点击屏幕键盘上的return)
  • textfield的值被选中,并且它仍然包含在清除之前存在的文本
  • 下面是我用来清除文本字段的代码:

        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,这将使可访问性缓存无效。请在断言和共享结果之前添加一个add
    print(XUIApplication().debugDescription)
    作为UITableViewCell中的文本字段?如果是这样,UITableView会执行一些可访问性缓存,这可能会导致类似这样的奇怪问题。如果是这种情况,一个简单的解决方法是在表视图单元格的contentView中添加和删除UIView,这将使可访问性缓存无效。