How to do flash Testing using Selenium WebDriver? Example 1

Please read before this

How to do flash Testing using Selenium WebDriver?

After reading above you know that there is one class which is having capability to automate flash app.

So now we should know following things before start implementation of our example.

1. we can’t access flash objects using Xpath using firebug.

Flash can't access by xpath using firebug

 

 

 

 

 

 

 

 

 

2. To perform action developer should assign appropriate object ID.

Firefox firebug - Get Object ID for permadi - flashjscommand app

 

 

 

 

 

 

 

 

 

 

3. Developer should expose all flash functions which are used to test flash application.

Sample Flash APP
Play Button
Flash method being used: Play()
Stop Button
Flash method being used: StopPlay()
Rewind Button
Flash method being used: Rewind()
NextFrame Button
Flash method being used: TGetProperty(nameOfTargetMovieClip, propertyIndex) and GotoFrame(frameNum)
Zoomin Button & Zoomout Button
Flash method being used: Zoom(relative percentage)
Send Data
Flash method being used: SetVariable(variableName, variableValue)
Receive Data
Flash method being used: GetVariable(variableName)

 

4.  how to communicate between Adobe Flash objects and Javascript ?

We have one class which is helpful to call functions of flash by making run-time JavaScript functions – Check out LINK

FlashObjectWebDriver class and constructor mapping with object ID

How call functions works in FlashObjectWebDriver

 

 

 

 

 

 

 

 

 

5. Make one new class named FlashObjectWebDriver.java

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
public class FlashObjectWebDriver {
 private final WebDriver webDriver;
 private final String flashObjectId;

public FlashObjectWebDriver(final WebDriver webDriver, final String flashObjectId) {
 this.webDriver = webDriver;
 this.flashObjectId = flashObjectId;
 }

public String callFlashObject(final String functionName, final String... args) {
 final Object result =
 ((JavascriptExecutor)webDriver).executeScript(
 makeJsFunction(functionName, args),
 new Object[0]);

return result != null ? result.toString() : null;
 }

private String makeJsFunction(final String functionName, final String... args) {
 final StringBuffer functionArgs = new StringBuffer();

if (args.length > 0) {
 for (int i = 0; i < args.length; i++) {
 if (i > 0) {
 functionArgs.append(",");
 }
 functionArgs.append(String.format("'%1$s'", args[i]));
 }
 }
 return String.format(
 "return document.%1$s.%2$s(%3$s);",
 flashObjectId,
 functionName,
 functionArgs);
 }

}

6. Now make new class to test our example

import org.openqa.selenium.firefox.FirefoxDriver;

public class permadi_INTERACTION_WITH_JAVASCRIPT {

 public static void main(String[] args) throws InterruptedException {
 FirefoxDriver driver = new FirefoxDriver();

 driver.get("http://www.permadi.com/tutorial/flashjscommand/");
 driver.manage().window().maximize();
 FlashObjectWebDriver flashApp = new FlashObjectWebDriver(driver, "myFlashMovie");
 flashApp.callFlashObject("Play"); // first number
 Thread.sleep(3000L);
 flashApp.callFlashObject("StopPlay"); // operation

Thread.sleep(3000L);
 flashApp.callFlashObject("Rewind");
 System.out.println(flashApp.callFlashObject("GetVariable","/:message"));
 flashApp.callFlashObject("SetVariable","/:message","Learn Flash testing with Webdriver");
 System.out.println(flashApp.callFlashObject("GetVariable","/:message"));

 }

}

8. Observe test execution on browser

Please download code from

Link1

Link2

Advertisements
Pupunzi

For a better web

Tech

News and reviews from the world of gadgets, gear, apps and the web

VentureBeat

News About Tech, Money and Innovation

Digital Inspiration

Tips and tutorials around all things tech.

Thinkwareglobal's Blog

Just another WordPress.com weblog

Kenazari's Blog

Just another WordPress.com weblog

Richfowler1's Blog

Just another WordPress.com weblog

Romaicus's Blog

Just another WordPress.com weblog

botlaguduri

Just another WordPress.com site

chandanag89

Just another WordPress.com site

meghshetty

Just another WordPress.com site

digitalmediaexpert

digital media expert blog

Thinking in Silverlight

Silverlight/WPF/Windows 8 Store App

Different Journeys

Let's make life easier!

LAW RESOURCE INDIA

LEGAL RESOURCE CENTRE / COURT JUDGMENTS / LEGAL ARCHIVES

BookConnect

Promoting Indian language Books

Actively Lazy

Software, crafted with passion

SAPonPower

An ongoing discussion about SAP infrastructure

SAP Career

Your Career Mentor

hrsapcertification

Just another WordPress.com site

The secret product manager

Thoughts about product management, SUSE, Linux, ARM processors, Cloud, AIX, Power Systems, and other things that interest me

Sap Certification Material . Com

Quality store for sap software and courses

Simon Les Flex's Blog

SAP Process Integration Specialist - NOW WE CAN DO BETTER!

Oracle Technologies Primer

An Oracle Fusion Middleware and iPaaS blog!

Gilberto Holms

Java, Middleware, SOA Architecture Blog

The Skeleton

Java code skeletons, tips and pointers

J@n van Zoggel

integration, innovation & random technology stuff

The Pragmatic Integrator

Hints and tips from a pragmatic integration specialist

briskwalk

The pace of life..

Optimalbg's Blog

Just another WordPress.com site

IT Jobs in USA

Keep the track of this Blog if you are looking out for some good Opportunities to work in USA....

Referral Jobs | Right Place to Get a Job

Hurry you are one Click away to get a job - Fresher Jobs for 2012, 2013 fresher’s and also high paid jobs for well Experienced IT professionals on Referal jobs.

eccinternational.wordpress.com/

ISO Consulting | ISO 27001 | ISO 20000 | CMMI | BCM | GRI Sustainability Reporting & Assurance | eLearning | Trainings | Philippines

Michael Korn's Blog

Musings on Life, Career, Faith and Technology

WORKINGWITHQTP

Just another WordPress.com weblog

Topics

.Net Core, AspNetCore, Entity Framework, Entity Framework Core, AspNetIdentity, AspNetIdentityCore, Unit Test, WCF, Workflows

SQA and Testers Blog

Just another WordPress.com weblog

Expertqtp's Weblog

Just another WordPress.com weblog

Sai Chamarthi

Experienced Testing Professional

saxenavinay

A great WordPress.com site

Suresh4qtp's Blog

Just another WordPress.com site

jonah95hill

This WordPress.com site is the cat’s pajamas

It's always something...

Just another WordPress.com weblog

Faculty of Information Technology - Lê Ngọc Tiến

Be Yourself! Simplify Our Goals! Nothing is Impossible!

Anti-Malware Testing

Thoughts on security product testing past and present

Methods & Tools

Practical knowledge for the software developer, tester and project manager