将光标放在UITest下的UITextView的末尾

P. *_*luś 2 uitextfield uitextview ios swift xcode-ui-testing

这就是我如何清除UITextFieldsUITextViews在UITests。

extension XCUIElement {

   func clear() {

      tap()

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

使用示例:

descriptionTextView.type("Something about Room.")
descriptionTextView.clear()
Run Code Online (Sandbox Code Playgroud)

如果我运行UITests,则始终点击UITextView的开头。

到底如何点击?

Tom*_*min 5

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

另外,您可以通过准备一个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(""))
   }
}
Run Code Online (Sandbox Code Playgroud)