编写您自己的测试脚本
您可以选择 Appium/Selenium 支持的任何编程语言或工具来编写您的测试脚本。在下面的示例中,我们将使用 Microsoft Visual Studio 在 C# 中编写测试脚本。
创建测试项目
- 打开Microsoft Visual Studio 2015或Microsoft Visual Studio 2017
注意:在 Visual Studio 2017 中,请确保安装了可选的.NET 桌面开发工作负载
- 创建测试项目和解决方案。即选择新建项目 > 模板 > Visual C# > 测试 > 单元测试项目
- 创建后,选择Project > Manage NuGet Packages... > Browse并搜索Appium.WebDriver
- 为测试项目安装Appium.WebDriver NuGet 包
- 开始写你的测试(请参阅下面的示例代码样本)
测试通用 Windows 平台应用程序
若要测试 UWP 应用,只需在创建会话时在应用功能条目中指定要测试的应用程序的应用程序 ID。如果您的应用程序通过appArguments功能支持它们,您还可以指定启动参数。下面是为用 C# 编写的Windows闹钟和时钟应用程序创建测试会话的示例:
// 启动闹钟应用 DesiredCapabilities appCapabilities = new DesiredCapabilities (); 应用能力。SetCapability ( "app" , "Microsoft.WindowsAlarms_8wekyb3d8bbwe!App" ); AlarmClockSession = new WindowsDriver < WindowsElement >( new Uri ( "http://127.0.0.1:4723" ), appCapabilities ); // 使用会话来控制应用程序 AlarmClockSession 。FindElementByAccessibilityId ( "AddAlarmButton" )。点击(); 闹钟会话。FindElementByAccessibilityId ( "AlarmNameTextBox" )。清除();
您可以在node.js下生成的
AppX\vs.appxrecipe
文件中找到您的应用程序的应用程序 IDRegisteredUserModeAppID
。例如c24c8163-548e-4b84-a466-530178fc0580_scyf5npe3hv32!App
测试经典 Windows 应用程序
要测试经典 Windows 应用程序,请在创建新会话时在应用程序功能条目中指定被测应用程序的完整可执行路径。与现代 (UWP) 应用程序类似,您可以通过appArguments功能指定启动参数。但与现代应用程序不同的是,您还可以通过“appWorkingDir”功能为经典应用程序指定应用程序工作目录。下面是创建了一个测试阶段的一个例子记事本打开的应用程序在。MyTestFile.txt
C:\MyTestFolder\
// 启动记事本 DesiredCapabilities appCapabilities = new DesiredCapabilities (); 应用能力。SetCapability ( "app" , @"C:\Windows\System32\notepad.exe" ); 应用能力。SetCapability ( "appArguments" , @"MyTestFile.txt" ); 应用能力。SetCapability ( "appWorkingDir" , @"C:\MyTestFolder\" ); NotepadSession = 新的 WindowsDriver < WindowsElement > ( "http://127.0.0.1:4723" ), appCapabilities ); // 使用会话来控制应用程序 NotepadSession 。FindElementByClassName ( "Edit" )。SendKeys ( "这是一些文本" ); // Appium.WebDriver.4.1.1 // 启动记事本 var appiumOptions = new OpenQA . 硒。阿平。AppiumOptions (); × 。AddAdditionalCapability ( "app" , @"C:\Windows\System32\notepad.exe" ); × 。AddAdditionalCapability ( "appArguments" , @"MyTestFile.txt" ); × 。AddAdditionalCapability ( "appWorkingDir" , @"C:\MyTestFolder\" ); WindowsDriver < WindowsElement >( new Uri ( "http://127.0.0.1:4723" ), appiumOptions ); // 使用会话来控制应用程序 NotepadSession 。FindElementByClassName ( "Edit" )。SendKeys ( "这是一些文本" );
检查 UI 元素
有三个工具可以帮助您检查 UI 元素:
- 检查程序
默认情况下,最新的 Microsoft Visual Studio 版本包含 Windows SDK,其中包含一个用于检查您正在测试的应用程序的强大工具。此工具允许您查看可以使用 Windows 应用程序驱动程序查询的每个 UI 元素/节点。这个inspect.exe工具可以在Windows SDK文件夹下找到,通常是C:\Program Files (x86)\Windows Kits\10\bin\x86
有关 Inspect 的更多详细文档可在 MSDN https://msdn.microsoft.com/library/windows/desktop/dd318521(v=vs.85).aspx 上找到。
它是 Appium 服务器的图形界面,也是帮助您定位 UI 元素的检查器。有关将 Appium Desktop 与 WinAppDriver 一起使用的更多信息,请参阅使用 Appium Desktop 检查 WinAppDriver 自动化的 UI 元素
支持定位器以查找 UI 元素
Windows 应用程序驱动程序支持各种定位器以在应用程序会话中查找 UI 元素。下表显示了所有支持的定位器策略及其相应的 UI 元素属性显示在inspect.exe 中。
客户端接口 | 定位器策略 | inspect.exe 中的匹配属性 | 例子 |
---|---|---|---|
FindElementByAccessibilityId | 无障碍标识 | 自动化ID | 应用名称标题 |
FindElementByClassName | 班级名称 | 班级名称 | 文本块 |
FindElementById | ID | 运行时 ID(十进制) | 42.333896.3.1 |
按名称查找元素 | 姓名 | 姓名 | 计算器 |
FindElementByTagName | 标签名称 | LocalizedControlType(驼峰大写) | 文本 |
FindElementByXPath | 路径 | 任何 | //按钮[0] |
支持的功能
以下是可用于创建 Windows 应用程序驱动程序会话的功能。
能力 | 说明 | 例子 |
---|---|---|
应用程序 | 应用程序标识符或可执行文件的完整路径 | Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge |
应用参数 | 应用程序启动参数 | GitHub - microsoft/WinAppDriver: Windows Application Driver |
应用顶层窗口 | 要附加到的现有应用程序*窗口 | 0xB822E2 |
应用程序工作目录 | 应用程序工作目录(仅限经典应用程序) | C:\Temp |
平台名称 | 目标平台名称 | 视窗 |
平台版本 | 目标平台版本 | 1.0 |