6

XCUIElementQuery在里面的类下面XCTest有许多常量,上面的文档说明指出:

    Constants for use with -[XCUIElement typeKey:modifierFlags:],
    representing keys that have no textual representation. These comprise
    the set of control, function, and modifier keys found on most keyboards.

显然,正如注释所述,似乎应该有一个XCUIElement名为 的方法。typeKey:modifierFlags:但是,我似乎在文档中的任何地方都找不到这种方法。我也没有看到任何使用上述常量来替代这种行为的方法。这是我有兴趣使用的常量的部分列表:

let XCUIKeyboardKeyDelete: String
let XCUIKeyboardKeyReturn: String
let XCUIKeyboardKeyTab: String
let XCUIKeyboardKeyCommand: String

作为未来 Xcode 7 版本的一部分,此代码是否为时过早并且可能会在稍后完成?

最终,我希望能够键入cmd+a然后使用XCUIKeyboardKeyDelete来删除给定的内容XCUIElement。如果 Xcode 7 UI 测试中目前有很好的替代方案,我很想知道。

--> Swift 2.0 beta 4

4

2 回答 2

7

您可以将 XCUIElement.typeText(text: String) 与 XCUIKeyboardKeyDelete 一起使用。

例如,当文本字段不为空时:

textField.tapWithNumberOfTaps(2, numberOfTouches: 1)
app.menuItems["Select All"].tap()
textField.typeText(XCUIKeyboardKeyDelete)
于 2015-09-19T21:56:35.617 回答
1

它在文档中声明该方法[XCUIElement typeKey:modifierFlags:]仅在 macOS 上可用。见https://developer.apple.com/reference/xctest/xcuielement

我在 Xcode 8.2.1 上的一个虚拟 macOS 项目 UI 测试目标中对此进行了测试,并且确实存在该方法。它在 iOS 上不存在。

于 2017-02-24T11:39:22.203 回答