【问题标题】:Xamarin UI Test: Is it possible to interact with the OS level dialogues during UITestingXamarin UI 测试:是否可以在 UITesting 期间与操作系统级别的对话进行交互
【发布时间】:2018-05-31 08:55:44
【问题描述】:

是否可以在 xamarin UI 测试期间自动执行操作系统级别的对话? IE - 点击上传按钮,它会打开一个图库模式,允许您选择要上传的照片?或者点击溢出菜单并选择通过外部应用打开还是全屏?

是否可以自动选择照片?是否可以触发飞行模式,使应用在测试执行期间处于离线状态?我只是想弄清楚我在自动化我负责的应用程序方面有多么有限,因为有一些这样的场景。

【问题讨论】:

  • 请避免在一篇文章中提出多个问题,这样答案才能有一个客观准确的答案。

标签: c# testing xamarin xamarin.forms automated-tests


【解决方案1】:

如果它不在您的应用程序的进程/沙箱中通常您无法使用 UITest 访问它(系统对话框/提示等项目会被自动接受...)。

就点击溢出菜单和选择操作而言,是的,这在您的应用程序中,因此可以自动化。

要通过UIImagePickerController 从 iOS 的 Galley 中选择图片,您将通过 RemoteViewBridge“看到”控制器,其中的 but 元素,即实际可选择的图片在厨房,您不会通过 UITest 代理看到它们,因为它们在您的应用程序进程之外被沙盒化。您可以使用.TapCoordinates(x,y) 来点击屏幕,从而选择一张图片。是的,这些坐标会根据设备大小等而变化……但有可能……:-/

UITest 确实支持 Casabash 的后门等功能,因此如果平台支持以编程方式执行某项操作,那么您可以将其编码到您的代码中并通过 UITest 调用该方法。因此,在 root Android 设备上,您可以编写一个启用飞行模式的方法并通过测试后门调用该方法,但在离线 Android 和 iOS 设备上设置飞行模式是不可能的。

现在使用像 Appium 这样的测试框架可以驱动系统应用程序(iOS 的 Safari、设置等),因为您基本上可以完全访问 iOS 的 XCUITest 和 Android 检测框架,所以 几乎只要有足够的测试编码,一切皆有可能。

Microsoft 确实有一些关于测试框架的概述文档:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-26
    • 2014-07-27
    • 1970-01-01
    • 1970-01-01
    • 2012-01-05
    • 2014-07-09
    • 2013-07-31
    • 2017-04-09
    相关资源
    最近更新 更多