使用 xctest 从照片/图库中选取图像

saj*_*arg 6 gallery ios xctest swift

我正在为 ios 应用程序编写一个测试框架,需要从照片/图库应用程序导入图像进行验证。我正在使用 XCTest 框架进行测试。我在互联网上查找了一些资源,但没有找到。谁能帮助我如何解决这个问题。同样,我不是从应用程序内部而是从图像中而不是从照片库中选择图像。

Ste*_*ser 6

是的

您可以访问照片库,但它需要 XCUITest,并且记录器无法像照片选择器一样在 Apple 的 UIRemoteView 内部工作。您所要做的就是访问 XCUITest 内的照片选择器,设置断点,然后检查视图层次结构以查找能够使用 XCUITest 导航的元素。下面的示例适用于模拟器附带的图片。

    let app = XCUIApplication()
    // get to the photo library
    // set a breakpoint, po [[UIWindow keyWindow] recursiveDescription]
    let tablesQuery = app.tables
    app.sheets.buttons["Choose From Library"].tap()
    app.cells["Camera Roll"].tap()
    app.cells["Photo, Landscape, March 12, 2011, 7:17 PM"].tap()
Run Code Online (Sandbox Code Playgroud)

  • 照片的单元格标签实际上是根据时区进行调整的,这意味着它在不同时区中并不是恒定的。如果您只想选择照片卷中的任何照片,则可以使用谓词: `app.cells.containing(NSPredicate(format: "label BEGINSWITH 'Photo'")).element(boundBy: 0).tap( )` (4认同)

Ole*_*tha -1

您无法使用 XCTest 与您自己的应用程序之外的应用程序进行交互。这些测试引用了您的应用程序的包标识符,这是它们能够与之交互的唯一应用程序。

XCTest 需要对应用程序的内部进行一定程度的访问,以便为您提供有关它的信息,以便您可以通过 XCTest 与其进行交互,而这不是您自己制作的应用程序中无法访问的内容。