翻譯|使用教程|編輯:龔雪|2022-03-07 10:08:02.190|閱讀 213 次
概述:本文主要介紹DevExpress WPF控件是如何使用Appium測試控件,歡迎下載最新版控件體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
DevExpress WPF 控件支持帶有WinAppDriver UI測試自動化的Appium框架,本文主要介紹如何準(zhǔn)備環(huán)境和創(chuàng)建測試。
按照以下步驟將 Appium 與 DevExpress WPF 控件一起使用:
1. 啟動 。
2. 安裝。
3. 在您的項目中引用 。
4. 將 DevExpress WPF 控件切換到 UI 測試模式,為此請在應(yīng)用程序啟動時在測試的應(yīng)用程序中將 DX.UITestingENABLED 環(huán)境變量設(shè)置為 1 或?qū)? 屬性設(shè)置為 true,此模式導(dǎo)致以下更改:
注意:示例項目使用 EnvironmentVariables 屬性來指定 DX.UITESTINGENABLED 環(huán)境變量。
要使用 Appium API,請創(chuàng)建一個 WindowsDriver 實例。 以下代碼示例運(yùn)行經(jīng)過測試的應(yīng)用程序并創(chuàng)建 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("http://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("http://127.0.0.1:4723"), options)
要測試正在運(yùn)行的應(yīng)用程序,請將上面代碼示例中帶有“app”capabilityName 的行更改為以下內(nèi)容:
UnitTest1.cs
options.AddAdditionalCapability(capabilityName: "appTopLevelWindow", capabilityValue: $"0x{WindowHandle.ToInt64():X8}");
UnitTest1.vb
options.AddAdditionalCapability(capabilityName:="appTopLevelWindow", capabilityValue:=$"0x{WindowHandle.ToInt64()}")
注意:如果您在與被測應(yīng)用程序相同的進(jìn)程中托管測試,則測試應(yīng)該在單獨(dú)的線程中。 在這種情況下,UI 線程可以同步處理 windows 消息。
使用 WinAppDriver UI 記錄器
您可以使用 WinAppDriver UI Recorder 工具生成測試。 在這種情況下,您的測試應(yīng)用程序需要 DesktopSession 類,這種方法有以下缺點(diǎn):
使用 Appium API
使用 WinAppDriver 的 FindElementByName、FindElementByClassName 和 FindElementByAccessibilityId 方法來查找應(yīng)用程序元素,這些方法比 FindElementByXPath 方法工作得更快。 當(dāng)您修改應(yīng)用程序布局時,基于這些方法的測試不會失敗。
您可以使用 Inspect 工具查找元素名稱、類名稱和自動化 ID。
提示:您可以指定應(yīng)用程序元素的 AutomationProperties.AutomationId 附加屬性以增強(qiáng)測試的可讀性。
示例
以下代碼打開“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擁有120+個控件和庫,將幫助您交付滿足甚至超出企業(yè)需求的高性能業(yè)務(wù)應(yīng)用程序。通過DevExpress WPF能創(chuàng)建有著強(qiáng)大互動功能的XAML基礎(chǔ)應(yīng)用程序,這些應(yīng)用程序?qū)W⒂诋?dāng)代客戶的需求和構(gòu)建未來新一代支持觸摸的解決方案。 無論是Office辦公軟件的衍伸產(chǎn)品,還是以數(shù)據(jù)為中心的商業(yè)智能產(chǎn)品,都能通過DevExpress WPF控件來實現(xiàn)。
DevExpress技術(shù)交流群5:742234706 歡迎一起進(jìn)群討論
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自:慧都網(wǎng)