我正在尝试创建 XCTestCase 以在我的大纲视图中测试重新排序(在 OS X 应用程序中)。当我使用 UI 测试记录功能时,Xcode 会打印:
window.outlines.staticTexts["<cell which I want to move>"].click()
我尝试在大纲视图内部或外部拖动单元格,Xcode 生成相同的无用代码。
有谁知道如何在 Xcode 7 中正确测试拖放?
我正在尝试创建 XCTestCase 以在我的大纲视图中测试重新排序(在 OS X 应用程序中)。当我使用 UI 测试记录功能时,Xcode 会打印:
window.outlines.staticTexts["<cell which I want to move>"].click()
我尝试在大纲视图内部或外部拖动单元格,Xcode 生成相同的无用代码。
有谁知道如何在 Xcode 7 中正确测试拖放?
不确定这是否是新的,但在 Xcode 7.2 中,如果XCUIElement
您clickForDuration(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)
使用 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 文档
同样的问题。没有解决方案。看起来可访问性不支持 dnd,Apple 文档说:为拖放操作提供替代方案。
我唯一能建议的是尝试检查正在测试的代码的可访问性功能。UI 测试需要有可访问性信息才能理解 UI 中发生的事情。观看视频中大约 39:30 的Apple WWDC15 UI 测试视频,了解如何解决 UI 录制无法正确生成代码的问题的示例。