flash automation

How to Use Selenium to Automate Flash and AngularJS Based UI

Overview

At HurixDigital, we wanted to automate the Flash testing process for a client. Flash is outdated technology and requires a lot of manual effort to run each testing cycle. To do away with this laborious task, we decided to automate the Flash testing process.

Migrating all the applications from Flash to HTML platform is time-consuming. We conducted automated testing for flash-based applications to free up some resources for other tasks. However, automating Flash testing proved more challenging than we anticipated, as the tool required for automation – Selenium does not automate Flash-based applications. Our team of experts found a solution to this problem and successfully automated the testing process of Flash-based UI.

Business Requirement

Automate the Flash-based UI testing process for Kitaboo using Selenium

Challenges

Selenium has certain limitations. The main prerequisite for Selenium is that the website must be in HTML format. It does not detect Flash-based objects. But, the Kitaboo eBook creation platform was completely supported by Flash. This made it impossible to use this tool for Flash automation on Kitaboo. Moreover, Selenium does not support AngularJS, whereas the framework of Kitaboo Reader was made up of HTML and AngularJS.

  • Selenium does not detect/access Flash-based objects
  • Selenium does not support AngularJS

Hurix Solution and Approach

When the Hurix team initiated the Flash automation process for the flagship product Kitaboo, we faced certain challenges that hindered the automation process. In order to efficiently automate the testing process, we used Selenium — a well-known testing framework for web applications. The team wanted to use Selenium to execute the scripts for automated testing in a Flash environment. But, Selenium, unfortunately, does not support Flash, and the platform that was used for testing was entirely supported by Flash. To overcome this limitation, we used Sikuli and integrated it with Selenium.

Advantages of Sikuli over other tools used for Flash automation are:

  • Open source tool.
  • One of the biggest advantages of Sikuli is that it can easily automate Flash objects.
  • It makes it easy to automate windows application.
  • When you’re testing an application under development and you don’t know the ID/name of the elements, then you can go with Sikuli. It will check the appearance of the image and if a match is found, it will interact with the image accordingly.

Another major challenge that Selenium presented was that it did not support AngularJS. But we worked around the codes, rewrote the methods and classes and enabled Selenium to support AngularJS.

We put in place a debug process to identify errors and eliminate them. We captured error screenshots and merged them with error log descriptions into one spreadsheet, keeping all the error files at one place for easy access. In order to further enhance the debugging process, the team of coders also started recording the script execution process to identify the exact reason for the errors. This process gave us a better understanding of user activities and enabled us to be prepared with immediate solutions for similar instances in the future.

  • Used Sikuli (an open source automation tool) and integrated it with Selenium. Sikuli acted as a medium which helped Selenium to perform automated Flash testing.
  • A dedicated team of experts modified the scripts and created new ones and automated the AngularJS-based reader with Selenium.
  • Ensured that there’s an efficient debug process in place to detect and remove existing and potential errors.
  • Enabled coders to access the error files at one place and helped improve the error reporting process.
  • Recorded the script execution process to ascertain the exact reason for the errors, helping them to better understand the user activities and be prepared to address similar issues in future.

Key Benefits

  • Automated the AngularJS-based reader in-house. This was accomplished without the use of any external tools such as Cucumber, Protractor etc.
  • As Sikuli, a free tool was used to support the automation process, we could complete the automation at a low cost.
  • Minimized the manual efforts which were earlier required to execute the testing process.
  • Adherence to testing standards significantly increased the quality of the product and ensured that bug-free products are delivered to the clients.

We successfully automated Flash and AngularJS with the help of the in-house testing team, in a cost-effective and efficient manner. Automating the testing process helped reduce the manual efforts which were earlier required to test the applications. Also, as we used an open source tool for automation, we were able to complete the project at a low cost. With an effective debug process in place, the team was able to improve the quality of error reports and thereby deliver high-quality bug-free products. This entire process demonstrates HurixDigital’s ability to meet challenges and resolve them with their expertise and eventually deliver a product that meets client expectations.

Also read: How to Convert your Content from Flash to HTML5?

About the Author:

Aditya Ramji is a B.E. holder from RGTU. He has been working in the field of software testing for the past 7 years. He’s currently working for Hurix Systems as a Test Team Lead for client solutions. Aditya’s job role includes establishing a good understanding of the business of a client for effective service provision, providing clients with robust and well-designed applications, resolving client queries and issues along with creating test scripts with quality to act as a shield for regression bugs. When he’s not on the job, he loves to go hiking with friends, travelling to new places, and learning about the latest in technology.

You can connect with Aditya Ramji on LinkedIn