3

我需要重新排序单元格UITestsUITableView是否可以?我试过myTable.swipeDown()了,但它在那个对重新排序没有响应的单元格的地方被调用。我怎样才能做到这一点?有可能吗?

在此处输入图像描述

4

3 回答 3

5

如果您正确设置了自定义单元集的可访问性属性,那么重新排序控件应该是可访问的。假设单元格将其可访问性标签/标识符分别设置为“LondonStreet”和“BakerStreet”。

您可以通过点击并从一个重新排序控件拖动到下一个来重新排序单元格。这些控件的可访问性标识符是根据单元格的信息自动设置的。

let app = XCUIApplication()
app.launch()

let topButton = app.buttons["Reorder LondonStreet"]
let bottomButton = app.buttons["Reorder BakerStreet"]
bottomButton.pressForDuration(0.5, thenDragToElement: topButton)

前缀由"Reorder "操作系统设置。尝试使用 Accessibility Inspector 查看重新排序控件的值是什么。

使用 Accessibility Inspector 访问重新排序控件

如果你想在你的机器上试用它,我已经在我的UI 测试备忘单中添加了一个示例,其中包含一些工作示例代码。

于 2015-09-10T15:51:29.720 回答
0

要首先启用Accessibility Inspector ,您必须转到:

系统偏好设置>安全和隐私

在此处输入图像描述

然后Xcode > Open Developer Tool > Accessibility Inspector

在此处输入图像描述

于 2015-09-11T09:52:16.513 回答
0

更通用的解决方案:(如果您不知道标题)

guard let firstCell = app.cells.allElementsBoundByIndex.first, let topButton = firstCell.buttons.allElementsBoundByIndex.last else { XCTFail("no reoder btn for first cell"); return }
guard let bottomCell = app.cells.allElementsBoundByIndex.last, let bottomButton = bottomCell.buttons.allElementsBoundByIndex.last else { XCTFail("no reoder btn for last cell"); return }
topButton.press(forDuration: 0.5, thenDragTo: bottomButton)
于 2019-08-20T11:47:36.307 回答