在XC UI测试期间删除文本视图中的文本?

时间:2017-04-09 11:15:06

标签: ios xctest ui-testing

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

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

2 个答案:

答案 0 :(得分:2)

如果你不想依赖键盘而你没有使用剪贴板,你可以剪掉它:

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

基于Mr.ConstantChange answer

答案 1 :(得分:0)

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

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