彩票走势图

界面控件DevExpress WPF入门级教程:如何使用Appium测试控件

翻译|使用教程|编辑:龚雪|2022-03-07 10:08:02.190|阅读 131 次

概述:本文主要介绍DevExpress WPF控件是如何使用Appium测试控件,欢迎下载最新版控件体验!

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

DevExpress WPF v21.2高速下载

DevExpress WPF 控件支持带有WinAppDriver UI测试自动化的Appium框架,本文主要介绍如何准备环境和创建测试。

准备环境

按照以下步骤将 Appium 与 DevExpress WPF 控件一起使用:

1. 启动 。

2. 安装。

3. 在您的项目中引用 。

4. 将 DevExpress WPF 控件切换到 UI 测试模式,为此请在应用程序启动时在测试的应用程序中将 DX.UITestingENABLED 环境变量设置为 1 或将 属性设置为 true,此模式导致以下更改:

  • 动画被禁用。
  • 上下文菜单仅在鼠标单击时打开,当鼠标指针位于菜单上方时不会打开。
  • UI Automation树进行了调整,使 UI 测试更加稳定和可靠。

注意:示例项目使用 EnvironmentVariables 属性来指定 DX.UITESTINGENABLED 环境变量。

创建测试

要使用 Appium API,请创建一个 WindowsDriver 实例。 以下代码示例运行经过测试的应用程序并创建 WindowsDriver 会话:

UnitTest1.cs

var options = new AppiumOptions();
options.AddAdditionalCapability(capabilityName: "app", capabilityValue: PathToTheApp);
options.AddAdditionalCapability(capabilityName: "deviceName", capabilityValue: "WindowsPC");
options.AddAdditionalCapability(capabilityName: "platformName", capabilityValue: "Windows");
options.AddAdditionalCapability(capabilityName: "ms:experimental-webdriver", capabilityValue: true);
var driver = new WindowsDriver<WindowsElement>(new Uri("//127.0.0.1:4723"), options);

UnitTest1.vb

Dim options = New AppiumOptions()
options.AddAdditionalCapability(capabilityName:="app", capabilityValue:=PathToTheApp)
options.AddAdditionalCapability(capabilityName:="deviceName", capabilityValue:="WindowsPC")
options.AddAdditionalCapability(capabilityName:="platformName", capabilityValue:="Windows")
options.AddAdditionalCapability(capabilityName:="ms:experimental-webdriver", capabilityValue:=True)
Dim driver = New WindowsDriver(Of WindowsElement)(New Uri("//127.0.0.1:4723"), options)

要测试正在运行的应用程序,请将上面代码示例中带有“app”capabilityName 的行更改为以下内容:

UnitTest1.cs

options.AddAdditionalCapability(capabilityName: "appTopLevelWindow", capabilityValue: $"0x{WindowHandle.ToInt64():X8}");

UnitTest1.vb

options.AddAdditionalCapability(capabilityName:="appTopLevelWindow", capabilityValue:=$"0x{WindowHandle.ToInt64()}")

注意:如果您在与被测应用程序相同的进程中托管测试,则测试应该在单独的线程中。 在这种情况下,UI 线程可以同步处理 windows 消息。

使用 WinAppDriver UI 记录器

您可以使用 WinAppDriver UI Recorder 工具生成测试。 在这种情况下,您的测试应用程序需要 DesktopSession 类,这种方法有以下缺点:

  • 这些测试使用 FindElementByXPath 方法来查找元素,这种方法很慢,因为它会解析整个可视化树。
  • 这些测试很难维护,因为它们使用绝对 XPath 来查找元素,应用程序布局更改可能会破坏测试。
  • 这些测试很难阅读。

使用 Appium API

使用 WinAppDriver 的 FindElementByName、FindElementByClassName 和 FindElementByAccessibilityId 方法来查找应用程序元素,这些方法比 FindElementByXPath 方法工作得更快。 当您修改应用程序布局时,基于这些方法的测试不会失败。

您可以使用 Inspect 工具查找元素名称、类名称和自动化 ID。

提示:您可以指定应用程序元素的 AutomationProperties.AutomationId 附加属性以增强测试的可读性。

示例

以下代码打开“New Employee”窗口,在该窗口中找到带有 TextEdit 类的“First Name”元素,输入“John”,然后单击“Save & Close”元素:

C#

[Test]
public void CreateEmployee()
{
var bNewEmployee = driver.FindElementByName("New Employee");
bNewEmployee.Click();

WindowsElement newEmployeeWindow = null;
while (newEmployeeWindow == null)
newEmployeeWindow = driver.FindElementByName("Employee (New)");

newEmployeeWindow.FindElementByName("First Name").FindElementByClassName("TextEdit").SendKeys("John");
newEmployeeWindow.FindElementByName("Save & Close").Click();
}

Visual Basic

Public Sub CreateEmployee()
Dim driver = desktopSession.DesktopSessionElement
Dim bNewEmployee = driver.FindElementByName("New Employee")
bNewEmployee.Click()
Dim newEmployeeWindow As WindowsElement = Nothing

While newEmployeeWindow Is Nothing
newEmployeeWindow = driver.FindElementByName("Employee (New)")
End While

newEmployeeWindow.FindElementByName("First Name").FindElementByClassName("TextEdit").SendKeys("John")
newEmployeeWindow.FindElementByName("Save & Close").Click()
End Sub

DevExpress WPF | 下载试用

DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过DevExpress WPF控件来实现。


DevExpress技术交流群5:742234706      欢迎一起进群讨论

DevExpress线上公开课火热开启

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP