An INFJ personality wielding brevity in speech and writing.
Winium – A Step-By-Step Guide
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
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?
Related Posts
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
A web-analytics nerd, speaker - here delving into (Big)-data.
A web-analytics nerd, speaker - here delving into (Big)-data.
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.
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.