如何让 XCTest 应用程序(XCUITest 应用程序,而不是 SUT)访问照片库?

Posted

技术标签:

【中文标题】如何让 XCTest 应用程序(XCUITest 应用程序,而不是 SUT)访问照片库?【英文标题】:How can I get an XCUITest application (the XCUI Test application, not the SUT) to access the photos library? 【发布时间】:2018-05-15 17:57:39 【问题描述】:

我希望能够让我的 XCUITest 应用程序将图像发布到服务器。我已经使用xcrun simctl addmedia 命令安装了图像,但我不知道如何从 XCUITest 类访问它。

【问题讨论】:

【参考方案1】:

我通过使用 UITest 访问安装在模拟器照片库中的默认照片,然后使用 SUT 发布到有问题的服务器来完成此操作。

【讨论】:

【参考方案2】:

记录器不能像照片库那样在 UIRemoteViews 中工作。您可以做的是设置一个 ui 测试并将其设置到打开照片库的位置,然后设置断点并查看/打印视图层次结构。这就是我想出如何在 iPhone 模拟器中选择一张默认照片的方法。

    let app = XCUIApplication()

    let tablesQuery = app.tables
    //Get to the camera or library prompt
    app.sheets.buttons["Choose From Library"].tap()
    app.cells["Camera Roll"].tap()
    app.cells["Photo, Landscape, March 12, 2011, 7:17 PM"].tap()

【讨论】:

可能需要等待[]访问的CameraRoll等项目出现。

以上是关于如何让 XCTest 应用程序(XCUITest 应用程序,而不是 SUT)访问照片库?的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 7 中的 XCTest:如何验证视图中是不是存在某些文本

运行 XCUITest 时出现 dyld 致命错误

XCUITest:调用的测试函数中的断言不起作用

XCUITest - 如何模拟设备锁定

XCTest 测试运行器在完成运行测试之前以代码 -1 退出

如何在 Swift/XCTest 中写入本地文件?