Keerthika
Lead Marketing Strategist

An INFJ personality wielding brevity in speech and writing.

Reading Time : 0 Mins

Winium – A Step-By-Step Guide

Keerthika
Lead Marketing Strategist

An INFJ personality wielding brevity in speech and writing.

In today’s technology trend, every software application we use is made available either as a web application or mobile app. But there are lots of desktop applications still in use in large enterprises. To test these windows based applications we still largely rely on commercial tools like TestComplete, HP Unified Functional Tester, Coded UI, etc. With the rise in open source testing tools, we have seen tools like AutoIT, Sikuli coming up.

In this article, we would like to talk about a lesser-known open source testing tool for windows automation – Winium

Winium is an automation framework for windows platform. It is a free and open source tool based on Selenium.

Selenium, the widely used open source tool for the web application, provides support for Mobile Applications using Appium. Earlier for Window Application automation, we had used some external tools like Sikuli, AutoIT etc. Now we have Winium to go with the Selenium bag.

Winium Supported Platforms:

  • Windows Desktop (WPF, WinForms) Apps,
  • Windows Store or Universal Apps for Windows Phone,
  • Windows Phone Silverlight Apps

Winium Supported Languages:

  • Java
  • Objective-C
  • JavaScript with Node.js
  • PHP
  • Python
  • Ruby
  • C#
  • Clojure, or Perl with the Selenium WebDriver API

Winium Test Framework:

  • JUnit
  • TestNG
  • PyUnit
  • NUnit

Working with Winium is pretty simple and easy if you already have experience with Selenium. In Selenium, for the web application, we use FireBug or FirePath to identify the element locators. Similarly, in Winium we can UISpy.exe or Inspect.exe (available by default in windows) to identify the element locators in Windows application.

Prerequisites to work with Winium:

  • Microsoft .NET Framework
  • Download Latest Eclipse
  • Create Maven Project
  • Download UISpy

Software Applications Development

Steps To Do:

Step 1: Add below dependency in pom.xml

    com.github.2gis.winium

    winium-webdriver

    0.1.0-1

You can also download the dependency from below link:

https://mvnrepository.com/artifact/com.github.2gis.winium/winium-webdriver

Step 2: Download Winium.Desktop.Driver.exe.

https://github.com/2gis/Winium.Desktop/releases

Step 3: Once downloaded, launch the driver, it will open by default with port 9999 which acts as a server.

Internally this server will communicate through JSON Wireless Protocol

Step 4: Add TestNG dependency to run an application

org.testng

testng

6.14.3

test

Step 5: Create a sample Java Project and a class and use the below code to automate calculator

package com.winium.demo;

import java.net.MalformedURLException;

import java.net.URL;

import org.openqa.selenium.By;

import org.openqa.selenium.winium.DesktopOptions;

import org.openqa.selenium.winium.WiniumDriver;

