appium - 使用 appoum 进行 Xamarin.forms UI 测试
问题描述
我正在开发一个用 C# 编写的应用程序,我正在尝试运行一些简单的 UI 测试场景。该应用程序是 Xamarin 表单应用程序,具有 Android 和 iOS 子项目。我还添加了一个 UWP 子项目。
当我在调试模式下运行它们时,所有 3 个应用程序都可以工作。
我还添加了一些简单的 UI 测试。对于这些简单的 UI 测试,我想使用 Appium。
当我运行 UI 测试时,它们确实有效。至少在安卓上。当 Visual Studio 尝试为 UWP 应用运行 UI 测试时,应用会启动并关闭。
运行测试方法时,需要选择一些元素。这适用于 Android 和 iOS,但不适用于 UWP。
在测试方法中,我尝试通过以下方式找到元素:
appiumDriver.FindElementByAccessibilityId("Login");
正如我所说,当 Android UI 测试运行时,appium 可以找到这个元素。当 appium 运行 UWP UI 测试时,appium 找不到元素。
通过运行 inspect.exe 实用程序来检查 UWP 应用程序,我确实看到没有“AccessAbilityId”元素,只有一个“名称”元素。但是,当我使用 Appium 检查器实用程序检查它时,这个“名称”元素在 android 应用程序中不存在。在 Android 应用程序中,只有“AccessAbilityId”或 xpath 可用。
所以我在考虑2个解决方案。
- 为 Android/iOS 和 UWP 编写单独的 UI 测试。
- 确定正在测试的应用程序是否为 UWP,如果是,则查找如下元素:
appiumDriver.FindElementByName("Login");
什么可能的解决方案会更好?
如何确定应用程序是否为 UWP?
提前致谢。
解决方案
推荐阅读
- php - 如何从 php 函数返回 db 查询的结果?
- node.js - 当我在表名中有大写字母时,Moongoose Model.find() 返回空数组
- java - 如何在 Angular 中调用 Java HTTP POST 方法
- java - 无法在 Java 中加载静态库 - UnsatisfiedLinkError:无效的 ELF 标头(可能的原因:字节序不匹配)
- angular - input type=date in not working in Internet Explorer 11 for my angular 7 project
- ionic-framework - 需要在 Ionic 4 中将点击的图像捕获为 base64
- javascript - Rails 6 SPA ActiveStorage 无效的请求参数:UTF-8 中的无效字节序列
- node.js - 如何在 gitlab ci 中测试微服务的交互?
- javascript - Angular 的最佳实践
- swift - 从 UICollectionViewCell 滚动统计时,UICollectionView 不滚动