我在ViewController上有一个关闭按钮,它被呈现为ChildViewController。我已打开此按钮的辅助功能,辅助功能标识符为closeButton
。这个按钮没有任何文字,它只有一个图像。
我正在尝试测试此视图的显示和解雇,但遇到问题,XCUITest无法找到该元素。我的测试代码是:
app.buttons["PresentChild"].tap()
XCTAssertTrue(app.otherElements["ChildViewController"].exists)
XCTAssertTrue(app.buttons["closeButton"].exists)
第一个断言通过,但第二个断言失败。
我尝试执行“记录UI测试”以选择按钮以自动生成它,但后来我收到错误Failed to find Matching Element
。我尝试删除模拟器上的所有内容并删除所有派生数据,但这也无效。
有没有人知道Xcode中这个明显错误的解决方法?我无法通过录制访问该元素,我无法通过辅助功能访问该元素,我不知道如何访问此按钮。
答案 0 :(得分:0)
我不知道您的主张的确切问题是什么。但是此步骤可能会对您有所帮助。
XCTAssertTrue(app.otherElements["ChildViewController"].exists)
上放置一个断点po XCUIApplication().buttons.debugDescription
中键入此行,然后点按输入按钮closeButton
” "closeButton"
(标识符区分大小写,标识符中的空格也很重要)app.buttons["closeButton"].exists
一样进行检查,还应像app.navigationBars.otherElements["someName"].buttons["closeButton"].exists
一样尝试(这似乎很有趣,但是给出元素的确切位置路径是一种好习惯,并且有时会起作用)
注意:如果系统在对元素执行操作时无法找到具有正确标识符的元素,则会在UI记录中发生此错误“ Failed to find Matching Element
”。所以我的猜测是,您的closeButton没有正确的标识符,或者没有添加到当前窗口中。
干杯!