【问题标题】:Access NavigationLink using accessibility identifier in XCTestCases class - SwiftUI使用 XCTestCases 类中的可访问性标识符访问 NavigationLink - SwiftUI
【发布时间】:2021-05-25 05:43:57
【问题描述】:

我最近开始研究 SwiftUI 框架,我正在使用 XCTest 编写 UI 测试用例。

NavigationLink("Login", destination: TabBarDashboardView())
          .accessibility(identifier: "linkLogin")
          .frame(width: 200, height: 50, alignment: .center)
          .foregroundColor(.white)
          .background(Color.red)
          .padding([.top, .bottom], 40)

在 XCTestCase 类中,我尝试了以下代码来点击 NavigationLink:

func testLoginActionAndNavigation() throws {
        let linkLogin = self.app.navigationBars.links["linkLogin"]
        linkLogin.tap()
        XCTAssertEqual(linkLogin.title, "linkLogin")
    }

我收到以下错误并且测试用例失败:

Failed to get matching snapshot: No matches found for Descendants matching type Link from input {( NavigationBar, identifier: '_TtGC7SwiftUI19UIHosting' )}

我在 XCTestCase 类中搜索与 NavigationLink 访问相关的内容,但没有找到任何有效/正确的文档。

如果有人已经在这个主题上工作过,请你帮助我。

【问题讨论】:

  • 有什么更新吗?....

标签: ios swift swiftui swiftui-navigationlink xctestcase


【解决方案1】:

不要寻找匹配的 xxx.links[...] 元素 [我相信它实际上是用于单击 WebView 内的链接],尝试:

 let linkLogin = self.app.otherElements.buttons["linkLogin"]

(我基本上遇到了同样的问题,在尝试了很多事情之后,最终还是做了一个recording 并看到了同样的结果)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 2014-05-10
    相关资源
    最近更新 更多