SlideShare a Scribd company logo
Efficient Automated Test
Creation With Selenium IDE
           Plugins

  Selenium Conference 2011
        San Francisco
         4th April 2011
Samit Badle

           @samitbadle

http://blog.reallysimplethoughts.com
Goals

• Give you a taste of creating a Selenium
  IDE plugin
• Make you aware of the code in various
  files by completing the TODOs in the
  exercises
• Introduce you to ideas for efficiently
  creating tests or test data
Agenda

• Brief introduction
• Create a Selenium IDE plugin with
  – Menu and Toolbar buttons
  – Selenium IDE Plugin API
  – Preferences
  – Command Builder
• Ideas to efficiently create tests
Getting Ready

• Install the latest version of Firefox
  – Either Firefox 3.6.16 or Firefox 4.0
• Install 7-Zip or your favorite zip tool
• Download the WorkshopFiles.zip
  – http://links.reallysimplethoughts.com/files/Wor
    kshopFiles.zip
Using WorkshopFiles.zip

• Extract WorkshopFiles.zip
• Install the special version of Selenium IDE
  (selenium-ide-multi-workshop.xpi) included
  in it
• The HandsOn folder contains the
  exercises
• The Solutions folder contains the
  completed versions and pre-built plugins
What are Selenium IDE Plugins?




           Demos!
Where to find them?

• Selenium download page
  http://seleniumhq.org/download/


• Firefox add-ons page
  https://addons.mozilla.org/en-US/firefox/


• Other places on the Internet
  Google ☺
http://seleniumhq.org/download/
https://addons.mozilla.org/
Efficient Automated Test Creation?


         “Automated Tests are Cool!”

 “Automating Generation of Automated Tests is
                Even Cooler.”

                 “But How?”
“Be Efficient” Selenium IDE Plugin


                Here’s How!

• Add “Write My Test” to the context menu
• When I click on it, write my test for me
“Be Efficient” Selenium IDE Plugin


               The Benefits

• Capture test data or test commands
  directly
• Direct access to the web page
• Reuse code from Selenium IDE and
  Selenium
Demo!
Be Efficient In Action
•   Open Selenium IDE
•   In Firefox, open www.bing.com
•   Type selenium in search box
•   Hit the enter key
•   Right click on the results web page
•   Select Write My Test!
•   Check the generated test case
•   Execute the test case (maybe with
    highlight elements plugin)
Be Efficient In Action
Be Efficient In Action
Be Efficient In Action
Be Efficient In Action
Be Efficient In Action
Be Efficient Code

      Main code


      Installation / registration code



      User interface



      User interface styling


      Preferences defaults

      Files required for a Firefox add-on
Simple Firefox Add-on
Simple Firefox Add-on

• XPI (zippy)
• Install Manifest (install.rdf)
• Chrome Manifest (chrome.manifest)
• Overlay containing a menu and toolbar
  button
• Style-sheet for the toolbar button
• Icon for the toolbar button
Simple Firefox Addon
Your Turn

• Explore the files in the first exercise
  HandsOn/selenium-ide_be-efficient_ex1
• Complete the TODO in the following files
  – Install Manifest (install.rdf)
  – Chrome Manifest (chrome.manifest)
  – Overlay (ovIDE.xul)
  – Style sheet (beefficient.css)
Package and Install

•   Create a zip of all files in src folder
•   Change the file extension from .zip to .xpi
•   Open this xpi file in Firefox
•   Click on install button
•   Restart to complete
Result
Result

• New menu item in the Options menu in
  Selenium IDE
• A new toolbar button on the right side
• Clicking on the menu item or toolbar item
  results in a simple alert message
Selenium IDE Plugin API
Plugin API Functions

•   addPlugin
•   addPluginProvidedIdeExtension
•   addPluginProvidedFormatter
•   addPluginProvidedUserExtension
Using the Plugin API

• Code to register plugin with Selenium IDE
• Load the real plugin code as an IDE
  extension
• Lots of boilerplate code
Using My pluginframework.js

