2016-07-22 78 views
2

这就是我如何清除UITest中的UITextFieldsUITextViews。使用将光标置于UITextView的最后,位于UITest

extension XCUIElement { 

    func clear() { 

     tap() 

     while (value as! String).characters.count > 0 { 
     XCUIApplication().keys["delete"].tap() 
     } 
    } 
} 

例子:

descriptionTextView.type("Something about Room.") 
descriptionTextView.clear() 

如果我运行UITests,它总是在挖掘的UITextView的开始。

如何挖掘最后?

回答

2

您可以点击右下角将光标置于文本视图的末尾。

此外,您可以通过准备包含XCUIKeyboardKeyDeletedeleteString一次性擦除整个文本字段来提高删除速度。

extension XCUIElement { 
    func clear() { 
     guard let stringValue = self.value as? String else { 
      XCTFail("Tried to clear and enter text into a non string value") 
      return 
     } 

     let lowerRightCorner = self.coordinateWithNormalizedOffset(CGVectorMake(0.9, 0.9)) 
     lowerRightCorner.tap() 

     let deleteString = [String](count: stringValue.characters.count + 1, repeatedValue: XCUIKeyboardKeyDelete) 
     self.typeText(deleteString.joinWithSeparator("")) 
    } 
}