在UI测试中,我以编程方式使用(缩写)创建了一个UIView。
let topMarker = UIView.init(frame: CGRect.init())
…
topMarker.accessibilityIdentifier = kTopMarker topMarker视图位于自定义表视图单元格中。在UI测试中,我使用
let new1stCell = app.cells.element(boundBy: 0)
let topMarker = new1stCell.otherElements[kTopMarker]
let topMarkerExists = topMarker.waitForExistence(timeout: 15)
XCTAssertTrue(topMarkerExists, "Top marker does not exist")
XCTAssertTrue(topMarker.isHittable, "Top marker is not hittable")当我设置测试失败断点时,测试会在最后一行停止,即topMarker存在,但不可命中。
另一方面,我可以在快照中看到视图,即它存在并且是可见的。
这是斯坦,因为文档说:
如果元素存在并且可以在其当前位置单击、点击或按下,isHittable将返回true。如果元素不存在、屏幕外或被另一个元素覆盖,则返回false。
我想,也许它是可见的,但是不能被点击、点击或按下,因为userInteractionEnable不是true,但是即使我将这个属性设置为true,视图也不会被击中。
我遗漏了什么?
发布于 2018-02-18 07:12:00
解决问题:
如果将isAccessibilityElement 属性设置为true.,则XCUIElement仅可命中。
文档 to property isAccessibilityElement say
除非接收方是标准的UIKit控件,否则此属性的默认值为false,在这种情况下,该值为true。
辅助应用程序只能获得由可访问性元素表示的对象的信息。因此,如果您实现了残障用户应该可以访问的自定义控件或视图,请将此属性设置为true。
我以编程方式实例化的UIView是而不是,它是一个标准的UIKit控件。一旦我加入
topMarker.isAccessibilityElement = true 测试
XCTAssertTrue(topMarker.isHittable, "Top marker is not hittable") 成功了。
https://stackoverflow.com/questions/48845519
复制相似问题