Lots of boilerplate code hidden away in
  pluginframework.js and reduces the
        required code to two lines.
Plugin API
Your Turn

• Explore the files in the second exercise
  HandsOn/selenium-ide_be-efficient_ex2
• Complete the TODO in the following files
  – Chrome Manifest (chrome.manifest)
  – Setup overlay (setup.xul)
  – Setup code (setup.js)
  – Overlay (ovIDE.xul)
  – Real plugin code (BeEfficient.js)
Result

• Be Efficient Plugin now shows up in
  Plugins tab of the Selenium IDE options
  dialog
• The plugin code in BeEfficient and
  ovIDE.xul can now change the enabled
  state from the UI
Result
Preferences
Preferences

• Lot of support is built into Firefox
• Involves mostly boilerplate code
Preferences
• Create defaults for the preferences
• Create dialog to allow user to change preference
• Create an observer to receive notification of
  changes

• And one of the following (or both):
  – Define options in Install manifest
  – Create UI (usually menu) to show Options dialog
Preferences
Your Turn

• Explore the files in the third exercise
  HandsOn/selenium-ide_be-efficient_ex3
• Complete the TODO in the following files
  – Preference defaults (defaults.js)
  – Options dialog (options.xul)
  – Plugin code (BeEfficient.js)
  – Install Manifest (install.rdf)
Result

• Be Efficient Plugin options dialog is
  available
• The options dialog can now be opened
  from the menu item
• The preference can be seen in
  about:config
• The preference and the UI elements are
  now in sync
Result
Result
Creating a Command Builder
Command Builder

• Puts a menu item in the context menu on
  the web page when Selenium IDE is open
• Three types: Action, Accessor, Util
• Util type will be available with Selenium
  IDE v1.0.11
Util Command Builder
• Register the Util command builder
  functions

• Prepare (builder) function
  – Returns the menu item to show
• Execute function
  – Called when the menu item is clicked
  – Can return zero or more commands to add to
    the test case
Be Efficient Command Builder

• When the Write My Test! context menu
  item is pressed, create commands for the
  following
• Verify page title
• Wait for all results
• Verify each result
Your Turn

• Explore the files in the third exercise
  HandsOn/selenium-ide_be-efficient_ex4
• Complete the TODO in the following file
  – Plugin code (BeEfficient.js)
Result

• Write My Test! context menu is available
  on the web page when Selenium IDE is
  open
• Clicking on the write my test on bing.com
  search results page will generate your test
Be Efficient In Action
•   Open Selenium IDE
•   In Firefox, open www.bing.com
•   Type selenium in search box
•   Hit the enter key
•   Right click on the results web page
•   Select Write My Test!
•   Check the generated test case
•   Execute the test case (maybe with
    highlight elements plugin)
Resources for Selenium IDE Plugins

• Selenium IDE Plugin Documentation
  http://seleniumhq.org/projects/ide/plugins.html


• My Blog
  http://blog.reallysimplethoughts.com/
Resources for Firefox Add-ons
https://developer.mozilla.org/en/XUL_School

https://developer.mozilla.org/en/Building_an_Extension

https://developer.mozilla.org/En/Firefox_addons_developer_guide

http://robertnyman.com/2009/01/24/how-to-develop-a-firefox-extension/

http://books.mozdev.org/chapters/index.html

https://developer.mozilla.org/en/Creating_XPCOM_Components

http://blog.mozilla.com/addons/2009/01/28/how-to-develop-a-firefox-extension/

http://roachfiend.com/archives/2004/12/08/how-to-create-firefox-extensions/
Time to Celebrate!

 Thanks for Joining!
Questions?

Feel free to chat with me anytime

More Related Content

What's hot

Selenium IDE
Selenium IDESelenium IDE
Selenium IDE
b4usolution .
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
Naga Dinesh
 
Selenium IDE features
Selenium IDE featuresSelenium IDE features
Selenium IDE features
onewomanmore witl
 
