Getting Started with Selenium Test Automation

Size: px
Start display at page:

Download "Getting Started with Selenium Test Automation"

Transcription

1 Getting Started with Selenium Test Automation Presented By: Chris Lawson

2 Student Resources Password: TestSelenium

3 Course Objec1ves Ø What Selenium is and how it can be used in real world scenarios Ø Essential object-oriented programming constructs necessary for developing basic automated tests Ø Core Selenium methods and syntax for programmatically controlling browsers

4 Course Objec1ves Ø Challenges of automated Web testing and approaches for overcoming them Ø Key development strategies for creating maintainable automated tests Ø Integrating additional open-source tools to enhance automated testing process Ø Basic automation framework concepts and design considerations

5 Test Automa1on Tools can extend or enhance or enable fabulous testing. But by accelerating some action, tools can enable us to do bad testing faster than ever...

6 What is Selenium Ø Powerful, open-source suite of tools for automating web browsers Rich set of testing functions specifically geared to the needs of testing web applications Numerous operations for comparing expected test results against actual application behavior Many options for locating and identifying web elements Ø Core technology in countless other browser automation tools, API's, and Frameworks

7 Why Selenium? Ø It's free Ø It continually evolves and grows Ø There are different ways to develop and run tests Ø Tests can be translated to different programming languages i.e. Java, Ruby, Perl, Python, C#

8 Main Selenium Tools IDE Firefox add-on that makes it easy to record and playback tests WebDriver Grid Allows for programmatic browser control (API) Runs tests on many servers at the same time, cutting down on the time it takes to test multiple browsers or operating systems

9 What is Selenium IDE? Ø Integrated development environment for selenium tests Ø Quick and easy record and playback automation tool Ø Script editing and debugging tool Ø Implemented as a Firefox plugin

10 Installa1on Ø Using Firefox browser, navigate to download/ Ø Click the link for the latest release of Selenium IDE Ø Click Allow in the Firefox popup Ø Click Install Now in the Firefox popup Ø Restart Firefox Ø Press Ctrl+Alt+S to launch Selenium IDE

11 Selenium IDE Replay Toolbar Start and Stop Recording Selenese Script Editor Run Log

12 Selenese Ø Ø Selenese is the common name given to the set of Selenium commands available for tests There are 3 flavors of Selenese commands: l l l Actions manipulate state (e.g. click ) Accessors examine and store state (e.g. store ) Assertions verify state (e.g. asserttitle )

13 Ac1on Commands Ø Action commands manipulate the state of the application. Some examples include: l l l open navigates to the specified URL click simulates a mouse click on an element type enters text into an element, such as a text box Ø Many action commands can be used with the AndWait suffix, which instructs the browser to wait for the page to load before continuing. For example: l clickandwait will click an element and then wait for the page to load before executing the next command

14 Accessor Commands Ø Accessor commands examine the state of the application and store the result as a variable. For example: l storetext saves the text of an element as a variable Ø Accessors are useful for storing current application state for later use in verifications The total could be stored as a variable for later use in verifications on checkout pages

15 Asser1on Commands Ø Assertions verify the state of the application. For example: l l verifytext - verifies that an elements text matches the provided pattern assertelementpresent verifies that the specified element is present somewhere on the page Ø There are 3 types of assertions: l l l asserts will stop execution of the script upon failure verifications will fail the test, but continue execution waitfor will wait for some condition to be true before proceeding

16 Selenese Verify and Assert

17 Using the Script Editor ** Use of these parameters varies; this example demonstrates the most common usage. Select a line to edit or add Select a Selenese command Identify the target element** Value to be verified or entered**

18 Sec1on Ques1ons & Exercises 1. Download and install Selenium IDE from 2. Record your first Selenium IDE test 3. Did your automated test playback successfully? 4. What challenges did you encounter?

19 Selenium IDE Limita1ons Ø Can only run tests on Firefox Ø No programming logic can be applied (i.e. loops, conditional statements) Ø Difficult to create complex tests where verifying dynamic content is necessary

20 Conver1ng IDE Scripts Ø Convert script into language of choice Ø Enhancing the script will require an IDE such as Eclipse or NetBeans

21 Eclipse IDE Basics

22 Eclipse

23 What is Eclipse? Ø Eclipse started as a proprietary IBM product (IBM Visual age for Smalltalk/Java) Embracing the open source model IBM opened the product up Ø Open Source It is a general purpose open platform that facilitates and encourages the development of third party plug-ins Ø Best known as an Integrated Development Environment (IDE) Provides tools for coding, building, running and debugging applications Ø Originally designed for Java, now supports many other languages Good support for C, C++ Python, PHP, Ruby, etc

24 GeKng Started with Eclipse Ø Download and install latest Java SE JDK 8 version>> Run the installer Ø Download the latest version of Eclipse version>> Unzip to the desired directory and run the executable

25 GeKng Started with Eclipse Ø Import JDK Select Window > Preferences (or Eclipse > Preferences on Mac) in the menu bar In the Preferences window, select Java > Installed JREs If a JDK 1.8 is not in the list, click Search and in the popup select the directory where your JDK is installed and click OK. Click the checkbox next to the JDK 1.8 and click OK.

26 GeKng Started with Eclipse Ø Installing and configuring plug-ins Open Eclipse Marketplace by selecting Help > Eclipse Marketplace in the menu bar Install the TestNG for Eclipse plugin If project is not recognized as Maven Project in Eclipse (small M in the corner of project) àright click on the project in the Project Explorer window and select Configure > Convert to Maven Project Right click on the project folder and select Maven > Update Project and in the Update Maven Project window select the project from the list and click OK.

27 Eclipse Workspace Ø All of your code will live under a workspace Ø A workspace is nothing more than a location to store source code and where Eclipse will write out our preferences Ø Eclipse allows you to have multiple workspaces each tailored in its own way Ø You choose a location where you want to store your files

28 Eclipse IDE Components

29 Crea1ng a New Project Ø All code in Eclipse lives under a project Ø To create a project: File New Java Project

30 Crea1ng a New Project Ø Enter project name and click Finish

31 Crea1ng a New Project Ø The newly created project will appear under the Package Explorer

32 Folder Structure Ø Eclipse automatically creates a folder to store your source code in called src

33 Crea1ng a Class Ø To create a class, click on the New button, then select Class

34 Crea1ng a Class Ø Fill in necessary information for new Java class and click Finish to continue

35 Class Created

36 Example Compile Error Ø Ø Eclipse automatically compiles code in the background This means that errors can be corrected when made

37 Example Compile Error Ø When clicking on the light bulb icon, Eclipse suggests changing printn to either print or println

38 Running Code Ø Right click on class to see Run As options

39 Running Code Ø The output of running code is displayed in the Console tab in the bottom pane

40 Debugging Code Ø Ø Set break points in the code by double clicking in the left margin Breakpoints are represented by blue bubbles

41 Context Assist Ø Eclipse will display a list of available methods for the class when you press dot character (. ) and pause a second

42 Sec1on Ques1ons & Exercises 1. Download and install Eclipse IDE 2. Create a Java project 3. What challenges did you encounter?

43 Basic Object Oriented Concepts

44 Classes Describe Objects Ø Every object belongs to (is an instance of) a class Ø An object may have fields, or variables The class describes those fields Ø An object may have methods The class describes those methods Ø A class is like a template, or cookie cutter, for objects

45 Inheritance Object-oriented programming allows subclasses to inherit fields, methods, and nested classes from its superclass. The importance of inheritance is to reduce duplicate code. subclass superclass subclass

46 Inheritance Methods that are within the superclass can be used or overwritten by the subclasses

