色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用DevExpress Winforms實現UI自動化

Wildesbeast ? 來源:今日頭條 ? 作者:慧都科技 ? 2020-02-07 13:27 ? 次閱讀

DevExpress Winforms Controls內置140多個UI控件和庫,完美構建流暢、美觀且易于使用的應用程序。無論是Office風格的界面,還是分析處理大批量的業務數據,DevExpress WinForms都能輕松勝任。DevExpress廣泛應用于ECM企業內容管理、 成本管控、進程監督、生產調度,在企業/政務信息化管理中占據一席重要之地。

【適用范圍】:各種桌面、Web應用程序開發,尤其是WinForms應用程序開發。

點擊獲取DevExpress v19.2完整版試用下載:https://www.evget.com/product/740/download

在針對Visual Studio 2019的發行說明中,Microsoft 宣布Coded UI測試的生命周期終止。

Microsoft建議將Appium with WinAppDriver 一起用于測試桌面和UWP應用,此消息引起廣大用戶的興趣:DevExpress控件是否與Appium兼容?經過DevExpress團隊的反復測試,答案是肯定的!使用Appium創建自動UI測試的方法如下。

1. 跳轉到 https://github.com/Microsoft/WinAppDriver/releases然后下載兩個APP,

WinAppDriver- 允許您運行測試,需要安裝。

WinAppDriver UI Recorder- 允許您在運行時記錄測試,不需要安裝 - 將下載的存檔解壓到任何文件夾。

2. 在Windows中打開Developer Mode。

3. 以管理員身份運行WinAppDriver.exe并使其運行,請注意應用程序正在偵聽的地址,稍后您將需要它。

4. 打開您要測試的Visual Studio解決方案,或創建一個新的示例解決方案。

5. 將新的單元測試項目添加到解決方案。

6. 在Solution Explorer中右鍵單擊Unit Test project,然后選擇“Manage NuGet Packages…”,安裝最新的穩定Appium.WebDriver程序包。

7. 打開Unit Test項目的UnitTest1.cs文件,并添加兩個類:MainDemoSession(定義開始和結束測試會話的方法)和Helper(包含查找被測試的UI元素的方法),將步驟3中的地址用作WindowsApplicationDriverUrl值。

