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