Selenium vs. Watir Evaluation William Mosteller Test Automation Specialist Copyright © 2009, Eloqua Inc.

Slides:



Advertisements
Similar presentations
Harbinger Systems Pvt. Ltd. System Test Automation in Agile Environments using Open Source Technologies Asheesh Choksi Associate Test Architect Harbinger.
Advertisements

Samsung Smart TV is a web-based application running on an application engine installed on digital TVs connected to the Internet.
Lesson 10: Starting Windows Applications start an application program move between open application programs start an application using the Run command.
Computer and Communication Fundamental Basic web programming Lecture 8 Rina Zviel-Girshin.
Introduction to JavaScript Module 1 Client Side JS Programming M-GO Sponsored By
Access Custom Forms & Reports. Topics  Designer Skills  Tab Order (Forms)  Copying Properties  Adding a Control  Adding Page Breaks  Adding Tab.
Creating a Program In today’s lesson we will look at: what programming is different types of programs how we create a program installing an IDE to get.
Calendar Browser is a groupware used for booking all kinds of resources within an organization. Calendar Browser is installed on a file server and in a.
Chapter 6 Multiform Projects Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.
Web Development in Microsoft Visual Studio Slide 2 Lecture Overview Introduce Visual Studio 2013 Create a first ASP.NET application.
HTML Recall that HTML is static in that it describes how a page is to be displayed, but it doesn’t provide for interaction or animation. A page created.
Chapter 1 Getting Started With Dreamweaver. Explore the Dreamweaver Workspace The Dreamweaver workspace is where you can find all the tools to create.
Creating and Publishing Your own website
BY: KYLE ROGAHN COMPUTER SCIENCE SEMINAR UW PLATTEVILLE 4/3/2012 Web Browser Automation - Geb.
SOUL INSTALLATION Step-1 For this Please Install the Version 7.0 or SQL Server 2000 or onwards.
1 CS428 Web Engineering Lecture 18 Introduction (PHP - I)
A guide for UICET for using Wikispaces.  A wiki is a web page or collection of web pages that can be linked together as a website.  Wikis are often.
Lesson 13: Building Web Forms Introduction to Adobe Dreamweaver CS6 Adobe Certified Associate: Web Communication using Adobe Dreamweaver CS6.
Three-tier Mobile Application Testing Framework:
Microsoft Windows LEARNING HOW USE AN OPERATING SYSTEM 1.
Web Design Using HTML Codes. WHAT DO I NEED TO BEGIN DESIGNING A HOME PAGE? 1.YOU NEED A FOLDER (also called a DIRECTORY) You should set up a folder or.
INTRODUCTION TO DREAMWEAVER 8. What we already know…  Design basics  Contrast  Repetition  Alignment  Repetition  HTML.
WaveMaker Visual AJAX Studio 4.0 Training Troubleshooting.
DAT602 Database Application Development Lecture 14 HTML.
Database-Driven Web Sites, Second Edition1 Chapter 8 Processing ASP.NET Web Forms and Working With Server Controls.
Installing the SAFARIODBC.EXE For use with Excel May 3, 2002.
1 Test Automation For Web-Based Applications Selenium HP Web Test Tool Training Portnov Computer School.
Selenium Web Test Tool Training Using Ruby Language Discover the automating power of Selenium Kavin School Kavin School Presents: Presented by: Kangeyan.
University of Sunderland CDM105 Session 5 Web Authoring Tools The past and present A history of web authoring tools and an overview of Macromedia Dreamweaver.
E-Commerce: Introduction to Web Development 1 Dr. Lawrence West, Management Dept., University of Central Florida Topics What is a Web.
Introduction With TimeCard users can tag SharePoint events with information that converts them into time sheets. This way they can report.
Testing Ajax Applications when to test, what to test, how to test Ajax applications Square One University Series.
HTML Hyper Text Markup Language A simple introduction.
Lesson13. JavaScript JavaScript is an interpreted language, designed to function within a web browser. It can also be used on the server.
Creating and Publishing Your own web site PC Version SEAS 001 Professor Ahmadi.
INTRODUCTION TO JAVASCRIPT AND DOM Internet Engineering Spring 2012.
C# Tutorial -1 ASP.NET Web Application with Visual Studio 2005.
Introduction to the Visual Studio.NET IDE (LAB 1 )
Extending HTML CPSC 120 Principles of Computer Science April 9, 2012.
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. Chapter 6 Multiform Projects.
 2008 Pearson Education, Inc. All rights reserved Adobe Dreamweaver® CS3.
A New Approach to Java Clients Robert Buffone Chief Architect Nexaweb Technologies By
DMED1100 InDesign Advanced Class 8. Agenda  Scripting  Introduction to XML 2.
Chapter 1 Getting Started With Dreamweaver. Exploring the Dreamweaver Workspace The Dreamweaver workspace is where you can find all the tools to create.
Selenium January Selenium course content  Introduction (Session-1)Session-  Automation  What is automation testing  When to go for automation.
Introduction Selenium IDE is a Firefox extension that allows you to record, edit, and debug tests for HTML Easy record and playback Intelligent field selection.
Mr. Justin “JET” Turner CSCI 3000 – Fall 2015 CRN Section A – TR 9:30-10:45 CRN – Section B – TR 5:30-6:45.
1 After completing this lesson, you will be able to: Get around the Internet with your browser. Connect to the Internet. Print Web pages. Save Web pages.
Introducing Dreamweaver. Dreamweaver The web development application used to create web pages Part of the Adobe creative suite.
Compare and Contrast : Blackboard & a Personal Web Page www3.ltu.edu/~s_schneider/howto/faculty.htm You’ll find this presentation (and another) here :
IS2803 Developing Multimedia Applications for Business (Part 2) Lecture 2: Introduction to IS2803 Rob Gleasure
Web Scraping with Python and Selenium. What is Web Scraping?  Software technique for extracting info from websites Get information programmatically that.
Chapter 28. Copyright 2003, Paradigm Publishing Inc. CHAPTER 28 BACKNEXTEND 28-2 LINKS TO OBJECTIVES Table Calculations Table Properties Fields in a Table.
1 CSC160 Chapter 1: Introduction to JavaScript Chapter 2: Placing JavaScript in an HTML File.
1 Using jQuery JavaScript & jQuery the missing manual (Second Edition)
 Lecture  Website language: ASP.net  Book name Beginning ASP.NET 4 in C# and VB 2.