Selenium test automation
Selenium test automationSelenium test automation
Selenium test automation
Srikanth Vuriti
 
Introduction to selenium
Introduction to seleniumIntroduction to selenium
Introduction to selenium
Archana Krushnan
 
Web application testing with Selenium
Web application testing with SeleniumWeb application testing with Selenium
Web application testing with Selenium
Kerry Buckley
 
Automation Testing using Selenium
Automation Testing using SeleniumAutomation Testing using Selenium
Automation Testing using Selenium
Naresh Chintalcheru
 
Selenium IDE Tutorial For Beginners | Selenium IDE Tutorial | What Is Seleniu...
Selenium IDE Tutorial For Beginners | Selenium IDE Tutorial | What Is Seleniu...Selenium IDE Tutorial For Beginners | Selenium IDE Tutorial | What Is Seleniu...
Selenium IDE Tutorial For Beginners | Selenium IDE Tutorial | What Is Seleniu...
Simplilearn
 
Selenium- A Software Testing Tool
Selenium- A Software Testing ToolSelenium- A Software Testing Tool
Selenium- A Software Testing Tool
Zeba Tahseen
 
Automated Web Testing Using Selenium
Automated Web Testing Using SeleniumAutomated Web Testing Using Selenium
Automated Web Testing Using Selenium
Weifeng Zhang
 
Selenium WebDriver with C#
Selenium WebDriver with C#Selenium WebDriver with C#
Selenium WebDriver with C#
srivinayak
 
Selenium IDE
Selenium IDESelenium IDE
Selenium IDE
brendon_jag
 
QSpiders - Automation using Selenium
QSpiders - Automation using SeleniumQSpiders - Automation using Selenium
QSpiders - Automation using Selenium
Qspiders - Software Testing Training Institute
 
Automation - web testing with selenium
Automation - web testing with seleniumAutomation - web testing with selenium
Automation - web testing with selenium
Tzirla Rozental
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
Aneesh Rangarajan
 
Selenium IDE and Beyond
Selenium IDE and BeyondSelenium IDE and Beyond
Selenium IDE and Beyond
Samit Badle
 
Selenium Ide Tutorial
Selenium Ide TutorialSelenium Ide Tutorial
Selenium Ide Tutorial
metapix
 
Selenium Automation
Selenium AutomationSelenium Automation
Selenium Automation
Anuradha Malalasena
 

What's hot (20)

Selenium IDE
Selenium IDESelenium IDE
Selenium IDE
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
 
Selenium IDE features
Selenium IDE featuresSelenium IDE features
Selenium IDE features
 
Selenium Primer
Selenium PrimerSelenium Primer
Selenium Primer
 
Selenium Demo
Selenium DemoSelenium Demo
Selenium Demo
 
Selenium test automation
Selenium test automationSelenium test automation
Selenium test automation
 
Introduction to selenium
Introduction to seleniumIntroduction to selenium
Introduction to selenium
 
Web application testing with Selenium
Web application testing with SeleniumWeb application testing with Selenium
Web application testing with Selenium
 
Automation Testing using Selenium
Automation Testing using SeleniumAutomation Testing using Selenium
Automation Testing using Selenium
 
Selenium IDE Tutorial For Beginners | Selenium IDE Tutorial | What Is Seleniu...
Selenium IDE Tutorial For Beginners | Selenium IDE Tutorial | What Is Seleniu...Selenium IDE Tutorial For Beginners | Selenium IDE Tutorial | What Is Seleniu...
Selenium IDE Tutorial For Beginners | Selenium IDE Tutorial | What Is Seleniu...
 
Selenium- A Software Testing Tool
Selenium- A Software Testing ToolSelenium- A Software Testing Tool
Selenium- A Software Testing Tool
 
Automated Web Testing Using Selenium
Automated Web Testing Using SeleniumAutomated Web Testing Using Selenium
Automated Web Testing Using Selenium
 
Selenium WebDriver with C#
Selenium WebDriver with C#Selenium WebDriver with C#
Selenium WebDriver with C#
 
