用.element(boundBy: 0)的UI测试代码中的所有实例替换为.firstMatch安全吗?
我是这么认为的,但是来自苹果的文档并不十分清楚(尤其是在多个匹配的情况下,尽管我只关心第一个匹配)。https://developer.apple.com/documentation/xctest/xcuielementtypequeryprovider/2902250-firstmatch
发布于 2017-09-18 22:40:30
与其将element(boundBy: 0)与firstMatch交换,不如将它们链锁起来。
XCUIApplication().cells.element(boundBy:0).firstMatch如果屏幕上有多个单元格,这将使查询解析速度更快。如果没有firstMatch,测试将首先获得所有单元格的列表,然后使用第一个单元格。使用firstMatch,测试将查找单元格并使用它找到的第一个单元格。
仅在您明确知道单个元素将与查询匹配的情况下才使用firstMatch。
您仍然应该在任何可能有超过一个匹配查询的元素的地方执行element(boundBy:),以确保当您使用firstMatch时,只有一个元素可以匹配该查询。在有3个单元格并且要使用第一个单元格的情况下,仍然应该使用element(boundBy: 0)。如果您知道屏幕上只有一个单元格,那么可以跳过element(boundBy: 0),使用firstMatch而不是element来更快地解析查询。
// fine if there is only one cell
XCUIApplication().cells.element // also checks for multiple matches
// also fine if there is only one cell
XCUIApplication().cells.firstMatch // does not check for multiple matcheshttps://stackoverflow.com/questions/46276544
复制相似问题