public class Calculator {

public static void main(String[] args) throws MalformedURLException, InterruptedException {

DesktopOptions option = new DesktopOptions();

option.setApplicationPath(“C:\Windows\System32\calc.exe”);

WiniumDriver driver = new WiniumDriver(new URL(“https://localhost:9999”), option);

Thread.sleep(5000);

driver.findElement(By.name(“One”)).click();

driver.findElement(By.name(“Plus”)).click();

driver.findElement(By.name(“Two”)).click();

driver.findElement(By.name(“Equals”)).click();

String output = diver.findElement(By.id(“CalculatorResults”)).getAttribute(“Name”);

System.out.println(“Result after addition is: “+output);

driver.quit();

}}

Winium seems to be quite promising for windows application automation. Even though it is in a nascent stage if the application test supports different platforms like web, mobile (ios, android, windows), windows desktop then Selenium + Appium + Winium will be a winning combination.

What do you think?

Leave A Comment

Related Posts

Content Writer

Kavya Ravichandran is a skilled content writer with a flair for crafting narratives that educate and engage. Driven by a love for words and an innate curiosity, she explores various topics in the digital space, focusing on application development and modernization, UI/UX design, and emerging technologies like DevOps, AI, and more. She is adept at tailoring her narratives to suit different audiences and platforms, ensuring her work is both relevant and insightful.

Lead - Business Analyst

Pavithra Anandan is a solution driven IT specialist with over 12 years of experience, including 7 years in manual and automation testing and 5 years as a Business Analyst. She excels in understanding customer business needs and translating them into actionable requirements. Proficient in Agile methodology, she is adept at requirements gathering, epic and user story development, backlog management, and fostering collaboration with cross-functional teams. Her consulting experience spans various industries, including Postal, E-commerce, Automotive, and Airline sectors. Currently, as a Product Owner at Zuci, she focuses on advancing postal logistics by enhancing operational efficiency and driving customer satisfaction through innovative delivery solutions

Content Writer

Minna is a content developer specializing in software testing and Robotic Process Automation (RPA). She enjoys exploring the intricacies of cutting-edge software and knits comprehensible content that resonates with the audience. PS, she is a book lover.

Content Writer

Kavya Ravichandran is a skilled content writer with a flair for crafting narratives that educate and engage. Driven by a love for words and an innate curiosity, she explores various topics in the digital space, focusing on application development and modernization, UI/UX design, and emerging technologies like DevOps, AI, and more. She is adept at tailoring her narratives to suit different audiences and platforms, ensuring her work is both relevant and insightful.

Senior Manager - Cloud & Infrastructure

An experienced and adaptable IT leader, Gopalakrishna Raju boasts over 18.5 years of expertise in service delivery management, project management, and database administration. A strong advocate for continuous service improvement and automation, he strives to bring productivity and cost benefits for clients. Certified in Oracle, AWS, and Microsoft Azure, he has received numerous accolades, including the Top Achiever FY23 Spot Award at Zensar and multiple awards at Wipro. When not busy setting up operational models, and delivering successful outcomes, he enjoys playing badminton and cricket.

Delivery Manager - Business Intelligence & Analytics

Simran is a professional with over 18 years of diversified experience in business intelligence and data analytics, strategy planning, key account management and new product development. She has worked in the technology industry, consumer goods industry, retail and market research.

Lead - Business Analyst

Gayathri Krishnan is a seasoned IT professional with over 15 years of experience, spanning 4 years in manual testing and 9+ years as a business analyst in the General Insurance and Logistics sectors. With more than 2 years as a delivery lead, she has a proven ability to manage end-to-end project lifecycles and transform business requirements into effective solutions. Her expertise covers multiple lines of business within general insurance, including Motor, Health, Personal Accident, Fire, Marine, Engineering, and Rural insurance. Skilled in Agile methodologies, Gayathri excels in requirements gathering, backlog management, client engagement, and leading cross-functional teams. As a Product Owner at Zuci, Gayathri specializes in aligning business and technical requirements to enhance operational efficiency in postal logistics services.

Senior Business Analyst

Sona Jayakumar is a Senior Business Analyst with three years of experience in the ESG (Environmental, Social, and Governance) and Healthcare sectors. She specializes in digital transformation and process optimization, focusing on aligning business strategies with innovative solutions. Her expertise in stakeholder management and cross-functional collaboration has consistently delivered impactful results and improved operational efficiency.

Content Writer

Minna is a content developer specializing in software testing and Robotic Process Automation (RPA). She enjoys exploring the intricacies of cutting-edge software and knits comprehensible content that resonates with the audience. PS, she is a book lover.

Content Writer

Minna is a content developer specializing in software testing and Robotic Process Automation (RPA). She enjoys exploring the intricacies of cutting-edge software and knits comprehensible content that resonates with the audience. PS, she is a book lover.

Lead Business Analyst

Rama Jayaraman is a Certified Public Accountant (USA), CA (Intermediate) and Commerce graduate. She is certified in Professional Scrum Master I and has working knowledge of multiple tools like Tableau, Power BI, Smartsheet, Azure Devops and multiple other Microsoft tools. She is a Seasoned Professional with 8+ years of experience with a proven track record in Project Management and Risk Management through a solution-oriented approach. She has managed and lead key projects in the areas of Automation, Analytics, Auditing, Financial Reporting and Internal Control. She has worked for companies like KPMG, Maersk and Standard Chartered Bank. Currently supporting The Officer of Inspector General (The Global Fund) as part of the Zuci family. She is a trained singer who has participated and won competitions. During her spare time, she has also volunteered as a coach and conducted swimming classes for the underprivileged and visually challenged.

Senior Marketing Executive

Ameena Siddiqa is a seasoned marketer with hands-on experience in curating captivating content on the latest cloud, devops and enterprise technology trends. With a keen eye for emerging trends and a passion for storytelling, she has a knack for transforming complex concepts into engaging narratives that resonate with audiences across industries.

Lead Marketing Strategist

A web-analytics nerd, speaker - here delving into (Big)-data.

Lead Marketing Strategist

A web-analytics nerd, speaker - here delving into (Big)-data.

Content Writer

Minna is a content developer specializing in software testing and Robotic Process Automation (RPA). She enjoys exploring the intricacies of cutting-edge software and knits comprehensible content that resonates with the audience. PS, she is a book lover.

Lead Business Analyst

Rajalakshmi Sivaramakrishnan is a Lead Business Analyst with 17 years of experience in various fields, including Business Analysis, Identity Access Management, Requirement Engineering, and Business Intelligence. She excels in automating processes, aligning business and technology, and has domain expertise in retail banking and capital markets.