WiPFlash, or How To Do Microsoft UI Automation

I’ve kicked off another open-source project, WiPFlash.

This is a little automation framework with a number of goals:

  • To let me learn how to do .NET UI Automation
  • To fix a couple of things that White doesn’t do yet
  • To automate scenarios as fast as possible
  • To provide examples that anyone else can look at, if you want to do the same thing.

The project is written in C#, and is exclusively focused on WPF Windows GUIs. Currently WiPFlash can:

  • Launch or reuse an existing application or window
  • Enter text in TextBox, RichTextBox, and editable ComboBox
  • Select values and retrieve selection in ListBox or ComboBox
  • Retrieve values from RichTextBox (and its children), TextBox, TextBlock, editable ComboBox
  • Click buttons.

It also provides an example of a Prism application, complete with MVVM paradigm, command binding, dependency injection using Unity, etc.

Please feel free to try it out and add any requests and/or issues, bearing in mind that the purpose of the framework is not to replace White. For instance, I have no plans at this time to support drag-and-drop or mouse and keyboard input, nor am I going to respond to bugs with WiPFlash not working on WinForms, SWT, etc.

If you’re looking for something similar for Java and Swing, check out my other automation framework, Tyburn.

This entry was posted in csharp, open source. Bookmark the permalink.

3 Responses to WiPFlash, or How To Do Microsoft UI Automation

  1. ollie riches says:

    FYI – if you didn’t know the MS composite WPF framework – ‘Prism’ has some example applications that use the White framework for UI automation testing.


  2. Andrea says:

    I was just about to have a look at white and I bumped into your post, I wonder what are the things White doesnt do yet,

    • liz says:

      Hi Andrea. When I tried it, editable combo boxes provided an API, but didn’t quite work. I looked and found a backlog of bugs dating back some months. I’ve also found that White doesn’t provide the extensibility I wanted, and is sometimes hard to predict. For this reason, WiPFlash always finds elements by automation id, unless you explicitly specify otherwise, and you can specify your own mechanisms for finding elements.

      White also doesn’t provide the examples which I was looking for to show how to use it.

      It’s a damn good product, given how long it’s been around and how much it does. There’s room for a smaller, more focused library, I think.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s