要对我的应用进行UI测试,我必须启用/禁用iCloud。我通过在测试中启动“设置”应用程序,导航到 Apple ID 场景,然后点击 iCloud 单元格(见下图)。
在我的测试中,我检查iCloud单元是否存在且是否可命中。然后我才点击单元格:
// when
let iCloudCell = settingsApp.tables.cells["iCloud"]
let iCloudCellFound = iCloudCell.waitForExistence(timeout: 10)
// then
XCTAssert(iCloudCellFound, "iCloud settings not found")
XCTAssert(iCloudCell.isHittable, "iCloud settings not hittable")
// when
iCloudCell.tap()
大部分时间都可以使用,但是现在,测试会在iCloudCell.tap()
处停止并显示日志
t = 113.74s Find: Descendants matching type Table
t = 113.74s Find: Descendants matching type Cell
t = 113.74s Find: Elements matching predicate '"iCloud" IN identifiers'
t = 113.85s Synthesize event
t = 113.97s Assertion Failure: <unknown>:0: Failed to determine screen point of "iCloud" Cell: Error copying attributes -25202
修改 发生此错误时,仅显示Apple ID场景。没有警报,也没有其他观点。
我的问题是:这怎么可能是单元格可以击中,但屏幕点无法确定?什么可以成为一种解决方法?