带时间戳的事件匹配错误:找不到匹配的元素

时间:2016-04-14 07:52:36

标签: swift xcode7 xcode-ui-testing

我正在尝试在Xcode中生成UItest。当我尝试刷UIview时,我得到了 错误:

Timestamped Event Matching Error: Failed to find matching element

error window

enter image description here

如果我尝试点击UIView,也会发生这种情况。

7 个答案:

答案 0 :(得分:46)

您应该验证是否为要刷卡的UIView对象启用了“辅助功能”选项,例如:

enter image description here

答案 1 :(得分:3)

在Xcode 9.3中,这显然仍然是一个问题,我所做的是:

  • 退出Xcode
  • 重置模拟器的设置(硬件 - >全部删除 内容和设置)
  • 退出模拟器
  • 删除当前应用的衍生数据
  • 重启Xcode
  • 再次尝试录制 - 这次对我有用。

答案 2 :(得分:2)

为了录制新的测试,我认为还没有解决方案。但是,如果你使用扩展强制点击已经存在的测试,那就行了。

使用示例:

extension XCUIElement {

    func forceTapElement() {
        if self.hittable {
            self.tap()
        }
        else {
            let coordinate: XCUICoordinate = self.coordinateWithNormalizedOffset(CGVectorMake(0.0, 0.0))
            coordinate.tap()
        }  
    }
}

func testSomethingWithCells() {

   let app = XCUIApplication()
   let cells = app.tables.cells
   sleep(1)
   cells.elementBoundByIndex(0).forceTapElement()
}

您可以在此处查看原始帖子:

Xcode UI test - UI Testing Failure - Failed to scroll to visible (by AX action) when tap on Search field "Cancel' button

答案 3 :(得分:1)

我偶尔会遇到这个问题。从DerivedData中删除应用程序的目录似乎有所帮助。

答案 4 :(得分:1)

对我自己有用的解决方案是以不同方式识别对象 在Xcode 8中,我能够使用以下内容:

XCUIApplication().tables.cells["Camera Roll"].buttons["Camera Roll"].tap()

使用Xcode 9,我收到了这个问题中提到的错误。结束使用以下,有效(比原始选项更加灵活)

XCUIApplication().cells.element(boundBy: 1).tap()

答案 5 :(得分:1)

通常,当要记录的元素的父元素设置为isAccessibilityElement = true时,会出现此问题。通常,必须将父元素设置为false才能访问子元素。例如:如果视图中有UILabel,则该视图的可访问性应设置为false,UILabel的可访问性应设置为true。

答案 6 :(得分:0)

即使您为元素启用了辅助功能,您也必须确保它具有唯一 辅助功能标识符。就我而言,我复制并粘贴了一个 UISwitch 并为其分配了一个不同的插座,但它保持了与原始插座相同的无障碍 ID。