Difference and relationship between WASP and UI Automation?

Oct 5, 2013 at 3:08 PM
Edited Oct 5, 2013 at 3:09 PM
What's the difference and relationship between WASP
and UI Automation?
Oct 5, 2013 at 11:56 PM
UIAutomation is based on Microsoft UI Automation (.NET 3.0+) and Win32 API, WASP is based on Win32 API.
Consequently, WASP does not support controls without handles (grid cells, for example). The UIAutomation module can work in Win32 mode (the -Win32 parameter).

The UIA module is a framework for software testing, it has such features out of the box as:
  • automatic generation of test results ([UIAutomation.Preferences]::EveryCmdletAsTestResult)
  • saving of screenshots automatically and on demand
  • code generation with UIAutomationSpy
  • support for context menus
  • all controls Microsoft UI Automation v.1 supports (i.e., Java SWT and several others that don't have handles)
  • readability of the code (Get-UIAButton is more readable than Select-Control). Get-Help button provides you with the list of appropriate cmdlets.
WASP is mostly for 'small automation', the case when you need to run some GUI-related code in your script that is not for GUI automation. Initially, I used WASP for software testing, however I moved to UIAutomation when I needed to automate grid and other controls without handles.

You can also try white, watin, free Telerik framework. The biggest difference is that they are library-based, not cmdlet-based frameworks.
Oct 6, 2013 at 5:32 AM
Thank you for your detail.