In Software Testing we need to verify the output of test case against a predefined set of Test Data. Selenium provides various Selenese commands to achieve this. Let us try to explore some of the situations we come across in Test Automation.
Selenium provides several different APIs for automating the Assertions.
I have created a sample web site and uploaded to Google docs. Download link
Download the sample web site and unzip into a folder. I will be using the same web site in my sample Selenium code.
Following are some of the Selenium assertions:
Let us try to use these assertions in the Selenium Test by recording a test. After recording we will export them into JUnit format and compare them to the recorded test in the table format in Selenium IDE.
In the above picture we can see the exact commands used in the Selenium IDE for assertions whereas in the below code which is exported in JUnit format from the Selenium IDE, only assertTrue and assertEquals are present. Here, other selenium methods such as selenium.getSelectedLabel("city"), selenium.isTextPresent("Name of the Customer"), and selenium.getAlert() are used for assertions.
package com.selftechy.assertions; /* * Author - Seetaram Hegde */ import com.thoughtworks.selenium.*; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.Assert; public class SeleniumAssertions extends SeleneseTestCase { @Before public void setUp() throws Exception { selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://www.sqajobs.com/"); selenium.start(); selenium.windowMaximize(); } @Test public void testAssertions() throws Exception { //change the below directory path to the one where you have unzipped the sample website files selenium.open("file:///F:/Helios-Workspace/Sample%20Website/CreateAccount.htm"); selenium.type("FirstName", "seetaram"); selenium.type("Lname", "hegde"); selenium.type("street", "HSR Layout"); selenium.click("male"); selenium.click("kannada"); selenium.click("english"); selenium.click("hindi"); selenium.click("Save"); assertEquals("New Account Created", selenium.getAlert()); selenium.click("link=Click to View Customer Information"); selenium.waitForPageToLoad("30000"); Thread.sleep(200); assertTrue(selenium.isTextPresent("Below table contains the information about the Customer's transactions")); assertTrue(selenium.isTextPresent("Name of the Customer")); selenium.click("link=Go to Account Creation Screen"); selenium.waitForPageToLoad("30000"); Thread.sleep(200); assertEquals("Bangalore", selenium.getSelectedLabel("city")); } @After public void tearDown() throws Exception { //selenium.stop(); } }
Use the following Selenium APIs for assertions:
There are some more Selenium APIs available but above are the one’s which are most regularly used.