47 Inheritance Java Example

48 Intro to Java

49 Java Anatomy Reserved Words Packages Comments Statements Blocks Classes Types Modifiers Methods Variables Constructors The main method Annotations

50 Reserved Words Ø Reserved words, or keywords, are words that have a specific meaning to the compiler and cannot be used for other purposes, such as variable or method names. Ø For example, when the compiler sees the word class, it understands that the word after class is the name for the class. Other examples of reserved words are public, static, and void. public Object class = new Object(); reserved words cannot be used as names

51 Comments Ø In Java, comments are preceded by two slashes (//) in a line, or enclosed between /* and */ in one or multiple lines Ø When the compiler sees //, it ignores all text after // in the same line Ø When it sees /*, it scans for the next */ and ignores any text between /* and */

52 Packages Ø A Java package is a mechanism for organizing Java classes into namespaces similar to modules. Ø Java packages can be stored in compressed files called JAR files, allowing classes to download faster as a group rather than one at a time Ø Conceptually you can think of packages as being similar to different folders on your computer

53 Classes The class is the essential Java construct All Java code resides inside of classes Classes can be thought of as templates or blueprints for objects Classes define a representation of object state (through fields) and object behavior (through methods)

54 Declaring A Class Ø A class declaration includes: Java class keyword Class name Access Modifier (optional) Body

55 Statements Ø A statement represents an action or a sequence of actions Ø The statement: System.out.println("Welcome to Java! ); Ø Displays the greeting "Welcome to Java! Ø Every statement in Java ends with a semicolon (;) The semicolon acts as a terminator

56 Blocks A pair of braces in a program forms a block that groups components of a program public class Test { public static void main(string[] args) { System.out.println("Welcome to Java!"); } } Method block Class block

57 Types There are two categories of types in java: Ø Primitives These are part of the Java language, and are not formed by a class. Java supports 8 primitive types: int, byte, short, long, float, double, boolean, and char. The primitive types are reserved words in Java. Ø Objects These are all other data types, and are created from a class. Notice that String is an object in Java, not a primitive.

58 Modifiers Ø Java uses certain reserved words called modifiers that specify the properties of the data, methods, and classes and how they can be used Ø Examples of modifiers are public and static Ø Other modifiers are private, final, abstract, and protected

59 Methods Q: What is a method? A: A method is a collection of statements that are grouped together, and can be executed using a single command. Methods may accept input values or supply output values. Q: Why are methods useful? A: Methods make operations easily reusable, no matter how complex they are. They allow users to perform these operations, even without being concerned with how they are performed.

60 Methods Q: What is a return type? A: A method has the option of returning a value to the code that calls it. The return type is specified in the method declaration. If no value is returned, the method is declared with a return type of void. The return keyword is used in the method body to return a value.

61 Declaring A Method Ø A method declaration includes: Access Modifier Non-Access Modifiers (optional) Return type Method Name Parameters (as required) Body

62 Declaring a Variable Ø A variable declaration can include: Access Modifier Non-Access Modifiers (optional) Type Name Value

63 Main Method Ø The main method provides the control of program flow Ø The Java interpreter executes the application by invoking the main method Ø The main method looks like this: public static void main(string[] args){ System.out.println( Your application is running! ); }

64 Operators Ø Basic Mathematical Operators +, -, *, and / add, subtract, multiply, and divide Ø Assignment Operators = Sets variable to value (Note: this is not the same as == on next slide) +=, -=, *=, /= perform mathematical operation on a variable, and then set the variable to the resulting value. Example: int x = 10; x += 5; The value of x is now 15.

65 Operators Ø Comparative Operators == compares two values for equality (Note: this is not the same as =)!= compares two values for inequality > greater than < less than >= greater than or equal <= less than or equal

66 Logical Constructs Branching Logic If Else if (x == 1) { System.out.println( x equals 1 ); } else if (x == 2) { System.out.println( x equals 2 ); } else { System.out.println( x does not equal 1 or 2 ); }

67 Annota1ons Ø Annotations are a feature of Java that are useful for: Providing information to the compiler Compile-time processing Runtime processing Ø Annotations are metadata, and have no direct effect on the code they annotate. Ø Annotations can apply to classes, fields, and/or methods. Ø An annotation is preceded by character.

68 Key Web Concepts

69 HTML Ø Hyper Text Markup Language (HTML) is the markup language used to place content on webpages Ø An HTML document is made up of HTML elements, which are written as tags Ø Most tags include an opening and a closing tag with text in between the two. For example: <p>this text is displayed by the browser</p>

70 HTML Ø Elements can also have attributes that provide additional information, such as the destination of a link which is defined by the href attribute: <a href= >Click Me!<a/> Ø The tags and attributes themselves are called markup, and are not displayed as text by the browser Ø Only text between the tags and images defined by particular tags/ attributes are displayed

71 DOM Ø The Document Object Model (DOM) is a convention for representing and interacting with objects in a markup document (such as HTML or XML) Ø A defining characteristic of DOM is the tree-like structure of elements, where elements are nested within other elements <html> <head> <title>dom Example</title> </head> <body> <div> <ul id= navigation > <li class= opt > <a>option 1</a> </li> <li class= opt > <a>option 2</a> </li> <li class= opt > <a>option 1</a> </li> </ul> </div> </body> </html>

72 Java Script Ø JavaScript is a programming language used primarily for browser scripting. Ø It has many uses in web applications, including reacting to user input, asynchronous communication with the server, and altering the display of a page. Ø JavaScript can interact with an HTML document to create dynamic effects.

73 AJAX Ø Asynchronous JavaScript and XML (AJAX) is a group of technologies and techniques used to create asynchronous web applications. Ø Despite the name, AJAX does not necessarily consist of JavaScript or XML. For example, JSON is a popular substitute for XML. Ø While a technical discussion of AJAX is beyond the scope of this course, it is important to be aware of its use when attempting to automate a web application, as it presents a unique set of challenges to properly synchronizing the test script with the AUT.

74 Unit Testing Frameworks

75 TestNG Ø TestNG is an open-source testing framework for Java Ø Benefits of TestNG include: Simplifies running of tests and test suites Simplifies setup and cleanup Includes easy to use reporting tool Easy to use and integrate into existing code

76 TestNG Annota1ons Ø TestNG is implemented as a set of Java annotations. The most commonly used of these annotations a test a setup method to run before the test a setup method to run before each a cleanup method to run after each a cleanup method to run after the test class Ø Include the annotations in the code just before the method declaration. For public void testaccountregistration() { //method body goes here }

77 TestNG Reporter The TestNG reporter runs inside the IDE. It includes an easy to understand, color coded report that includes information about the run.

78 TestNG Asser1ons Ø Assertions are used to verify the state of some facet of the AUT. For example, you might want to verify that a specific element exists or contains specific text. Ø TestNG provides several commonly used assertions, including: asserttrue evaluates a boolean condition asserttrue(somestring.equals( Hello )); assertequals evaluates two parameters for equality assertequals(somestring, Hello );

79 TestNG Asser1ons Ø Assertions are used to verify the state of some facet of the AUT. For example, you might want to verify that a specific element exists or contains specific text. Ø TestNG provides several commonly used assertions, including: asserttrue evaluates a boolean condition asserttrue(somestring.equals( Hello )); assertequals evaluates two parameters for equality assertequals(somestring, Hello );

80 POM XML Dependencies <version>1.0</version> <dependencies> <dependency> <groupid>org.seleniumhq.selenium</groupid> <artifactid>selenium-java</artifactid> <version>2.53.1</version> </dependency> </dependencies>

81 POM XML Dependencies <dependency> <groupid>org.testng</groupid> <artifactid>testng</artifactid> <version>6.9.6</version> </dependency>

82 Group Discussion Q: What role does WebDriver play in a complete automation framework? A: WebDriver is used to control the web browser. Other tools will be necessary for reporting, data access, test flow, etc.

83 Selenium WebDriver

84 Selenium WebDriver What it is... Robust web objectbased API Successor to Selenium RC What it does best... Create robust, browserbased regression automation Scale and distribute scripts across many environments

85 WebDriver - API Selenium-WebDriver supports the following browsers along with the operating systems these browsers are compatible with: - Google Chrome - Internet Explorer - Firefox - Safari - Opera - HtmlUnit - phantomjs - Android (with Selendroid or appium) - ios (with ios-driver or appium)

86 Launching a Browser Selenium WebDriver makes direct calls to the browser using each browser s native support for automation Launching a browser is as easy as instantiating a WebDriver implementation //Launch a FireFox browser window WebDriver driver = new FirefoxDriver(); //Launch a Chrome browser window WebDriver driver = new ChromeDriver(); //Launch an Internet Explorer browser window WebDriver driver = new InternetExplorerDriver();

87 Fetching a Page The first thing you re likely to want to do with WebDriver is navigate to a page The standard way of doing this is by calling the get method driver.get("

88 Browser Naviga1on WebDriver allows you to interact with the browser s navigation controls directly. The Navigation class is accessed with the navigate() method: driver.navigate().back(); driver.navigate().forward(); driver.navigate().refresh(); driver.navigate().to(string url);

89 Other Browser Interac1ons Ø Get the title of the current page driver.gettitle(); Ø Get the current URL driver.getcurrenturl Ø Inject JavaScript //cast driver to a JavaScriptExecutor JavaScriptExecutor jsx = ((JavaScriptExecutor) driver; // execute script with JavaScriptExecutor jsx.executescript( window.alert( Hello! ) );

90 WebDriver Exercise 1 Write a script that: 1. Launches a Firefox browser window 2. Navigates to 3. Gets the page title 4. Verifies that it is on the correct page

91 Elements The WebElement class represents a DOM element, and includes methods representing the various user interactions with that element. WebElement searchbar = findelement(by.id( gbqfq )

92 Loca1ng Elements Ø Before interacting with page elements, they must be located in the DOM using the findelement methods Ø findelement requires a single By parameter returns a single WebElement if multiple matches exist, returns the first match if no matches exist, throws NoSuchElementException Ø findelements requires a single By parameter returns a list of WebElements if no matches are found, returns an empty list

93 Loca1ng Elements Ø findelement and findelements are methods of both WebDriver and WebElement Ø WebDriver methods search the entire DOM for the desired element(s) Ø WebElement methods search within the context of the current element usually used to find child element(s)

94 By Strategies - ID <body> <div id= navigation class= navbar name= top-nav-bar > <a id= searchbtn class= search name= searchbar > Shop Now </a> </ul> </body> Ø By ID Find elements using the HTML id attribute This (along with name ) is the preferred way of locating elements Beware of non-unique and dynamic IDs when using this strategy

95 By Strategies - Name <body> <div id= navigation class= navbar name= top-nav-bar > <a id= searchbtn class= search name= searchbar > Shop Now </a> </ul> </body> Ø By Name Find input elements using the HTML name attribute This (along with id ) is the preferred way of locating elements

96 By Strategies Class Name <body> <div id= navigation class= navbar name= top-nav-bar > <a id= searchbtn class= search name= searchbar > Shop Now </a> </ul> </body> Ø By Class Name Find input elements using the HTML class attribute Class attributes are much less likely to be unique than ids and names If multiple elements have the same class attribute, findelement will return the first instance, and findelements will return all instances

97 By Strategies Tag Name <body> <div id= navigation class= navbar name= top-nav-bar > <a id= searchbtn class= search name= searchbar > Shop Now </a> </ul> </body> Ø By Tag Name Find elements by their tag name in the DOM Tag names will rarely be unique, but this strategy can be helpful for gathering an iterable list of a certain type of tag

98 By Strategies Link Text <body> <div id= navigation class= navbar name= top-nav-bar > <a id= searchbtn class= search name= searchbar > Shop Now </a> </ul> </body> Ø By Link Text Find the link element with matching visible text This strategy is only useful for finding links (i.e. <a> tags) Beware: an element s link text is often more likely to change than the other locator types

99 By Strategies Par1al Text <body> <div id= navigation class= navbar name= top-nav-bar > <a id= searchbtn class= search name= searchbar > Shop Now </a> </ul> </body> Ø By Partial Link Text Find the link element with partial matching visible text This strategy is only useful for finding links (i.e. <a> tags) A partial link text locator is less likely to change than using the full link text

100 By Strategies CSS Ø By CSS uses CSS selectors to precisely locate elements this strategy allows for more precision than the previous ones, but is slower to execute Ø Common CSS syntax: tag names in plain text Id attributes preceded by # Class attributes preceded by. Nested elements are separated by a space

101 By Strategies Xpath Ø By Xpath Xpath is a language used for selecting elements from a DOM structure Xpath is the most precise locator strategy, but also the slowest to execute WebDriver uses a browser s native Xpath capabilities wherever possible For browsers that don t have native Xpath support, Selenium provides its own implementation, which can lead to some unexpected behavior unless you are aware of the differences in the various Xpath engines

102 Locator Examples <body> <div id= navigation class= navbar name= top-nav-bar > <a id= searchbtn class= search name= searchbar > Shop Now </a> </ul> </body> By.id By.name By.className By.tagName By.linkText By.partialLinkText WebElement element = driver.findelement(by.id( searchbtn )); WebElement element = driver.findelement(by.name( searchbar )); WebElement element = driver.findelement(by.classname( search )); WebElement element = driver.findelement(by.tagname( a )); WebElement element = driver.findelement(by.linktext( Show Now )); WebElement element = driver.findelement(by.partiallinktext( Shop ));

103 Locator Examples <body> <div id= navigation class= navbar name= top-nav-bar > <a id= searchbtn class= search name= searchbar > Shop Now </a> </ul> </body>

104 Interac1ng with Page Elements WebElement methods: Ø click mouse clicks on the selected element Ø gettext returns the text present in the element Ø sendkeys enters text into a text input element Ø clear if element accepts text input, clears the value Ø getattribute returns the value of an HTML attribute Ø getcssvalue returns the value a CSS property for the element Ø isdisplayed returns a Boolean stating whether or not the element is displayed Ø isselected returns a Boolean stating whether or not the element is selected; must be an input element, such as a checkbox or radio btn Ø getlocation returns the point of the top left corner of the element

105 Code Example // Find the search bar WebElement searchbar = driver.findelement(by.id( search )); // Click on the search bar searchbar.click(); // Clear current text from search bar searchbar.clear(); // Enter text into the search bar searchbar.sendkeys( Selenium WebDriver ); // Submit the search using the Enter key searchbar.sendkeys(keys.enter);

106 Select Elements Ø WebDriver s Select class models an HTML <select> tag, and facilitates interaction with them. Ø Example: WebElement states = driver.findelement(by.id( Sstate_Option )); Select statedropdown = new Select(states); statedropdown.selectbyvisibletext( ALASKA ); statedropdown.selectbyvalue( AK ); statedropdown.selectbyindex( 3 );

107 WebDriver Exercise 2 Write a script that: 1. Launches a Firefox browser window 2. Navigates to 3. Click Coming April 18-22, 2016 to Downtown Chicago! link 4. Click Visit Quest 2017 link 5. Verifies that the user is taken to Quest 2017 page

108 Real-World Selenium Ø Works really well with standard HTML/DOM structure Ø Embedded processing using JavaScript and AJAX is tricky but still doable Ø Doesn't work with enterprise solutions like Siebel or SAP Web due to custom embedded objects Ø Will not work with client-server applications such as SAP GUI since it is web-only automation tool

109 Common Challenges Ø The most common challenges with Selenium WebDriver involve testing dynamic content implemented with technologies such as JavaScript and AJAX. Ø At a high level, the challenge is basically keeping the script informed of state changes in the AUT. Among the most common scenarios faced are: Synchronization problems Stale elements

110 Synchroniza1on Ø Synchronization problems occur when the test script is anticipating changes in the AUT that have not occurred or have not completed. Ø WebDriver provides several mechanisms for dealing with synchronization problems: Implicit Waits Explicit Waits

111 Implicit Waits An implicit wait instructs the WebDriver to wait for up to the specified amount of time for an element to be available, if it is not immediately available. Implicit waits are an ideal solution for handling page load delays. An implicit wait is a setting of the WebDriver instance, and it remains in place for the life of the driver, or until it is explicitly removed. // Add an implicit wait to the driver driver.manage().timeouts().implicitlywait( 10, TimeUnit.SECONDS); // Remove the implicit wait driver.manage().timeouts().implicitlywait( 0, TimeUnit.SECONDS

112 Explicit Waits Explicit waits define a specific condition that should occur before WebDriver continues to execute the script. The until method accepts an ExpectedConditions argument, which is a set of convenient implementations of some of the most common synchronization conditions in browser automation. // Create a new wait that will wait up to 10 seconds WebDriverWait wait = new WebDriverWait(driver, 10); // Specify the condition the driver should wait for WebElement element = wait.until(expectedconditions.elementtobeclickable(by.name( myelement )));

113 Best Prac1ces for Using Waits Ø Configure the driver to use an implicit wait; this will catch a lot of synchronization issues. Ø For synchronization problems that are not solved by an implicit wait, use an explicit wait. Ø Zero-out the implicit wait before using an explicit wait. Otherwise, both waits will be polling the DOM and performance can be severely impacted. Ø Set the implicit wait to the shortest effective timeout, and use explicit waits for longer delays. Just a few seconds can make a big difference on suite run times.

114 Stale Elements A StaleElementException is thrown when the DOM has changed and the WebDriver tries to access an element that has been updated or removed using an invalid reference Stale elements are often caused by asynchronous processes. For example, by using JavaScript an element might be removed from the DOM and replaced by a nearly identical element.

115 Dealing with Stale Elements Tip #1: Store locators, not elements Suppose we store a reference to an element: WebElement element = driver.findelement(by.id( someid )); And some time later, we try to interact with that element: element.click(); If the element has changed, then we will get a StaleElementException. If we instead store a locator: WebElement element() { return driver.findelement(by.id( someid )); } Then we will be updating the reference to the element each time we interact with it, avoiding many stale elements: getelement().click();

116 Dealing with Stale Elements Tip #2: Use JavaScript Injection Consider the following line of code: driver.findelement(by.id( someid )).click(); As far as the JVM is concerned, this is not a single action, but several. Some webpages update elements often and rapidly enough that the element could become stale between the execution of these actions. In this case, try using JavaScript Injection: ((JavascriptExecutor)driver).executeScript( document.findelementbyid( someid ).click); The browser will execute this as a single command.

117 Page Object Pattern

118 Group Discussion Q: What potential challenges do you see with the linear approach to writing test scripts? A: Test suite could become difficult to maintain Adding additional scripts is slow and requires duplication of code If an element or process changes, all references to the element or process must be updated

119 What are Page Objects? A design pattern that models a web application based on its pages and/ or sections of pages. Ø Allow for reusability of elements Ø Establish a single point of maintenance Ø Provide an intuitive organizational model

120 Page Object Example class Tests { } public void test() { login( Bob, password1 ); search( shoes );... } } class AccountLoginPage { private WebElement usernamebox; private WebElement passwordbox; private WebElement submitbutton; public void login(string username, String password) { usernamebox.sendkeys(username); passwordbox.sendkeys(password); submitbutton.click(); }

121 Page Object Example class Tests { void test() { } login( Bob, password1 ); search( shoes );... } } class AccountLoginPage { private WebElement usernamebox; private WebElement passwordbox; private WebElement submitbutton; private WebElement agreecheckbox; public void login(string username, String password) { usernamebox.sendkeys(username); passwordbox.sendkeys(password); agreecheckbox.click(); submitbutton.click(); } Test does not change

122 Page Object Pa]ern Benefits Ø Keep all the WebDriver interactions in one place Ø Adds a layer of abstraction between WebDriver implementation and website/application functionality Ø When underlying source of pages change, updates only need to be made in one place Ø Allows script writers to focus on tests, not on details of WebDriver interactions

123 Page Object Example

124 Automation Frameworks

125 Test Automa1on Considera1ons Ø Technical implementation plan and approach Page object Keyword Ø Technical skills of resources Ø Short term versus long range goals Ø Test data strategy

126 Test Automa1on Considera1ons Ø Agile versus waterfall methodology Release frequency Ø Test environment(s) Ø Maturity level of application under test Ø Levels of testing

127 Test Automa1on Frameworks 1. Linear (Record/Playback) 2. Modular 3. Data Driven 4. Keyword Driven 5. Behavior Driven 6. Hybrid

128 Hybrid Framework Example

129 Automa1on ROI Ø Test automation is an investment in time and money Ø The investment is justified by identifying the potential return-oninvestment (ROI), a ratio of benefits to costs Ø There are several approaches for calculating ROI: Simple ROI Calculation Percentage calculated in terms of the monetary savings that test automation provides Efficiency ROI Calculation Examines test automation benefits in terms of time that is saved on certain portions of the testing effort Risk Reduction ROI Calculation Percentage calculated in terms of the increased quality that results from the increased test coverage provided test automation

130 PuKng it all together 1. Design a simple modular automation framework for qaiquest.org 2. Stub out framework classes/methods needed to facilitate existing linear tests 3. Execute tests using framework concept 4. What obstacles did you have to overcome?

131 Resources seleniumhq.org wikipedia.org developsense.com automatedtestinginstitute.com code.google.com msdn.com w3schools.com w3.abcd.harvard.edu

132 Automated Web Testing with Selenium Training Workshop Copyright 2016 by Zenergy Technologies, Inc. All rights reserved. This material may not be reproduced, displayed, modified or distributed without the express prior written permission of Zenergy Technologies, Inc. For permission, contact If you have comments or questions regarding this document please send them via to: Zenergy Technologies, Inc. 306 Pomona Dr., Suite F Greensboro, North Carolina Telephone: Fax:

@AfterMethod

@AfterMethod 1. What are the annotations used in TestNG? @Test, @BeforeSuite, @AfterSuite, @BeforeTest, @AfterTest, @BeforeClass, @AfterClass, @BeforeMethod, @AfterMethod 2. How do you read data from excel? FileInputStream

More information

ActiveNET Enterprise Solution Company

ActiveNET Enterprise Solution Company ActiveNET Enterprise Solution Company Suryanarayana Selenium Web Application Testing Framework Selenium IDE, RC, WebDriver & Grid 98 48 111 2 88 Mr. Suryanarayana #202, Manjeera Plaza, Opp: Aditya Park

More information

Selenium with Java Syllabus

Selenium with Java Syllabus Selenium with Java Syllabus Training Duration: 55-60 hours (3 class in a week 3 hours per class) Module 1: Test Automation and Selenium Basics Session 1: Overview on Test Automation Disadvantages of Manual

More information

Selenium Testing Course Content

Selenium Testing Course Content Selenium Testing Course Content Introduction What is automation testing? What is the use of automation testing? What we need to Automate? What is Selenium? Advantages of Selenium What is the difference

More information

Selenium Training. Training Topics

Selenium Training. Training Topics Selenium Training Training Topics Chapter 1 : Introduction to Automation Testing What is automation testing? When Automation Testing is needed? When Automation Testing is not needed? What is the use of

More information

*** Any Query *** Mail : 1. Introduction to Selenium. What is Selenium? Different automations tools. Selenium Automation Tools

*** Any Query *** Mail : 1. Introduction to Selenium. What is Selenium? Different automations tools. Selenium Automation Tools @999 (75% off) Learn Advance Selenium Online Video Course # Life time access with new Updates. # Basic to Advance level Course # Total Sessions : 65 Videoes / Total Duration : 138 Hrs # www.stqatools.com

More information

SELENIUM. Courses Offered. Ph: / Course Coverage:- Date:..Timings.. Duration Fees. Testing Tools QTP Load Runner Hadoop

SELENIUM. Courses Offered. Ph: / Course Coverage:- Date:..Timings.. Duration Fees. Testing Tools QTP Load Runner Hadoop SELENIUM Java for Selenium Selenium IDE Selenium WebDriver JUnit Framework TestNG Framework Course Coverage:- SVN Maven DataBase Testing Using Selenium Grid POM(Page Object Model Date:..Timings.. Duration

More information

This is one of the common interview questions in any Automation testing job.

This is one of the common interview questions in any Automation testing job. 1. What is Automation Testing? Automation testing is the process of testing the software using an automation tool to find the defects. In this process, executing the test scripts and generating the results

More information

SELENIUM. SELENIUM COMPONENTS Selenium IDE Selenium RC Selenium Web Driver Selenium Grid

SELENIUM. SELENIUM COMPONENTS Selenium IDE Selenium RC Selenium Web Driver Selenium Grid INTRODUCTION TO AUTOMATION Testing What is automation testing? Different types of Automation Tools 1. Functional Testing Tools 2. Test Management Tools 3. Performance Testing Tools Advantages of automation

More information

SELENIUM TRAINING COURSE CONTENT

SELENIUM TRAINING COURSE CONTENT SECTION 1 : INTRODUCTION SELENIUM TRAINING COURSE CONTENT What is automation testing? When Automation Testing is needed? What is the use of automation testing? Different Automation Tools available in the

More information

1. Selenium Integrated Development Environment (IDE) 2. Selenium Remote Control (RC) 3. Web Driver 4. Selenium Grid

1. Selenium Integrated Development Environment (IDE) 2. Selenium Remote Control (RC) 3. Web Driver 4. Selenium Grid INTRODUCTION 1.0 Selenium Selenium is a free (open source) automated testing suite for web applications across different browsers and platforms. Selenium focuses on automating web-based applications. Testing

More information

Mind Q Systems Private Limited

Mind Q Systems Private Limited Software Testing Tools Introduction Introduction to software Testing Software Development Process Project Vs Product Objectives of Testing Testing Principals Software Development Life Cycle SDLC SDLC Models

More information

Selenium IDE. Steve Kwon, Raphael Huang, Amad Hussain, Mubasil Shamim

Selenium IDE. Steve Kwon, Raphael Huang, Amad Hussain, Mubasil Shamim Selenium IDE Steve Kwon, Raphael Huang, Amad Hussain, Mubasil Shamim Introduction Selenium is a portable software-testing framework for web applications Selenium IDE is a complete integrated development

More information

Selenium Course Content

Selenium Course Content Chapter 1 : Introduction to Automation Testing Selenium Course Content What is automation testing? When Automation Testing is needed? When Automation Testing is not needed? What is the use of automation

More information

The age of automation is going to be the age of 'do it yourself. - Marshall McLuhan

The age of automation is going to be the age of 'do it yourself. - Marshall McLuhan Training Name Automation Software Testing using Selenium WebDriver with Java Training Introduction The age of automation is going to be the age of 'do it yourself. - Marshall McLuhan Selenium automates

More information

SeU Certified Selenium Engineer (CSE) Syllabus

SeU Certified Selenium Engineer (CSE) Syllabus SeU Certified Selenium Engineer (CSE) Syllabus Released Version 2018 Selenium United Version 2018, released 23.08.2018 Page 1 of 16 Copyright Notice This document may be copied in its entirety, or extracts

More information

Introduction to Automation. What is automation testing Advantages of Automation Testing How to learn any automation tool Types of Automation tools

Introduction to Automation. What is automation testing Advantages of Automation Testing How to learn any automation tool Types of Automation tools Introduction to Automation What is automation testing Advantages of Automation Testing How to learn any automation tool Types of Automation tools Introduction to Selenium What is Selenium Use of Selenium

More information

AUTOMATION TESTING FRAMEWORK FOR LUMINOUS LMS

AUTOMATION TESTING FRAMEWORK FOR LUMINOUS LMS AUTOMATION TESTING FRAMEWORK FOR LUMINOUS LMS CONTENT Introduction. List of tools used to create Testing Framework Luminous LMS work scheme Testing Framework work scheme Automation scenario set lifecycle

More information

SeU Certified Selenium Engineer (CSE) Syllabus

SeU Certified Selenium Engineer (CSE) Syllabus SeU Certified Selenium Engineer (CSE) Syllabus Released Version 2018 Selenium United Version 2018, released 23.08.2018 Page 1 of 16 Copyright Notice This document may be copied in its entirety, or extracts

More information

But before understanding the Selenium WebDriver concept, we need to know about the Selenium first.

But before understanding the Selenium WebDriver concept, we need to know about the Selenium first. As per the today s scenario, companies not only desire to test software adequately, but they also want to get the work done as quickly and thoroughly as possible. To accomplish this goal, organizations

More information

EXPERT TRAINING PROGRAM [Selenium 2.0 / WebDriver]

EXPERT TRAINING PROGRAM [Selenium 2.0 / WebDriver] EXPERT TRAINING PROGRAM [Selenium 2.0 / WebDriver] COURSE OVERVIEW Automation and Automation Concepts Introduction to Test Automation Test Automation Truths or Myths Where to use Test Automation and Where

More information

ICOM 4015 Advanced Programming Laboratory. Chapter 1 Introduction to Eclipse, Java and JUnit

ICOM 4015 Advanced Programming Laboratory. Chapter 1 Introduction to Eclipse, Java and JUnit ICOM 4015 Advanced Programming Laboratory Chapter 1 Introduction to Eclipse, Java and JUnit University of Puerto Rico Electrical and Computer Engineering Department by Juan E. Surís 1 Introduction This

More information

Pace University. Fundamental Concepts of CS121 1

Pace University. Fundamental Concepts of CS121 1 Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction

More information

Selenium. Duration: 50 hrs. Introduction to Automation. o Automating web application. o Automation challenges. o Automation life cycle

Selenium. Duration: 50 hrs. Introduction to Automation. o Automating web application. o Automation challenges. o Automation life cycle Selenium Duration: 50 hrs. Introduction to Automation o Automating web application o Automation challenges o Automation life cycle o Role of selenium in test automation o Overview of test automation tools

More information

Java Programming Basics

Java Programming Basics Java Programming Basics Why Java for Selenium Installing Java Installing Eclipse First Eclipse Project First Java program Concept of class file Datatypes in Java String class and functions Practical Examples

More information

BY: ATASHI SAMADDAR 1

BY: ATASHI SAMADDAR 1 BY: ATASHI SAMADDAR 1 CONTENTS OVERVIEW... 3 WHAT IS SELENIUM?... 3 SELENIUM VARIANTS... 4 SELENIUM INSTALLATION... 5 CONFIGURATION STEPS:... 6 HOW SELENIUM WORKS?... 20 SELENIUM IDE... 21 FEATURES...21

More information

Course Outline. Introduction to java

Course Outline. Introduction to java Course Outline 1. Introduction to OO programming 2. Language Basics Syntax and Semantics 3. Algorithms, stepwise refinements. 4. Quiz/Assignment ( 5. Repetitions (for loops) 6. Writing simple classes 7.

More information

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

More information

Koenig Solutions Pvt. Ltd. Selenium with C#

Koenig Solutions Pvt. Ltd. Selenium with C# Selenium Course with C# Overview: Selenium with C# is a free automation testing tool for web applications. It is able to work with different browsers like Chrome, Firefox, IE, Opera and simulate human

More information

Class 1 Introduction to Selenium, Software Test Life Cycle.

Class 1 Introduction to Selenium, Software Test Life Cycle. Class 1 Introduction to Selenium, Software Test Life Cycle. I) Introduction to Selenium 1) What is Selenium? 2) History of the Selenium Project 3) Selenium Components / Selenium s Tool Suite 4) Platforms

More information

Selenium Testing Training

Selenium Testing Training About Intellipaat Intellipaat is a fast-growing professional training provider that is offering training in over 150 most sought-after tools and technologies. We have a learner base of 600,000 in over

More information

CENTRALIZED UI AUTOMATION FOR SAAS APPLICATION

CENTRALIZED UI AUTOMATION FOR SAAS APPLICATION CENTRALIZED UI AUTOMATION FOR SAAS APPLICATION 1 Sowmya Nagaraju M Tech Computer networks engineering BMS College of Engineering (Affiliated to VTU) Bull Temple Road, Bangalore-19 Abstract - The purpose

More information

Introduction: Manual Testing :

Introduction: Manual Testing : : What is Automation Testing? Use of Automation. Where do we use. Tools that Do Automation. Web Applications vs Standalone Applications. What is selenium? How selenium works. Manual Testing : HTML: Detailed

More information

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson Introduction History, Characteristics of Java language Java Language Basics Data types, Variables, Operators and Expressions Anatomy of a Java Program

More information

Comprehensive AngularJS Programming (5 Days)

Comprehensive AngularJS Programming (5 Days) www.peaklearningllc.com S103 Comprehensive AngularJS Programming (5 Days) The AngularJS framework augments applications with the "model-view-controller" pattern which makes applications easier to develop

More information

Software Testing

Software Testing Ali Complex, 2nd block, Kormangala, Madiwala, Bengaluru-560068 Page 1 What is Software Testing? Software Testing is the process of testing software with the purpose of finding bugs and ensuring that it

More information

WA1278 Introduction to Java Using Eclipse

WA1278 Introduction to Java Using Eclipse Lincoln Land Community College Capital City Training Center 130 West Mason Springfield, IL 62702 217-782-7436 www.llcc.edu/cctc WA1278 Introduction to Java Using Eclipse This course introduces the Java

More information

(Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn? New Batches Info

(Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn? New Batches Info (Complete Package) SELENIUM CORE JAVA We are ready to serve Latest Testing Trends, Are you ready to learn? New Batches Info START DATE : TIMINGS : DURATION : TYPE OF BATCH : FEE : FACULTY NAME : LAB TIMINGS

More information

Eclipse. JVM, main method and using Eclipse. Dr. Siobhán Drohan. Produced by: Department of Computing and Mathematics

Eclipse. JVM, main method and using Eclipse. Dr. Siobhán Drohan. Produced by: Department of Computing and Mathematics Eclipse JVM, main method and using Eclipse Produced by: Dr. Siobhán Drohan Department of Computing and Mathematics http://www.wit.ie/ Topics list Files in Java. Java Virtual Machine. main method. Eclipse

More information

13 th Windsor Regional Secondary School Computer Programming Competition

13 th Windsor Regional Secondary School Computer Programming Competition SCHOOL OF COMPUTER SCIENCE 13 th Windsor Regional Secondary School Computer Programming Competition Hosted by The School of Computer Science, University of Windsor WORKSHOP I [ Overview of the Java/Eclipse

More information

Selenium Online Training Brochure

Selenium Online Training Brochure Selenium Online Training Brochure Selenium Online Training in Real-time orientation, Selenium WebDriver, Core Java Programming, TestNG Testing Framework, Maven Integration, Jenkins Integration and Selenium

More information

A faster approach for accessing Snap Deal URL using Multi browser with Selenium Web Driver

A faster approach for accessing Snap Deal URL using Multi browser with Selenium Web Driver A faster approach for accessing Snap Deal URL using Multi browser with Selenium Web Driver 1 Mahan Sunhare, 2 Abhishek Tiwari Student (M-tech), Guide MIT, Ujjain, India ABSTRACT: In current paper, we are

More information

STQA Mini Project No. 2

STQA Mini Project No. 2 Fourth Year Computer STQA Mini Project No. 2 2.1 Title R (2) C (4) V (2) T (2) Total (10) Dated Sign Create a small web-based application by selecting relevant system environment/platform and programming

More information

Mind Q Systems Private Limited

Mind Q Systems Private Limited SELENIUM Course Content. What is automation testing When to go for automation Different Automation Tools (vendor & open source tools) Advantages of Automation Criteria for Automation Difference between

More information

JavaScript Specialist v2.0 Exam 1D0-735

JavaScript Specialist v2.0 Exam 1D0-735 JavaScript Specialist v2.0 Exam 1D0-735 Domain 1: Essential JavaScript Principles and Practices 1.1: Identify characteristics of JavaScript and common programming practices. 1.1.1: List key JavaScript

More information

Chapter 6 Introduction to Defining Classes

Chapter 6 Introduction to Defining Classes Introduction to Defining Classes Fundamentals of Java: AP Computer Science Essentials, 4th Edition 1 Objectives Design and implement a simple class from user requirements. Organize a program in terms of

More information

Introduction. Introduction to OOP with Java. Lecture 01: Introduction to OOP with Java - AKF Sep AbuKhleiF -

Introduction. Introduction to OOP with Java. Lecture 01: Introduction to OOP with Java - AKF Sep AbuKhleiF - Introduction to OOP with Java Instructor: AbuKhleif, Mohammad Noor Sep 2017 www.abukhleif.com Lecture 01: Introduction Instructor: AbuKhleif, Mohammad Noor Sep 2017 www.abukhleif.com AbuKhleiF - www.abukhleif.com

More information

CS520 Setting Up the Programming Environment for Windows Suresh Kalathur. For Windows users, download the Java8 SDK as shown below.

CS520 Setting Up the Programming Environment for Windows Suresh Kalathur. For Windows users, download the Java8 SDK as shown below. CS520 Setting Up the Programming Environment for Windows Suresh Kalathur 1. Java8 SDK Java8 SDK (Windows Users) For Windows users, download the Java8 SDK as shown below. The Java Development Kit (JDK)

More information

MANUAL+ SELENIUM CURRICULUM

MANUAL+ SELENIUM CURRICULUM MANUAL+ SELENIUM CURRICULUM Software Organization and Process Overviews: 2 Hrs Software Organization Types and Process Overviews Overviews of Software Quality Testing Quality Assurance and Quality Control

More information

Introduction to OOP with Java. Instructor: AbuKhleif, Mohammad Noor Sep 2017

Introduction to OOP with Java. Instructor: AbuKhleif, Mohammad Noor Sep 2017 Introduction to OOP with Java Instructor: AbuKhleif, Mohammad Noor Sep 2017 Lecture 01: Introduction Instructor: AbuKhleif, Mohammad Noor Sep 2017 Instructor AbuKhleif, Mohammad Noor Studied Computer Engineer

More information

Java Programming with Eclipse

Java Programming with Eclipse One Introduction to Java 2 Usage of Java 3 Structure of Java 4 Flexibility of Java Programming 5 Using the Eclipse Software 6 Two Running Java in Eclipse 7 Introduction 8 Using Eclipse 9 Workspace Launcher

More information

Testers can write good code too. Corina

Testers can write good code too. Corina Testers can write good code too Corina Pip https://iamalittletester.wordpress.com/ Twitter: Blog: https://iamalittletester.wordpress.com/ Travel blog: https://travelwithcori.wordpress.com/ Photos: https://www.flickr.com/photos/capreoara

More information

Chapter 1 Introduction to Java

Chapter 1 Introduction to Java Chapter 1 Introduction to Java 1 Why Java? The answer is that Java enables users to develop and deploy applications on the Internet for servers, desktop computers, and small hand-held devices. The future

More information

1. Go to the URL Click on JDK download option

1. Go to the URL   Click on JDK download option Download and installation of java 1. Go to the URL http://www.oracle.com/technetwork/java/javase/downloads/index.html Click on JDK download option 2. Select the java as per your system type (32 bit/ 64

More information

Application Development in JAVA. Data Types, Variable, Comments & Operators. Part I: Core Java (J2SE) Getting Started

Application Development in JAVA. Data Types, Variable, Comments & Operators. Part I: Core Java (J2SE) Getting Started Application Development in JAVA Duration Lecture: Specialization x Hours Core Java (J2SE) & Advance Java (J2EE) Detailed Module Part I: Core Java (J2SE) Getting Started What is Java all about? Features

More information

Java Primer 1: Types, Classes and Operators

Java Primer 1: Types, Classes and Operators Java Primer 1 3/18/14 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser, Wiley, 2014 Java Primer 1: Types,

More information

Java SE7 Fundamentals

Java SE7 Fundamentals Java SE7 Fundamentals Introducing the Java Technology Relating Java with other languages Showing how to download, install, and configure the Java environment on a Windows system. Describing the various

More information

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this

More information

SDKs - Eclipse. SENG 403, Tutorial 2

SDKs - Eclipse. SENG 403, Tutorial 2 SDKs - SENG 403, Tutorial 2 AGENDA - SDK Basics - - How to create Project - How to create a Class - Run Program - Debug Program SDK Basics Software Development Kit is a set of software development tools

More information

SELENIUM - REMOTE CONTROL

SELENIUM - REMOTE CONTROL http://www.tutorialspoint.com/selenium/selenium_rc.htm SELENIUM - REMOTE CONTROL Copyright tutorialspoint.com Selenium Remote Control RC was the main Selenium project that sustained for a long time before

More information

Web Site Development with HTML/JavaScrip

Web Site Development with HTML/JavaScrip Hands-On Web Site Development with HTML/JavaScrip Course Description This Hands-On Web programming course provides a thorough introduction to implementing a full-featured Web site on the Internet or corporate

More information

Eclipse Tutorial. For Introduction to Java Programming By Y. Daniel Liang

Eclipse Tutorial. For Introduction to Java Programming By Y. Daniel Liang Eclipse Tutorial For Introduction to Java Programming By Y. Daniel Liang This supplement covers the following topics: Getting Started with Eclipse Choosing a Perspective Creating a Project Creating a Java

More information

webdriverplus Release 0.1

webdriverplus Release 0.1 webdriverplus Release 0.1 November 18, 2016 Contents 1 The most simple and powerful way to use Selenium with Python 1 2 Getting started 3 3 Overview 5 4 Topics 19 i ii CHAPTER 1 The most simple and powerful

More information

Automation: Simulation of any Human work by a System or a Tool is known as Automation.

Automation: Simulation of any Human work by a System or a Tool is known as Automation. Automation: Simulation of any Human work by a System or a Tool is known as Automation. Advantages of Automation: 1. Reliable- Accuracy on actions which is performed n number of times also. Consistency

More information

Learning Objectives of CP-SAT v 1.3

Learning Objectives of CP-SAT v 1.3 Learning Objectives of CP-SAT v 1.3 Knowledge with experience is power; certification is just a by-product What is CP-SAT? CP-SAT stands for Certified Practitioner Selenium Automation Testing certification

More information

CS 231 Data Structures and Algorithms, Fall 2016

CS 231 Data Structures and Algorithms, Fall 2016 CS 231 Data Structures and Algorithms, Fall 2016 Dr. Bruce A. Maxwell Department of Computer Science Colby College Course Description Focuses on the common structures used to store data and the standard

More information

INDEX. A SIMPLE JAVA PROGRAM Class Declaration The Main Line. The Line Contains Three Keywords The Output Line

INDEX. A SIMPLE JAVA PROGRAM Class Declaration The Main Line. The Line Contains Three Keywords The Output Line A SIMPLE JAVA PROGRAM Class Declaration The Main Line INDEX The Line Contains Three Keywords The Output Line COMMENTS Single Line Comment Multiline Comment Documentation Comment TYPE CASTING Implicit Type

More information

MEAP Edition Manning Early Access Program Get Programming with Java Version 1

MEAP Edition Manning Early Access Program Get Programming with Java Version 1 MEAP Edition Manning Early Access Program Get Programming with Java Version 1 Copyright 2018 Manning Publications For more information on this and other Manning titles go to www.manning.com welcome First,

More information

What is the Selendroid?

What is the Selendroid? When you publish an app to Google play, it must be well tested to avoid the potential bugs. There's a ton of test scenarios that should be executed before publishing an app. To save the testing effort,

More information

5/3/2006. Today! HelloWorld in BlueJ. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont.

5/3/2006. Today! HelloWorld in BlueJ. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont. Today! Build HelloWorld yourself in BlueJ and Eclipse. Look at all the Java keywords. Primitive Types. HelloWorld in BlueJ 1. Find BlueJ in the start menu, but start the Select VM program instead (you

More information

Manual Testing. Software Development Life Cycle. Verification. Mobile Testing

Manual Testing.  Software Development Life Cycle. Verification. Mobile Testing 10 Weeks (Weekday Batches) or 12 Weekends (Weekend batches) To become a Professional Software Tester To enable the students to become Employable Manual Testing Fundamental of Testing What is software testing?

More information

Qualys Browser Recorder User Guide Version April 6, 2018

Qualys Browser Recorder User Guide Version April 6, 2018 Qualys Browser Recorder User Guide Version 1.0.0 April 6, 2018 Copyright 2018 by Qualys, Inc. All Rights Reserved. Qualys and the Qualys logo are registered trademarks of Qualys, Inc. All other trademarks

More information

Object-Oriented Programming

Object-Oriented Programming Object-Oriented Programming 3/18/14 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser, Wiley, 2014 Object-Oriented

More information

Learning Objectives of CP-SAT v 1.31

Learning Objectives of CP-SAT v 1.31 Learning Objectives of CP-SAT v 1.31 Knowledge with experience is power; certification is just a by-product What is CP-SAT? CP-SAT stands for Certified Professional Selenium Automation Testing certification

More information

(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days

(800) Toll Free (804) Fax   Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days Course Description This course introduces the Java programming language and how to develop Java applications using Eclipse 3.0. Students learn the syntax of the Java programming language, object-oriented

More information

CS 251 Intermediate Programming Methods and Classes

CS 251 Intermediate Programming Methods and Classes CS 251 Intermediate Programming Methods and Classes Brooke Chenoweth University of New Mexico Fall 2018 Methods An operation that can be performed on an object Has return type and parameters Method with

More information

Java Programming Constructs Java Programming 2 Lesson 1

Java Programming Constructs Java Programming 2 Lesson 1 Java Programming Constructs Java Programming 2 Lesson 1 Course Objectives Welcome to OST's Java 2 course! In this course, you'll learn more in-depth concepts and syntax of the Java Programming language.

More information

CS 251 Intermediate Programming Methods and More

CS 251 Intermediate Programming Methods and More CS 251 Intermediate Programming Methods and More Brooke Chenoweth University of New Mexico Spring 2018 Methods An operation that can be performed on an object Has return type and parameters Method with

More information

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Course Overview This course teaches programmers the skills necessary to create Java programming system applications and satisfies the

More information

Testing Masters Technologies. Selenium FAQs

Testing Masters Technologies. Selenium FAQs Selenium FAQs 1. What is Stale Element Exception? How to handle it? A WebElement is a reference to an element in the DOM. A StaleElementException is thrown when the element you were interacting is destroyed

More information

Module Road Map. 7. Version Control with Subversion Introduction Terminology

Module Road Map. 7. Version Control with Subversion Introduction Terminology Module Road Map 1. Overview 2. Installing and Running 3. Building and Running Java Classes 4. Refactoring 5. Debugging 6. Testing with JUnit 7. Version Control with Subversion Introduction Terminology

More information

Chapter 4 Defining Classes I

Chapter 4 Defining Classes I Chapter 4 Defining Classes I This chapter introduces the idea that students can create their own classes and therefore their own objects. Introduced is the idea of methods and instance variables as the

More information

MARS AREA SCHOOL DISTRICT Curriculum TECHNOLOGY EDUCATION

MARS AREA SCHOOL DISTRICT Curriculum TECHNOLOGY EDUCATION Course Title: Java Technologies Grades: 10-12 Prepared by: Rob Case Course Unit: What is Java? Learn about the history of Java. Learn about compilation & Syntax. Discuss the principles of Java. Discuss

More information

webdriver selenium 08FE064A22BF82F5A04B63153DCF68BB Webdriver Selenium 1 / 6

webdriver selenium 08FE064A22BF82F5A04B63153DCF68BB Webdriver Selenium 1 / 6 Webdriver Selenium 1 / 6 2 / 6 3 / 6 Webdriver Selenium Selenium WebDriver If you want to create robust, browser-based regression automation suites and tests; scale and distribute scripts across many environments

More information

Test Automation Integration with Test Management QAComplete

Test Automation Integration with Test Management QAComplete Test Automation Integration with Test Management QAComplete This User's Guide walks you through configuring and using your automated tests with QAComplete's Test Management module SmartBear Software Release

More information

What s NetBeans? Like Eclipse:

What s NetBeans? Like Eclipse: What s NetBeans? Like Eclipse: It is a free software / open source platform-independent software framework for delivering what the project calls "richclient applications" It is an Integrated Development

More information

Software and Programming 1

Software and Programming 1 Software and Programming 1 Lab 1: Introduction, HelloWorld Program and use of the Debugger 17 January 2019 SP1-Lab1-2018-19.pptx Tobi Brodie (tobi@dcs.bbk.ac.uk) 1 Module Information Lectures: Afternoon

More information

Java Bytecode (binary file)

Java Bytecode (binary file) Java is Compiled Unlike Python, which is an interpreted langauge, Java code is compiled. In Java, a compiler reads in a Java source file (the code that we write), and it translates that code into bytecode.

More information

Java Language. Programs. Computer programs, known as software, are instructions to the computer. You tell a computer what to do through programs.

Java Language. Programs. Computer programs, known as software, are instructions to the computer. You tell a computer what to do through programs. Introduction to Programming Java Language Programs Computer programs, known as software, are instructions to the computer. You tell a computer what to do through programs. Programs are written using programming

More information

Chapter 1 Introduction to Computers, Programs, and Java

Chapter 1 Introduction to Computers, Programs, and Java Chapter 1 Introduction to Computers, Programs, and Java 1 Programs Computer programs, known as software, are instructions to the computer. You tell a computer what to do through programs. Without programs,

More information

1 Shyam sir JAVA Notes

1 Shyam sir JAVA Notes 1 Shyam sir JAVA Notes 1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write

More information

Programming the World Wide Web by Robert W. Sebesta

Programming the World Wide Web by Robert W. Sebesta Programming the World Wide Web by Robert W. Sebesta Tired Of Rpg/400, Jcl And The Like? Heres A Ticket Out Programming the World Wide Web by Robert Sebesta provides students with a comprehensive introduction

More information

1.00 Lecture 2. What s an IDE?

1.00 Lecture 2. What s an IDE? 1.00 Lecture 2 Interactive Development Environment: Eclipse Reading for next time: Big Java: sections 3.1-3.9 (Pretend the method is main() in each example) What s an IDE? An integrated development environment

More information

International Journal of Advance Engineering and Research Development. Proof of concept (Poc) selenium web driver based Automation framework

International Journal of Advance Engineering and Research Development. Proof of concept (Poc) selenium web driver based Automation framework Scientific Journal of Impact Factor (SJIF): 4.72 International Journal of Advance Engineering and Research Development Volume 4, Issue 7, July -2017 e-issn (O): 2348-4470 p-issn (P): 2348-6406 Proof of

More information

Automated Web Tests withselenium2

Automated Web Tests withselenium2 Automated Web Tests withselenium2 Java Forum Stuttgart 2013 Mario Goller Trivadis AG BASEL BERN LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN 1 AGENDA 1. Selenium

More information

Sri Vidya College of Engineering & Technology

Sri Vidya College of Engineering & Technology UNIT I INTRODUCTION TO OOP AND FUNDAMENTALS OF JAVA 1. Define OOP. Part A Object-Oriented Programming (OOP) is a methodology or paradigm to design a program using classes and objects. It simplifies the

More information

Lab 1: Getting Started with IBM Worklight Lab Exercise

Lab 1: Getting Started with IBM Worklight Lab Exercise Lab 1: Getting Started with IBM Worklight Lab Exercise Table of Contents 1. Getting Started with IBM Worklight... 3 1.1 Start Worklight Studio... 5 1.1.1 Start Worklight Studio... 6 1.2 Create new MyMemories

More information

IBM WebSphere Java Batch Lab

IBM WebSphere Java Batch Lab IBM WebSphere Java Batch Lab What are we going to do? First we are going to set up a development environment on your workstation. Download and install Eclipse IBM WebSphere Developer Tools IBM Liberty

More information

Computer Components. Software{ User Programs. Operating System. Hardware

Computer Components. Software{ User Programs. Operating System. Hardware Computer Components Software{ User Programs Operating System Hardware What are Programs? Programs provide instructions for computers Similar to giving directions to a person who is trying to get from point

More information

SeleniumJava Training Solution

SeleniumJava Training Solution SeleniumJava Training Solution Online and classroom training Contact Info email: seleniumjava.training@gmail.com Mob: +91-9535776954 (seleniumjava.training@gmail.com) Page 1 Selenium Intro ***************************

More information