我正在尋找一種軟件,它結合了宏觀錄製和截屏功能。自動截取程序窗口的屏幕截圖
我們有一個軟件手冊與一些截圖。當新版本的軟件發佈時,我們需要更新大部分屏幕截圖,我們必須手動完成。現在我們開始將手冊翻譯成多種語言,截圖的數量增加了十倍。我們希望自動化這個過程。
會有一個錄製的宏或點擊我們的軟件中的按鈕,並採取程序窗口的屏幕截圖。更好的是,我們可以單獨指定每個屏幕截圖的名稱,儘管它並不重要。
這樣的事情是否存在?
我正在尋找一種軟件,它結合了宏觀錄製和截屏功能。自動截取程序窗口的屏幕截圖
我們有一個軟件手冊與一些截圖。當新版本的軟件發佈時,我們需要更新大部分屏幕截圖,我們必須手動完成。現在我們開始將手冊翻譯成多種語言,截圖的數量增加了十倍。我們希望自動化這個過程。
會有一個錄製的宏或點擊我們的軟件中的按鈕,並採取程序窗口的屏幕截圖。更好的是,我們可以單獨指定每個屏幕截圖的名稱,儘管它並不重要。
這樣的事情是否存在?
我使用AutoIt加上captdll.dll來實現我所有的Windows GUI自動化任務。
例子:
Run("Notepad.exe", @WindowsDir, @SW_MAXIMIZE) ; Open NOTEPAD
Sleep(1000)
Send("Just a Test") ; Send some text to notepad
; Save the screen to test.jpg
$anPos = WinGetClientSize("")
$nLeft = 0
$nTop = 0
$nRight = $anPos[0]
$nBottom = $anPos[1]
$sFileName = "test.jpg"
DllCall("captdll.dll", "int:cdecl", "CaptureScreen", "str", $sFileName, "int", 85)
這樣你就可以自動完成整個截圖捕捉過程:
您還可以添加條件邏輯,循環等
是的。你需要自動化測試軟件,它可以做到這一切並測試你的產品。
很大程度上取決於您習慣的工具。工具存在,可以編程從Perl,Java,C#,VB和JavaScript到Ruby等。以AutoIt爲例,就像在這個問題中一樣: http://stackoverflow.com/questions/370673/taking-screenshots-of-an-application-using-wsh-script – Ben 2011-01-24 17:16:57
Testing Anywhere似乎有你需要的功能。 從他們的網站有些話:
「強大的基於GUI的錄音功能和無編程所需的用戶界面使測試人員能夠快速建立甚至複雜的測試案例」 ......
「視覺日誌報告:測試Anywhere的強大的可視化選項可在屏幕截圖中在運行時創建可視化日誌。「 (see here)
你也可以嘗試一些更簡單和便宜的東西,例如Jitbit Macro Recorder讓你回放錄製的宏(鍵盤和鼠標),然後使用宏中的Shift-PrintScreen鍵製作截圖。它也有一個宏腳本編輯器。
如果這是一個web應用程序,你可以使用Selenium。沒有爲Visual Studio的叫測試自動化FX類似的工具
Yoiu可以查看到現有Windows Automation API : UI Automation,MSDN文檔
運行時間要求
UI自動化支持以下的操作系統:Windows XP,Windows Server 2003,Windows Server 2003 R2,Windows Vista,Windows 7,Windows Server 2008和Windows Server 2008 R2。
從簡單的測試腳本到健壯的記錄和回放工具,客戶端應用程序可能需要訪問當前未實例化的元素,例如文件打開對話框或菜單項,因此在UI Automation樹中不存在。這些元素只能通過使用UI Automation屬性(如AutomationID,控件模式和事件偵聽器)來再現或「回放」特定的用戶界面(UI)操作序列來實例化。有關使用Microsoft UI Automation根據用戶與用戶界面(UI)交互生成測試腳本的示例,請參閱Test Script Generator Sample。
您可以在現有的Visual Studio項目中使用AutomationIdProperty。
實現UI自動化的測試應用程序
UI自動化DLL的必要的UI自動化客戶端在這裏列出。
UIAutomationClient.dll提供了訪問UI自動化客戶端API。
UIAutomationClientSideProvider.dll提供自動化的Win32控件的能力。請參閱標準控件的UI自動化支持。
UIAutomationTypes.dll提供訪問在UI自動化定義的特定類型。
該名稱空間包含了UI自動化客戶端需要使用UI自動處理功能以外的所有功能。
這個命名空間包含所有UI自動化客戶端需要使用的UI自動化文本處理能力。
自動化測試腳本查找代表的自動化樹中的利益控制UI自動化元素。
有多種方式獲得與代碼UI自動化元素。
使用Condition語句查詢UI。這通常是使用與語言無關的AutomationIdProperty的地方。 注意 AutomationIdProperty可以使用諸如UISpy.exe(UI Spy)之類的工具獲得,該工具能夠列出控件的UI自動化屬性。
使用TreeWalker類遍歷整個UI自動化樹或其子集。
賽道焦點。
使用控件的hWnd。
使用屏幕位置,例如鼠標光標的位置。
見Obtaining UI Automation Elements
控制模式暴露出常見行爲的功能類似的控制。
找到需要測試的控件後,自動測試腳本從這些UI自動化元素中獲取感興趣的控件模式。例如,用於典型按鈕功能的InvokePattern控件模式或用於窗口功能的WindowPattern控件模式。
請參閱UI自動化控制模式概述。
自動化測試腳本現在可以使用由UI自動化控制模式暴露的信息和功能的UI框架控制目標的任何UI。
相關的工具和技術
有許多的支持自動化測試與UI自動化相關的工具和技術。
UISpy.exe (UI Spy)是一個圖形用戶界面(GUI)應用程序,可用於收集供應商和客戶端開發和調試的UI自動化信息。 UI Spy包含在Windows軟件開發工具包(SDK)中。
UIAutoCmd是一個類似於UI Spy的命令行工具。
MSAABridge將UI自動化信息公開給Active Accessibility客戶端。將UI自動化橋接到Active Accessibility的主要目標是允許現有的Active Accessibility客戶端與任何已實現UI Automation的框架進行交互。 安全性
有關安全信息,請參閱UI自動化安全性概述。
我已經嘗試了很多,在我看來,真正脫穎而出的是Adobe (formerly Macromedia) Captivate。這是昂貴的(約800美元),但值得每一分錢。
創建教程等需要幾分鐘而不是幾個小時。
我會使用開源工具Sikuli。非常直接的腳本語言,或者您可以使用他們的類並編寫自己的Java代碼。
這裏是文檔抓取屏幕的一部分: http://sikuli.org/docx/screen.html#capturing
獎金是,這是支持Windows,Linux和Mac!
由於您擁有完整的源代碼並支持貴組織中的應用程序生命週期,因此我建議您在此特定方案中針對Microsoft UI自動化API。您需要記錄UI腳本,使用自定義自動化提供程序,能夠記錄和回放UI自動化,然後您可以添加自定義行爲,如截屏,因爲自動化API有3種方式來以編程方式評估UI:通過AutomationId屬性,使用屏幕點(鼠標點擊)和可視樹項目(UI遍歷)。 – 2011-01-31 11:13:01