DEPRECATED - no longer actively maintained
The White project lacks maintainers and community activity. As last maintainer, I tried to bring back some life to White but quickly ended up tripping over issues with the old architecture of this project which prevented implementing some features I wanted (eg. UIA3 support).
For that reason, a new project called FlaUI was born. FlaUI is a complete rewrite from scratch that supports UIA2 (Managed) and UIA3 (Interop), is easily extensible, supports .NET Core and .NET Standard and allows accessing all UIA features up to the latest Windows SDK.
FlaUI is now mature enough to be the successor of White and is already widely used. There is also an adapter available that allows re-using some of the syntax of White but execute it in FlaUI (feel free to help improving it).
Thanks for all the creators and maintainers of White for this great project but now it is time to head over to FlaUI. Feel free to raise questions, problems, improvement ideas in gitter or in FlaUIs issues.
I hope to see you there.
White is a framework for automating rich client applications based on Win32, WinForms, WPF, Silverlight and SWT (Java) platforms. It is .NET based and does not require the use of any proprietary scripting languages. Tests/automation programs using White can be written with whatever .NET language, IDE and tools you are already using. White provides a consistent object-oriented API, hiding the complexity of Microsoft's UIAutomation library (on which White is based) and windows messages.
Project white has been inactive for some time, but still has many users and is a great UI automation framework.
TestStack has brought this project into it's offering to try and breathe some life into Project White.
White needs contributors to keep improving. There is plenty to do:
- Write documentation. Currently on docs.teststack.net but will likley be migrated to the GitHub wiki, the wiki is publically editable so jump in, migrate a page or improve an existing one.
- Look into any of the open issues, submit a pull request or suggest a fix which could help the issue be closed
- Pick up a failing test on the https://github.com/TestStack/White/tree/UIAComWrapper branch.
- Add a new test
Install TestStack.White from NuGet
PM> Install-Package TestStack.White
Now download one or more of these tools. Each of these has their own strengths and weaknesses and generally using more than one to view the automation properties will be required.
- Inspect - This is part of the Windows SDK and is a good tool in general for looking at automation properties.
- UI Automation Verify - Also part of the Windows SDK another good general tool for looking at automation properties. There's a fork of original UIAVerify that allows usage of custom patterns and custom properties. For an example how to add your own custom pattern or property to your application, look at this project.
- Snoop - Only works with WPF applications and is really good at it. Offers much more functionality than just viewing the automation properties.
- Spy++ - This is included in visual studio under the tools menu option. This is good for working with Winforms, Win32 and VB6 applications because it allows you to view the applications window messages and automation properties.
See the sample apps here for examples of using White in both WinForms and WPF.
Whites UI Tests
Contributions to White's documentation is welcome
Contributing to White
Pull Requests for White are welcome, please include either Unit or UI Tests covering your changes if possible.
Setting up Git
Contributing to a TestStack Project
If possible, please add a failing test to TestStack.White.UITests when you report an issue, this will allow me to fix it, and ensure there is no regression later.
Also include the following information:
- Operating System
- Target Framework (WPF, Winforms etc)
- Optionally but preferred, a failing test or a repro solution.
Thanks to Thoughtworks and specifically Vivek Singh for starting this project. We have got permission from Vivek to continue this project.