ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

WinAppDriver

2021-09-22 22:02:40  阅读:687  来源: 互联网

标签:Appium Windows 应用程序 会话 UI 测试 WinAppDriver


编写您自己的测试脚本

您可以选择 Appium/Selenium 支持的任何编程语言或工具来编写您的测试脚本。在下面的示例中,我们将使用 Microsoft Visual Studio 在 C# 中编写测试脚本。

创建测试项目

  1. 打开Microsoft Visual Studio 2015Microsoft Visual Studio 2017

    注意:在 Visual Studio 2017 中,请确保安装了可选的.NET 桌面开发工作负载

  2. 创建测试项目和解决方案。即选择新建项目 > 模板 > Visual C# > 测试 > 单元测试项目
  3. 创建后,选择Project > Manage NuGet Packages... > Browse并搜索Appium.WebDriver
  4. 为测试项目安装Appium.WebDriver NuGet 包
  5. 开始写你的测试(请参阅下面的示例代码样本

测试通用 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.txtC:\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班级名称班级名称文本块
FindElementByIdID运行时 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

标签:Appium,Windows,应用程序,会话,UI,测试,WinAppDriver
来源: https://blog.csdn.net/dubo_csdn/article/details/120423972

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有