- Windows Desktop (WPF, WinForms) Apps
- Windows Store or Universal Apps for Windows Phone
- Windows Phone Silverlight Apps
Another reason in support of Winium is that it is similar to Selenium and is open source tool. As we are familiar that Selenium holds the highest market share as compared to other automation tools available, thus using Winium is much simpler for automation testers who are already using Selenium.
Why We Need This?
There are many automation tools available in market for website automation or for mobile apps automation tool i.e. selenium with any browser like Chrome, Firefox etc. Selenium is for web applications and Appium is for Android/iOS applications. Though there are other types of application available as well like desktop apps. To cover automation of these types of apps we require Winium. So to inspect window based application elements we used Winium’s tool. Winium is implemented on protocol of JSONWire which is used by selenium.
Necessary Things for Automation
To perform the desktop application automation with Winium we need some basic tools which are mentioned as follow:
- WiniumDriver JAR
- Selenium-Server-Standalone JAR
- .exe file which needs to be automate
These libraries are must to start with automation of window based applications through Winium.
How It Works?
Winium works in much similar way as compared to Selenium. There are few additional changes required at testers end to configure and setup Winium. The main difference between Selenium and Winium is that selenium automatically creates its session on localhost with unique port but in Winium we have to create session manually through its exe file. Another difference in Selenium and Winium usage is that for desktop application automation through Winium, we have to run local server which support script i.e. Winium server, whereas this is not required while automating web applications through Selenium.
Once the session is created for Winium it means now automation is possible but without creating session manually cannot start automation. As shown in below figure session is created.
The first step is completed i.e. to create the session of Winium driver. Now session is created on port 9999. And all the automation will work on this behalf. If by any chance this session is destroyed or ends automation will stop and we have to start the session again to continue with the automation.
To automate windows application we use WiniumDriver. Also, there are other classes and interface available which we can use in automation like WiniumOptions; which is an interface in Winium library. The working of Winium is similar to Selenium and scripting is done in much similar way.
Role of Selenium in Winium
The role of Selenium is very important to perform automation through Winium. Without selenium Winium will not be able to work, as suggested by its name.
1. In automation of window application we need to use some classes and libraries of selenium. For example there is a class of Selenium i.e. by, in Winium we need to use this class as well for automation.
2. Winium uses most of the methods used by Selenium, thus any tester familiar with Selenium can easily pick on this tool as well.
3. Similar to Selenium, Winium also supports multiple testing frameworks like TestNG, JUnit, etc.
4. As Winium is Selenium based tool, it supports all the languages supported by Selenium like Java, C#, Ruby, Python, PHP, Perl, Objective C, Java script with node.js. All these languages can be used to through Selenium Webdriver API and the language specific client libraries in Winium.