Selenium IDE
Selenium IDESelenium IDE
Selenium IDE
 
QSpiders - Automation using Selenium
QSpiders - Automation using SeleniumQSpiders - Automation using Selenium
QSpiders - Automation using Selenium
 
Automation - web testing with selenium
Automation - web testing with seleniumAutomation - web testing with selenium
Automation - web testing with selenium
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
 
Selenium IDE and Beyond
Selenium IDE and BeyondSelenium IDE and Beyond
Selenium IDE and Beyond
 
Selenium Ide Tutorial
Selenium Ide TutorialSelenium Ide Tutorial
Selenium Ide Tutorial
 
Selenium Automation
Selenium AutomationSelenium Automation
Selenium Automation
 

Viewers also liked

Selenium Ide Tutorials
Selenium Ide TutorialsSelenium Ide Tutorials
Selenium Ide Tutorialsgueste1e4db
 
Selenium Training
Selenium TrainingSelenium Training
Selenium Training
Colombo Selenium Meetup
 
Steps to write Selenium
Steps to write Selenium  Steps to write Selenium
Steps to write Selenium Rohit Thakur
 
Automated User Tests with Apache Flex
Automated User Tests with Apache FlexAutomated User Tests with Apache Flex
Automated User Tests with Apache Flex
Gert Poppe
 
Selenium IDE and Extensions
Selenium IDE and ExtensionsSelenium IDE and Extensions
Selenium IDE and ExtensionsYana Altunyan
 
Sakai10 Selenium Workshop
Sakai10 Selenium WorkshopSakai10 Selenium Workshop
Sakai10 Selenium Workshopcoreyjack
 
Selenium IDE
Selenium IDESelenium IDE
Selenium IDE
Davi Matos
 
Selenium
SeleniumSelenium
Selenium
BugRaptors
 
Selenium WebDriver FAQ's
Selenium WebDriver FAQ'sSelenium WebDriver FAQ's
Selenium WebDriver FAQ's
Praveen Gorantla
 
Jmeter Performance Testing
Jmeter Performance TestingJmeter Performance Testing
Jmeter Performance TestingAtul Pant
 
Java Basics for selenium
Java Basics for seleniumJava Basics for selenium
Java Basics for selenium
apoorvams
 
Selenium ide
Selenium ide Selenium ide
Selenium ide
Pé Vịt
 

Viewers also liked (14)

Selenium Ide Tutorials
Selenium Ide TutorialsSelenium Ide Tutorials
Selenium Ide Tutorials
 
Selenium Training
Selenium TrainingSelenium Training
Selenium Training
 
Selenium
SeleniumSelenium
Selenium
 
Steps to write Selenium
Steps to write Selenium  Steps to write Selenium
Steps to write Selenium
 
Automated User Tests with Apache Flex
Automated User Tests with Apache FlexAutomated User Tests with Apache Flex
Automated User Tests with Apache Flex
 
Selenium IDE and Extensions
Selenium IDE and ExtensionsSelenium IDE and Extensions
Selenium IDE and Extensions
 
Sakai10 Selenium Workshop
Sakai10 Selenium WorkshopSakai10 Selenium Workshop
Sakai10 Selenium Workshop
 
Selenium IDE
Selenium IDESelenium IDE
Selenium IDE
 
Selenium
SeleniumSelenium
Selenium
 
Selenium WebDriver FAQ's
Selenium WebDriver FAQ'sSelenium WebDriver FAQ's
Selenium WebDriver FAQ's
 
Jmeter Performance Testing
Jmeter Performance TestingJmeter Performance Testing
Jmeter Performance Testing
 
Java Basics for selenium
Java Basics for seleniumJava Basics for selenium
Java Basics for selenium
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
 
Selenium ide
Selenium ide Selenium ide
Selenium ide
 

Similar to Efficient Automated Test Creation With Selenium IDE Plugins

Selenium training in chennai
Selenium training in chennaiSelenium training in chennai
Selenium training in chennai
Thecreating Experts
 
