2016-07-22 2 views
2

Вот как я очищаю UITextFields и UITextViews в UITests.Поместите курсор в конец 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

Вы можете нажать в правом нижнем углу, чтобы поместить курсор в конец текстового вида.

Кроме того, вы можете улучшить скорость удаления, подготовив deleteString, содержащий число XCUIKeyboardKeyDelete, которое вытирает все текстовое поле сразу.

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("")) 
    } 
}