【问题标题】:How to use UIAutomation to select image from UIImagePickerController如何使用 UIAutomation 从 UIImagePickerController 中选择图像
【发布时间】:2015-06-11 23:58:41
【问题描述】:

我们正在尝试围绕我们应用程序中的流程进行 UIAutomation 测试,其中用户从 UIImagePickerController 中选择图像。在我们尝试从选取器控制器中选择图像之前,所有的自动化都运行良好。似乎我们无法找到正确的对象来发送水龙头。这是我们正在尝试的:

 UIALogger.logMessage("Navigation Title: " + app.navigationTitle() );
 window.collectionViews()[0].tapWithOptions({tapOffset:{x:0.5, y:0.5}});

上面将导航标题显示为“Moments”,这意味着我们在照片选择器中,但第二行没有错误 - 但没有选择任何东西(无论坐标如何)。

测试最终失败,卡在照片选择屏幕上。

我记录了下面的元素树,您可以看到那里似乎有一个 UICollectionView,但所有单元格都是节标题,并且在调试日志输出中没有一个是实际的“照片”。

那么我们如何使用 UIAutomation 从 UIImagePickerController 中选择图像?

谢谢!

【问题讨论】:

标签: ios xcode uiimagepickercontroller automated-tests instruments


【解决方案1】:

我修复了这个问题

app.tables.cells.element(boundBy: 1).tap()  
// this table has two rows // 1- Moments  // 2- Camera role
app.collectionViews["PhotosGridView"].cells["Photo, Landscape, January 11, 6:34 PM"].tap() // I want to select this item from moments

它正在工作。

【讨论】:

    【解决方案2】:

    首先我选择时刻行,然后选择照片。稍后我单击按钮选择确认选择的图像。

        let moments = app.tables.cells.element(boundBy: 0)
        moments.tap()
        sleep(3)
        let selectedPhoto = app.collectionViews.element(boundBy: 0).cells.element(boundBy: 0)
        sleep(3)
        selectedPhoto.tap()
        sleep(3)
        //Choose Button
        let chooseButton = app.buttons.element(boundBy: 1)
        chooseButton.tap()
    

    希望对你有帮助

    【讨论】:

      【解决方案3】:

      所以,我想通了。呃。我只需要访问可见的单元格并将水龙头发送到其中一个。像魅力一样工作。

      window.collectionViews()[0].visibleCells()[0].tap();
      

      我希望这对其他人有帮助!

      【讨论】:

      • @Tareq ..如果你发现了也请告诉我。
      • @YugandharPathi 我花了很多时间研究这个,但基本上你不能,因为 iOS 11 苹果将 UIImagePickerController 放在应用程序视图层次结构之外,所以你无法访问它一个解决方法我' m 使用的是使用模拟并加载带有预加载图像的组件以保持测试运行,我只是在我的 .env 文件中有一个名为 TESTING 的变量,每当 detox 进行新构建时,我的测试脚本都会将该变量设置为true 然后在我的代码中检查那个变量,如果它是真的,我会为任何无法进行排毒的程序加载一个虚拟数据
      • @TareqEl-Masri 非常感谢!你能告诉我如何在运行 detox 的同时运行测试脚本吗?你有什么排毒配置吗?
      猜你喜欢
      • 2018-06-20
      • 1970-01-01
      • 2017-10-30
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2020-09-06
      • 2012-10-17
      相关资源
      最近更新 更多