Can Selenium Webdriver be used to automate Desktop Applications?

Posted by

Selenium is known to automate web-based applications. But Can Selenium Web driver be used to automate Desktop Applications? 

Before we move ahead with this topic, let us do a recap and understand what Automation Testing really is.

Test Automation or Automation Testing is a software technique to test the functionality against the requirements using a tool by executing the tests/test scripts.

Following are the aspects that can be achieved through automation testing:

  • Higher Productive Rates
  • Efficient
  • Quality Product
  • Execution Time

Let’s try to explore if Selenium web driver, which is widely used and an open-source tool, can be used to automate desktop applications and to perform specific tasks.

What is Desktop Application?

Firstly, what is ‘Desktop Application’?

Desktop application (also known as Standalone application or Client-Server application) is an application which runs on desktop’s or laptop’s computer.

The desktop application interacts with the remote server. The server-side software is also known to be a thick client.

The desktop applications use computer resources such as hard disk and memory to run the program.

Some of the examples for desktop applications are Calculator, Windows Explorer, Gtalk, etc.

Below is the client-server architecture.

Client-Server architecture is simply, a network of computers where many clients request and receive services and resources from a centralized server.

The client and the server communicate over a network. A client-server application is a software which runs on the client computer which makes a request to a remote server.

Example: WhatsApp, Gtalk.

Both WhatsApp and Gtalk are client-server applications, wherein messages are first sent to the respective server and delivered to the recipient.

Testing Desktop Application using Selenium

The question most of us have is…

“…Can we use Selenium for automating desktop applications?”

The answer to the above question is definitely, ‘NO’.

Yes, that’s right. We cannot automate desktop/client-server applications using Selenium.

Wondering why? That’s our next topic!

Why you CANNOT automate Desktop Applications using Selenium?

This is totally because Selenium cannot recognize the objects or the web elements on the desktop application.

Now the next question that arises is…

“Whether there any tools in the market which support automating desktop applications/client-server applications?”

Yes, there are few tools which support the automation of desktop applications.

Following is an insight into tools that are available in the market:

Winium       

Winium is a free open source tool which is based on selenium. It is a tool which is built on Selenium to interact with desktop applications.

As the name goes Winium, it is Windows-based Selenium(Win+Selenium).

inspect.exe or UISpy is used to identify the objects in the desktop applications. 

If you are aware of how selenium works for web applications it’s easy to use Winium as most of the functionalities are common.

Why Winium?

As we have used Selenium for a web-based application, it’s easy to relate and apply.

It’s an open-source tool.

It supports languages like Java, Python, Ruby and so on.

You can use any testing frameworks like TestNg, Junit, Pyunit, Nunit.

AutoIT    

AutoIT is a scripting language that helps us to automate desktop applications.

It uses scripting language and stimulates the keystrokes. Mouse movements coordinate of the window screen to automate the tasks in a much simpler way which is not possible with any other languages.

AutoIT is an open-source tool. If you try to recollect, most of us who have used Selenium to automate web-based application has used AutoIT to upload files, handling alert boxes and so on.

Why AutoIt?

  • It’s an open-source tool
  • It uses simple scripting language which is easy to understand and learn.

You can check out more about AutoIt here in the link https://www.autoitscript.com/site/

WinAppdriver

WinAppdriver is a free tool but not open source (which means ‘source code is not available to anyone to inspect, modify or enhance).

It is a tool developed by Microsoft in collaboration with Appium team. It supports all Windows 10 application, both home and Pro and Windows Server 2016.

Windows Application Driver act in accordance to the JSON Wire Protocol standard.

It also uses some application management functionalities defined by Appium.

WinAppdriver can run as a standalone application or it can be used as a plugin for Appium.

As webdriver, WinAppdriver supports multiple languages like Ruby, Java, Python, C# and so on.

Why WinAppdriver?

  • It’s free
  • It uses webdriver protocol. If your familiar using web driver then working with WinAppdriver is easy and quick.

You can download and install the WinAppdriver from the following link  https://github.com/Microsoft/WinAppDriver/releases

Sikuli

Sikuli is an open-source tool. It can be integrated with Selenium Webdriver along with Sikuli Jar file.

It uses a visual image match to automate graphical user interface. It uses Image recognition technique to interact with the web elements.

It considers all the elements as an image and uses these images to recognize the elements.

Sikuli is also used to automate flash objects.

Why Sikuli?

  • It’s an open-source tool.
  • It is easy to automate windows application as it uses image recognition.
  • It is used to automate flash objects.

You can download Sikuli from the following location, https://launchpad.net/sikuli/+download

TestComplete

TestComplete is a licensed based tool developed by SmartBear.

It is a functional automation testing tool which helps to automate windows based, web-based, Android and iOS applications.

It supports a wide range of technologies which includes Windows, .NET, WPF, C++, Visual Basic, Delphi, Java. It supports back-end testing like Database testing.

 You can create your tests either manually or through recording.

One can develop tests using scripting languages such as JavaScript, Delphi script, VBScript, Python.

The tool has an option to integrate with bug tracking software like Jira, Bugzilla.

Why TestComplete?

  • It supports back-end testing like Database testing
  • It has record and playback option.
  • Integration to bug tracking software.
  • It has a feature to capture screenshot during test execution.

Test complete being a licensed tool, you can only download the trial version of it from https://smartbear.com/product/testcomplete/free-trial/ which is valid for 14 days.

Conclusion

To summarize everything, it is understood that Selenium web driver cannot be used to automate desktop applications.

But there are tools in the market which support automating desktop applications/client-server applications.

Some of these tools are widely used and can be free, or licensed as well.

Based on your project needs and requirements you should analyze, evaluate and choose the best tool to automate your desktop applications.

About Techcanvass

Techcanvass offers IT certification courses for professionals. We are an IIBA endorsed education provider (EEP), iSQI ATP (for Certified Agile Business Analyst Training) as well as Agile Testing alliance partner for CP-SAT certification training in Selenium.

We have a Business analyst training course with domain training in-built into it. This training program offers you the opportunity to get certified with ECBA certification as well as have banking domain understanding.

Selenium Certification Training