Selenium Training in Chennai
Selenium Training in ChennaiSelenium Training in Chennai
Selenium Training in Chennai
Thecreating Experts
 
Automated ui-testing
Automated ui-testingAutomated ui-testing
Automated ui-testing
Slobodan Lohja
 
Selenium by using JAVA
Selenium by using JAVASelenium by using JAVA
Selenium by using JAVA
mahirayavarapu
 
Selenium By Pravin Mishra
Selenium By Pravin MishraSelenium By Pravin Mishra
Selenium By Pravin Mishra
Pravin Mishra
 
Selenium Tutorial
Selenium TutorialSelenium Tutorial
Selenium Tutorialprad_123
 
Selenium Installation
Selenium  InstallationSelenium  Installation
Selenium Installation
ANKUR-BA
 
Selenium - Installation
Selenium - InstallationSelenium - Installation
Selenium - Installation
Rajesh-QA
 
Selenium ide made easy
Selenium ide made easySelenium ide made easy
Selenium ide made easy
Narayanan Palani
 
Selenium Topic 2 IDE
Selenium Topic 2 IDESelenium Topic 2 IDE
Selenium Topic 2 IDE
ITProfessional Academy
 
Selenium Training in Chennai
Selenium Training in ChennaiSelenium Training in Chennai
Selenium Training in Chennai
Thecreating Experts
 
Selenium Installation
Selenium InstallationSelenium Installation
Selenium Installation
Sachin-QA
 
Selenium with testng and eclipse ide
Selenium with testng and eclipse ideSelenium with testng and eclipse ide
Selenium with testng and eclipse ide
Testertester Jaipur
 
Automated testing with Cypress
Automated testing with CypressAutomated testing with Cypress
Automated testing with Cypress
Yong Shean Chong
 
Getting Started with Selenium
Getting Started with SeleniumGetting Started with Selenium
Getting Started with Selenium
Dave Haeffner
 
Selenium training
Selenium trainingSelenium training
Selenium trainingRobin0590
 
Extending NetBeans IDE
Extending NetBeans IDEExtending NetBeans IDE
Extending NetBeans IDE
Geertjan Wielenga
 
Selenium web driver_2.0_presentation
Selenium web driver_2.0_presentationSelenium web driver_2.0_presentation
Selenium web driver_2.0_presentation
sayhi2sudarshan
 

Similar to Efficient Automated Test Creation With Selenium IDE Plugins (20)

Selenium training in chennai
Selenium training in chennaiSelenium training in chennai
Selenium training in chennai
 
Selenium Training in Chennai
Selenium Training in ChennaiSelenium Training in Chennai
Selenium Training in Chennai
 
Automated ui-testing
Automated ui-testingAutomated ui-testing
Automated ui-testing
 
Selenium by using JAVA
Selenium by using JAVASelenium by using JAVA
Selenium by using JAVA
 
Selenium By Pravin Mishra
Selenium By Pravin MishraSelenium By Pravin Mishra
Selenium By Pravin Mishra
 
Selenium Tutorial
Selenium TutorialSelenium Tutorial
Selenium Tutorial
 
Selenium Installation
Selenium  InstallationSelenium  Installation
Selenium Installation
 
Selenium - Installation
Selenium - InstallationSelenium - Installation
Selenium - Installation
 
Selenium ide made easy
Selenium ide made easySelenium ide made easy
Selenium ide made easy
 
Selenium Topic 2 IDE
Selenium Topic 2 IDESelenium Topic 2 IDE
Selenium Topic 2 IDE
 
Selenium Training in Chennai
Selenium Training in ChennaiSelenium Training in Chennai
Selenium Training in Chennai
 
Selenium Installation
Selenium InstallationSelenium Installation
Selenium Installation
 
Selenium with testng and eclipse ide
Selenium with testng and eclipse ideSelenium with testng and eclipse ide
Selenium with testng and eclipse ide
 
