2016-07-22 4 views
2

これは、UITestsでUITextFieldsUITextViewsをクリアする方法です。使用のUITestの下のUITextViewの最後にカーソルを置きます。

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

右下隅をタップすると、テキストビューの最後にカーソルを置くことができます。

XCUIKeyboardKeyDeleteを含むdeleteStringを準備して、テキストフィールド全体を一度に消去することで、削除の速度を向上させることができます。

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("")) 
    } 
} 
関連する問題