【问题标题】:Deleting text in text view during XC UI Test?在 XC UI 测试期间删除文本视图中的文本?
【发布时间】:2017-09-04 11:40:58
【问题描述】:

我正在尝试从文本视图中删除以前的值,但由于光标始终位于文本视图的开头,所以我无法删除。我正在使用

extension XCUIElement {
    /**
     Removes any current text in the field before typing in the new value
     - Parameter text: the text to enter into the field
     */
    func clearAndEnterText(text: String) -> Void {
        guard let stringValue = self.value as? String else {
            XCTFail("Tried to clear and enter text into a non string value")
            return
        }

        self.tap()

        let deleteString = stringValue.characters.map { _ in XCUIKeyboardKeyDelete }.joinWithSeparator("")

        self.typeText(deleteString)
        self.typeText(text)
    }
}

来源:https://stackoverflow.com/a/32894080/2563133

【问题讨论】:

  • 您的文本字段上有清除按钮吗? (右侧的小灰色 x 按钮)

标签: ios xctest ui-testing


【解决方案1】:

如果您不想依赖键盘并且不使用剪贴板,则可以将其剪切:

extension XCUIApplication {
    func clearTextOnElement(_ element: XCUIElement) {
        element.doubleTap()
        menuItems["Select All"].tap()
        menuItems["Cut"].tap()
    }
}

基于Mr.ConstantChange answer

【讨论】:

  • 就我而言,我必须在 doubleTap() 之前添加一个额外的 element.tap()
  • “全选”在真实设备上不可见。
【解决方案2】:

在您的情况下,如果您双击文本文件并点击键盘上的删除按钮,这很容易。以下代码应该可以工作:

yourTextFieldElement.doubleTap()  
app.keys["delete"].tap()

【讨论】:

  • 谢谢!我只需要在之间添加这一行:menuItems["Select All"].tap()
猜你喜欢
  • 2015-12-25
  • 1970-01-01
  • 2021-09-16
  • 1970-01-01
  • 1970-01-01
  • 2016-01-26
  • 1970-01-01
  • 1970-01-01
  • 2013-10-14
相关资源
最近更新 更多