Web Programming Java Script-Introduction. What is Javascript? JavaScript is a scripting language using for the Web. JavaScript is a programming language.
Welcome to the Basic Microsoft Word Guide. Before you start this Guide, you will need to complete “Basic Computer”; “Basic Windows” and know how to type.
Inquiring and analyzing options for creating a website
© 2015, Mike Murach & Associates, Inc.
Using Access and the Web
Microsoft Office Illustrated
Introduction With TimeCard users can tag SharePoint events with information that converts them into time sheets. This way they can report.
Web Development in Microsoft Visual Studio 2013
Tutorial 6 Creating Dynamic Pages
Teaching slides Chapter 6.
Introduction In today’s lesson we will look at: why Python?
Drupal user guide Evashni Jansen Web Office.
Chloe Riley | Research Commons Librarian |
Presentation transcript:

Selenium vs. Watir Evaluation William Mosteller Test Automation Specialist Copyright © 2009, Eloqua Inc.

The Initial Challenge Who is Eloqua? Leading marketing automation platform (SaaS) Global operations Over 200 employees, and 500+ customers We’re testing a re-write of the web application Evaluate Selenium and Watir and decide which is better for our needs

Similarities Both are open source Both support browsers only We drive both with Ruby (Selenium RC) Ruby reports errors by line number You need an editor like NotePad++ Or SCITE, which comes with Ruby - C:\ruby\scite\SciTE.exe Unlike SilkTest, no window definitions Unlike SilkTest, tags may be fuzzy

Differences Selenium RC requires that you start a server on your computer Easily implemented with a.bat file in the Startup folder Selenium supports methods with x, y offsets Selenium supports more browsers and operating systems So we started with a Selenium bias

Our Strategy “Scientific Method” Comparison: – Multi Language Support (non-ascii characters) – Docs – Maturity – Frames – Learning Curve – Existing team knowledge – Price/License – Community – Etc.

Initial Experiences Early Trials Selenium Scripting with preliminary versions of our application Watir Scripting with LinkedIn Both looked promising

Scripting the Application Developed in SproutCore New open source development framework In both tools… Click doesn’t work Double-Click doesn’t work “No battle plan survives contact with the enemy!” My new thought: We may have to settle for the one we can get to work!

More Issues Handling Modal Dialog Boxes Handling Application All Actions Button Entering Text in the YUI Editor Selecting Text in the YUI Editor Drag ‘n Drop

Aside - Information Resources Open source documentation is distributed, you need research skills Watir - wiki.openqa.org/display/WTR/Project+Hme Selenium - seleniumhq.org/projects/core/ & wiki.openqa.org/display/SEL/Home Google Watir group on Google Selenium Forum on Open QA clearspace.openqa.org/community/selenium Selenium and Watir groups on LinkedIn Friends

Click Resolution In Selenium (unless otherwise noted, code examples here are Selenium) mouse_down(locator) mouse_up(locator)

Double Click Resolution SproutCore Changes Required MS-IE Implementation fire_event(locator, "DblClick") FireFox Implementation paired MouseDown/MouseUp events

Dialog Box Resolution Watir solutions are based on Click_No_Wait Selenium provides functions for “are you sure” case Use AutoIt based scripts, running separately Programmed in Ruby, but with different methods May need to register AutoitX3.dll using regsvr32 Windows only

All Actions Resolution MouseDown/MouseUp opens the drop-down Click chooses the actual selection

Aside - Tagging Tools With JavaScript, View Source isn’t helpful MS-IE IE Developer Toolbar FireFox Firebug DOM Inspector Xpather (Install these globally in FireFox)

YUI Text Entry Resolution Proper Tagging Note terse tag coding style

YUI Text Selection SilkTest and Watir Two ways to put text in a field (Watir examples) Set() Send_Keys() o Special syntax for control characters o "+{END}{DELETE}" + CannedText + "+{HOME}" Selenium doesn’t work this way

YUI Text Selection Resolution.key_down_native("17")# cntl down.key_press_native("65")# “A” press.key_up_native("17")# cntl up Need JavaScript Character Codes 83ac-25f0306e3e25/Javascript-Char-Codes-Key- Codes.aspx

Drag ‘n Drop Resolution drag_and_drop_to_object() Animation prettier with MS-IE Have suggestions for Watir

We Chose Selenium – March, 2009 We solved all our issues there Probably could also do so in Watir, but it looked more expensive Drag ‘n drop worked intermittently Send_Keys() not available in FireWatir And the initial Selenium plusses still matter Selenium supports methods with x, y offsets Selenium supports more browsers and operating systems

Since Selenium Selection Now testing our legacy application with Watir Selenium has trouble with modal browser windows, and legacy app has lots of them Watir handles MS-IE tables faster than Selenium Frames in legacy app complicate Watir tags Must mention every frame above your widget

Syntax Matters Is a.b.c.d present on the screen? Selenium: …element?(a.b.c.d) Watir: …a.b.c.d.exists? If c does not exist, or something weird happens, you still get an exception o Use nested.exists? or o While/Begin/Break/Rescue/End around the code