public class MainDemoSession{protected const string WindowsApplicationDriverUrl = "http://127.0.0.1:4723";private const string ApplicationPath = @"C:\Users\...\AppiumTest.exe"; protected static WindowsDriver desktopSession; public static void Setup(TestContext context) { // Launch a new instance of the tested application if (desktopSession == null) { // Create a new session to launch the tested application AppiumOptions options = new AppiumOptions(); options.AddAdditionalCapability("app", ApplicationPath); desktopSession = new WindowsDriver( new Uri(WindowsApplicationDriverUrl), options); Assert.IsNotNull(desktopSession); Assert.IsNotNull(desktopSession.SessionId); // Set implicit timeout to 1.5 seconds //to make element search to retry every 500 ms //for at most three times desktopSession.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(1.5); } } public static void TearDown() { // Close the application and delete the session if (desktopSession != null) { desktopSession.Close(); desktopSession.Quit(); desktopSession = null; } } } public static class Helper { public static WindowsElement FindElementByAbsoluteXPath( this WindowsDriver desktopSession, string xPath, int nTryCount = 3) { WindowsElement uiTarget = null; while (nTryCount-- > 0) { try { uiTarget = desktopSession.FindElementByXPath(xPath); } catch { } if (uiTarget != null) { break; } else { System.Threading.Thread.Sleep(400); } } return uiTarget; } }

8. 修改自動生成的UnitTest1類,如下所示:

[TestClass]public class UnitTest1 : MainDemoSession{[TestMethod]public void TestMethod1(){//test start //test finish } [ClassInitialize] public static void ClassInitialize(TestContext context) { Setup(context); } [ClassCleanup] public static void ClassCleanup() { TearDown(); } }

9. 運行您的應用程序,并將其拖到主系統顯示屏上(如果您具有多屏幕設置)。

10. 啟動WinAppDriver UI Recorder然后點擊“Record”, 將鼠標懸停在要與之交互的第一個UI元素上,然后等待它開始閃爍藍色。Recorder的狀態欄會將其文本從“Active”更改為“XPath Ready”。

11. 當該元素閃爍時,recorder已準備就緒,您可以執行UI操作:單擊此元素、將其拖動、輸入新值等。完成此元素后,將鼠標懸停在另一個UI元素上,等待 recorder的確認并重復該過程。

12. 記錄了要重現的一系列步驟后,請在recorder中單擊“Pause”,您可以打開actions selector確保已記錄所有UI操作。

13. 單擊“Generate and copy C# code to Clipboard”按鈕來復制所有記錄的操作代碼,將此代碼粘貼到UnitTest1.TestMethod1方法中。 例如,下面的代碼選擇“Job”標簽

[TestMethod] public void TestMethod1() { //test start // LeftClick on TabItem "Job" at (20,31) Console.WriteLine("LeftClick on TabItem "Job" at (20,31)"); string xpath_LeftClickTabItemJob_20_31 = "/Pane\[@ClassName="#32769"\][@Name="Desktop 1"]/Window\[starts-with(@AutomationId,"XtraForm")]/Pane[@Name="The XtraLayoutControl"\][starts-with(@AutomationId,"dataLayoutControl")]/Table[@Name="Root"]/Table[@Name="autoGeneratedGroup0"]/Table[@Name="Root"]/Table[@Name="Photo"]/Table[@Name="FirstAndLastName"]/Tab[@Name="Tabs"]/TabItem[@Name="Job"]"; var winElem_LeftClickTabItemJob_20_31 = desktopSession.FindElementByAbsoluteXPath(xpath_LeftClickTabItemJob_20_31); if (winElem_LeftClickTabItemJob_20_31 != null) { winElem_LeftClickTabItemJob_20_31.Click(); } else { Console.WriteLine($"Failed to find element using xpath: {xpath_LeftClickTabItemJob_20_31}"); return; } //test finish }

14. 在內部測試期間,自動生成的代碼可能無法通過其完整路徑找到UI元素:

/Pane\[@ClassName="#32769"\][@Name="Desktop 1"]/Window[starts-with…

如果發生這種情況,請縮短所有元素路徑,使其以“ / Window”開頭。

string xpath_LeftClickTabItemJob_20_31 = "/Window[starts-with(@AutomationId...";

此外,您可以使用Assert.Fail而不是Console.WriteLine來調試測試(如果找不到UI元素,則可以)。

Assert.Fail($"Failed to find element...");

15. 在Visual Studio中右鍵單擊Unit Test project,然后單擊“Run Tests”。測試將啟動您的應用程序,重復所有記錄的步驟,然后關閉應用程序。 所有測試操作都記錄在步驟3中啟動的WinAppDriver控制臺中。

您可以通過與Coded UI相同的方式啟動Appium測試,唯一的區別是您需要在測試執行計算機上運行WinAppDriver。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Web
    Web
    +關注

    關注

    2

    文章

    1266

    瀏覽量

    69546
  • office
    +關注

    關注

    1

    文章

    109

    瀏覽量

    35079
  • ECM
    ECM
    +關注

    關注

    3

    文章

    56

    瀏覽量

    28018
收藏 人收藏

    評論

    相關推薦

    基于 Docker 與 Jenkins 實現自動化部署

    前言 重塑自動化部署新高度,Docker 攜手 Jenkins,在華為云 Flexus X 云服務器的加持下,引領持續集成與部署的新紀元。Flexus X 以其卓越的性能、靈活的資源配置和高效的成本
    的頭像 發表于 01-07 17:25 ?173次閱讀
    基于 Docker 與 Jenkins <b class='flag-5'>實現</b><b class='flag-5'>自動化</b>部署

    自動化創建UI并解析數據

    *附件:32960_auto.rar備注:Main.vi是ui自動化2.1.vi,配置文件為32960.B.ini。 目前可以實現根據配置文件自動化創建控件并布局,且可以
    發表于 12-10 08:41

    自動化創建UI并解析數據

    Labview實現動態增加控件效果 - *附件:32960_auto.rar 備注:Main.vi是ui自動化2.1.vi,配置文件為32960.B.ini。 目前可以實現根據配置文件
    發表于 11-29 11:26

    LMX2595EVM如何實現自動化控制?

    我需要用LMX2595EVM實現自動化控制,請問那里有LMX2595EVM相關的sdk接口文檔或者Demo?
    發表于 11-13 06:09

    使用TPS2116實現建筑自動化應用的高能效

    電子發燒友網站提供《使用TPS2116實現建筑自動化應用的高能效.pdf》資料免費下載
    發表于 09-25 11:12 ?0次下載
    使用TPS2116<b class='flag-5'>實現</b>建筑<b class='flag-5'>自動化</b>應用的高能效

    開關電源自動化測試設備:如何實現自動化測試?

    開關電源自動化測試設備是將測試軟件和測試硬件集成在一個電源測試柜中的ate自動測試設備,其測試原理是通過計算機操控測試儀器,從而減少人工干預,完成開關電源的自動化測試,旨在解放人力,提高測試效率,讓測試更便捷。
    的頭像 發表于 08-30 18:19 ?1332次閱讀
    開關電源<b class='flag-5'>自動化</b>測試設備:如何<b class='flag-5'>實現</b><b class='flag-5'>自動化</b>測試?

    機械自動化和電氣自動化區別是什么

    機械自動化和電氣自動化是現代工業生產中兩個重要的領域,它們在許多方面有著密切的聯系,但也存在一些明顯的區別。 一、基本概念 機械自動化 機械自動化是指利用機械設備、傳感器、控制系統等技
    的頭像 發表于 07-01 09:33 ?4234次閱讀

    機械自動化自動化的一種嗎

    引言 自動化技術是指利用控制裝置對生產過程進行控制,以實現生產過程的自動化。機械自動化自動化技術的一種,它主要涉及到使用機械設備和控制系統
    的頭像 發表于 07-01 09:32 ?1729次閱讀

    工業自動化中的控制方式

    工業自動化是現代工業發展的重要標志,它極大地提高了生產效率,降低了生產成本,并改善了產品質量。在工業自動化中,控制方式作為實現自動化控制的關鍵環節,其重要性不言而喻。本文將詳細介紹工業
    的頭像 發表于 06-17 11:41 ?875次閱讀

    如何實現PLC的自動化控制邏輯

    在工業自動化領域,PLC(Programmable Logic Controller,可編程邏輯控制器)扮演著至關重要的角色。PLC通過編程實現自動化控制邏輯,使設備能夠按照預定的程序進行工作,極大
    的頭像 發表于 06-15 16:44 ?1235次閱讀

    機械制造與自動化自動化類嗎

    機械制造與自動化自動化領域的一個重要分支,它涉及到機械設計、制造、檢測、控制等多個方面,是現代制造業的核心組成部分。 機械制造與自動化是指利用計算機、機器人、傳感器等自動化設備和技術
    的頭像 發表于 06-11 11:18 ?1577次閱讀

    工業自動化自動化區別是什么

    工業自動化自動化是兩個密切相關但又有所區別的概念。在這篇文章中,我們將詳細探討它們之間的區別,以及它們在現代工業生產中的應用。 一、自動化的定義 自動化是指通過使用機器、計算機和其他
    的頭像 發表于 06-11 11:13 ?1804次閱讀

    工廠自動化控制的典型實現方式

    工廠自動化控制是現代制造業的關鍵組成部分,它通過應用先進的信息技術、自動化技術和控制技術,實現生產過程的自動化、智能和信息
    的頭像 發表于 06-06 15:51 ?1107次閱讀

    鴻蒙OS開發實戰:【自動化測試框架】使用指南

    為支撐HarmonyOS操作系統的自動化測試活動開展,我們提供了支持JS/TS語言的單元及UI測試框架,支持開發者針對應用接口進行單元測試,并且可基于UI操作進行UI
    的頭像 發表于 04-08 14:49 ?1472次閱讀
    鴻蒙OS開發實戰:【<b class='flag-5'>自動化</b>測試框架】使用指南

    TC397怎么自動化燒錄?

    TC397第一次燒錄的時候需要先燒錄六個包,使用Infineon Memtool 4.8軟件,如果想要量產,怎么實現不用手動選擇文件的燒錄方式,使用自動化燒錄
    發表于 01-25 07:03
    主站蜘蛛池模板: xxx动漫xxx在线观看| 成人午夜精品久久久久久久秋霞 | 性欧美FREE少妇XXX| 大乳牛奶女在线观看| 日本二区三区欧美亚洲国| BLACKED太粗太长| 农民工老头在出租屋嫖老熟女| 夜夜躁日日躁狠狠| 久久精品视频91| 在线播放真实国产乱子伦| 久久精品一区二区三区资源网| 亚洲视频在线观看网站| 久久re这里视频精品8| 野花高清影视免费观看| 开心色99xxxx开心色| 99久女女精品视频在线观看| 欧美日韩午夜群交多人轮换| 伧理片午夜伧理片| 视频区 国产 欧美 日韩| 国产午夜不卡| 在线免费视频国产| 欧美日韩看看2015永久免费| 帝王被大臣们调教高肉| 小蝌蚪视频在线观看免费观看WWW| 国产真实露脸乱子伦| 伊人久久大线蕉香港三级| 蜜桃无码AV视频在线观看| jizz中国女人| 王晶经典三级| 久久久久久91香蕉国产| jj插入bb| 性做久久久久免费观看| 精品久久香蕉国产线看观看麻豆| 18videosex性欧美黑色| 揉抓捏打抽插射免费视频| 果冻传媒最新视频在线观看| 最近的2019中文字幕国语版| 强行撕开衣服捏胸黄文| 国产色婷婷亚洲99麻豆| 92电影网午夜福利| 无码一区二区三区|