Automated testing with Cypress
Automated testing with CypressAutomated testing with Cypress
Automated testing with Cypress
 
Web works hol
Web works holWeb works hol
Web works hol
 
Getting Started with Selenium
Getting Started with SeleniumGetting Started with Selenium
Getting Started with Selenium
 
Selenium training
Selenium trainingSelenium training
Selenium training
 
Extending NetBeans IDE
Extending NetBeans IDEExtending NetBeans IDE
Extending NetBeans IDE
 
Selenium Testing
Selenium Testing Selenium Testing
Selenium Testing
 
Selenium web driver_2.0_presentation
Selenium web driver_2.0_presentationSelenium web driver_2.0_presentation
Selenium web driver_2.0_presentation
 

Recently uploaded

ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 

Recently uploaded (20)

ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 

Efficient Automated Test Creation With Selenium IDE Plugins

  • 1. Efficient Automated Test Creation With Selenium IDE Plugins Selenium Conference 2011 San Francisco 4th April 2011
  • 2. Samit Badle @samitbadle http://blog.reallysimplethoughts.com
  • 3. Goals • Give you a taste of creating a Selenium IDE plugin • Make you aware of the code in various files by completing the TODOs in the exercises • Introduce you to ideas for efficiently creating tests or test data
  • 4. Agenda • Brief introduction • Create a Selenium IDE plugin with – Menu and Toolbar buttons – Selenium IDE Plugin API – Preferences – Command Builder • Ideas to efficiently create tests
  • 5. Getting Ready • Install the latest version of Firefox – Either Firefox 3.6.16 or Firefox 4.0 • Install 7-Zip or your favorite zip tool • Download the WorkshopFiles.zip – http://links.reallysimplethoughts.com/files/Wor kshopFiles.zip
  • 6. Using WorkshopFiles.zip • Extract WorkshopFiles.zip • Install the special version of Selenium IDE (selenium-ide-multi-workshop.xpi) included in it • The HandsOn folder contains the exercises • The Solutions folder contains the completed versions and pre-built plugins
  • 7. What are Selenium IDE Plugins? Demos!
  • 8. Where to find them? • Selenium download page http://seleniumhq.org/download/ • Firefox add-ons page https://addons.mozilla.org/en-US/firefox/ • Other places on the Internet Google ☺
  • 11. Efficient Automated Test Creation? “Automated Tests are Cool!” “Automating Generation of Automated Tests is Even Cooler.” “But How?”
  • 12. “Be Efficient” Selenium IDE Plugin Here’s How! • Add “Write My Test” to the context menu • When I click on it, write my test for me
  • 13. “Be Efficient” Selenium IDE Plugin The Benefits • Capture test data or test commands directly • Direct access to the web page • Reuse code from Selenium IDE and Selenium
  • 14. Demo!
  • 15. Be Efficient In Action • Open Selenium IDE • In Firefox, open www.bing.com • Type selenium in search box • Hit the enter key • Right click on the results web page • Select Write My Test! • Check the generated test case • Execute the test case (maybe with highlight elements plugin)
  • 16. Be Efficient In Action
  • 17. Be Efficient In Action
  • 18. Be Efficient In Action
  • 19. Be Efficient In Action
  • 20. Be Efficient In Action
  • 21. Be Efficient Code Main code Installation / registration code User interface User interface styling Preferences defaults Files required for a Firefox add-on
  • 23. Simple Firefox Add-on • XPI (zippy) • Install Manifest (install.rdf) • Chrome Manifest (chrome.manifest) • Overlay containing a menu and toolbar button • Style-sheet for the toolbar button • Icon for the toolbar button
  • 25. Your Turn • Explore the files in the first exercise HandsOn/selenium-ide_be-efficient_ex1 • Complete the TODO in the following files – Install Manifest (install.rdf) – Chrome Manifest (chrome.manifest) – Overlay (ovIDE.xul) – Style sheet (beefficient.css)
  • 26. Package and Install • Create a zip of all files in src folder • Change the file extension from .zip to .xpi • Open this xpi file in Firefox • Click on install button • Restart to complete
  • 28. Result • New menu item in the Options menu in Selenium IDE • A new toolbar button on the right side • Clicking on the menu item or toolbar item results in a simple alert message
  • 30. Plugin API Functions • addPlugin • addPluginProvidedIdeExtension • addPluginProvidedFormatter • addPluginProvidedUserExtension
  • 31. Using the Plugin API • Code to register plugin with Selenium IDE • Load the real plugin code as an IDE extension • Lots of boilerplate code
  • 32. Using My pluginframework.js Lots of boilerplate code hidden away in pluginframework.js and reduces the required code to two lines.
  • 34. Your Turn • Explore the files in the second exercise HandsOn/selenium-ide_be-efficient_ex2 • Complete the TODO in the following files – Chrome Manifest (chrome.manifest) – Setup overlay (setup.xul) – Setup code (setup.js) – Overlay (ovIDE.xul) – Real plugin code (BeEfficient.js)
  • 35. Result • Be Efficient Plugin now shows up in Plugins tab of the Selenium IDE options dialog • The plugin code in BeEfficient and ovIDE.xul can now change the enabled state from the UI
  • 38. Preferences • Lot of support is built into Firefox • Involves mostly boilerplate code
  • 39. Preferences • Create defaults for the preferences • Create dialog to allow user to change preference • Create an observer to receive notification of changes • And one of the following (or both): – Define options in Install manifest – Create UI (usually menu) to show Options dialog
  • 41. Your Turn • Explore the files in the third exercise HandsOn/selenium-ide_be-efficient_ex3 • Complete the TODO in the following files – Preference defaults (defaults.js) – Options dialog (options.xul) – Plugin code (BeEfficient.js) – Install Manifest (install.rdf)
  • 42. Result • Be Efficient Plugin options dialog is available • The options dialog can now be opened from the menu item • The preference can be seen in about:config • The preference and the UI elements are now in sync
  • 46. Command Builder • Puts a menu item in the context menu on the web page when Selenium IDE is open • Three types: Action, Accessor, Util • Util type will be available with Selenium IDE v1.0.11
  • 47. Util Command Builder • Register the Util command builder functions • Prepare (builder) function – Returns the menu item to show • Execute function – Called when the menu item is clicked – Can return zero or more commands to add to the test case
  • 48. Be Efficient Command Builder • When the Write My Test! context menu item is pressed, create commands for the following • Verify page title • Wait for all results • Verify each result
  • 49. Your Turn • Explore the files in the third exercise HandsOn/selenium-ide_be-efficient_ex4 • Complete the TODO in the following file – Plugin code (BeEfficient.js)
  • 50. Result • Write My Test! context menu is available on the web page when Selenium IDE is open • Clicking on the write my test on bing.com search results page will generate your test
  • 51. Be Efficient In Action • Open Selenium IDE • In Firefox, open www.bing.com • Type selenium in search box • Hit the enter key • Right click on the results web page • Select Write My Test! • Check the generated test case • Execute the test case (maybe with highlight elements plugin)
  • 52. Resources for Selenium IDE Plugins • Selenium IDE Plugin Documentation http://seleniumhq.org/projects/ide/plugins.html • My Blog http://blog.reallysimplethoughts.com/
  • 53. Resources for Firefox Add-ons https://developer.mozilla.org/en/XUL_School https://developer.mozilla.org/en/Building_an_Extension https://developer.mozilla.org/En/Firefox_addons_developer_guide http://robertnyman.com/2009/01/24/how-to-develop-a-firefox-extension/ http://books.mozdev.org/chapters/index.html https://developer.mozilla.org/en/Creating_XPCOM_Components http://blog.mozilla.com/addons/2009/01/28/how-to-develop-a-firefox-extension/ http://roachfiend.com/archives/2004/12/08/how-to-create-firefox-extensions/
  • 54. Time to Celebrate! Thanks for Joining!
  • 55. Questions? Feel free to chat with me anytime