3

我正在尝试创建 XCTestCase 以在我的大纲视图中测试重新排序(在 OS X 应用程序中)。当我使用 UI 测试记录功能时,Xcode 会打印:

window.outlines.staticTexts["<cell which I want to move>"].click()

我尝试在大纲视图内部或外部拖动单元格,Xcode 生成相同的无用代码。

有谁知道如何在 Xcode 7 中正确测试拖放?

4

4 回答 4

8

不确定这是否是新的,但在 Xcode 7.2 中,如果XCUIElementclickForDuration(thenDragToElement:)查看NSOutlineView.

这是从头...

/*!
 * Clicks and holds for a specified duration (generally long enough to start a drag operation) then drags
 * to the other element.
 */
public func clickForDuration(duration: NSTimeInterval, thenDragToElement otherElement: XCUIElement)
于 2016-01-07T19:44:27.827 回答
2

使用 Xcode 9.4.1 Swift:

func press(forDuration duration: TimeInterval, thenDragTo otherElement: XCUIElement)

例子:

let ele: XCUIElement = XCUIApplication()!.otherElements.matching(identifier: "element_identifier").element(boundBy: 0)
ele.press(forDuration: <timeIntervalInSec>, thenDragTo: <destination_XCUIElement>)

参考:API 文档

于 2018-09-12T15:18:25.217 回答
1

同样的问题。没有解决方案。看起来可访问性不支持 dnd,Apple 文档说:为拖放操作提供替代方案。

于 2015-12-22T07:44:13.293 回答
0

我唯一能建议的是尝试检查正在测试的代码的可访问性功能。UI 测试需要有可访问性信息才能理解 UI 中发生的事情。观看视频中大约 39:30 的Apple WWDC15 UI 测试视频,了解如何解决 UI 录制无法正确生成代码的问题的示例。

于 2015-10-16T18:24:05.310 回答