Blog to understand automation concepts in QTP, Selenium Webdriver and Manual Testing concepts

Element Identification using Selenium WebDriver: Questions and Answers

This post explains the questions on understanding how web elements are identified by Selenium WebDriver.This covers findElement, findElements, various locators and profiling using WebDriver.


Question 1: What is the method used to launch URL using Selenium WebDriver?

Answer: In Firefox, we can set the homepage as the required URL as shown in the code below. This will launch the URL set in homepage on launching the driver.

FirefoxProfile profile = new FirefoxProfile();

profile.setPreference("browser.startup.homepage","http://www.google.com");

//We will provide the profile used as argument for Firefox Driver.

WebDriver driver = new FirefoxDriver(profile);


In case, we do not want to use profile, we can use the get method to launch the URL.

WebDriver driver = new FirefoxDriver();

driver.get("https://www.google.com");


Question 2: What is the difference between findElement and findelements method in Selenium?

Answer: To locate an element in the page, we use findElement method whereas findElements gives the collection of web elements in the Page.

Syntax for findElement is:

WebElement tableinfo = driver.findElement(By.className("tableClsName"));


This will give the first element in the page with className as “tableClsName”. Now once the element is recognized, we can perform action on the WebElement. Suppose the element is a button, we can click on the button as shown below:

Tableinfo.click();


Suppose the WebElement is an input box, we can insert data in the input box as shown below:

Tableinfo.SendKeys(“This is a test”);


Syntax for findElements is:

List<WebElement> tabledata = tableinfo.findElements(By.tagName("td"));


This will give collection of all elements in the page with className as “td”.
We can further work on the collection of the object and extract the required information or perform actions on the required webElement as shown below:

List<WebElement> tabledata = tableinfo.findElements(By.tagName("td"));

for (int iCnt = 0;i<tabledata.size();iCnt++)

 {

String strData = tabledata.get(iCnt).getText() ;

If(strData.contentEquals(“this is the row”))

{

System.out.println(“Web Element Found”)

iCnt = tabledata.size()-1;

}

}


Question 3: What are the value ways to identify an object in Selenium WebDriver?

Answer: Below are the various locators by which elements can be identified in Selenium WebDriver:

            1. Id:  Identifies WebElement by the ‘Id’ attribute.

            2. ClassName: Identifies webelement by the ‘class’ attribute.

            3. cssSelector: Identifies element based on the css of the webElement.

            4. linkText: Identifies element by the actual text of the link. Text should match exactly with the link text.

            5. Name: Identifies webelement by the ‘name’ attribute.  

            6. partiallinkText: Identifies element by the actual text of the link. The link is identified on partial match of text.

           7. tagName: Identifies an object by the tagName of the webElement.

           8. xpath: Identifies an object by the xpath of the object.


Question 4: Below is a picture of google Page, how can we identify the inputbox for search using the various locators identifier?

Input box object identification

Answer: The WebElement can be identified by different locators as shown below:
         1.  Id:  WebElement Elem = driver.findElement(By.id(“gbqfq”));
         2.  ClassName:  WebElement Elem = driver.findElement(By.className(“gbqfif”);
         3.  cssSelector: WebElement Elem = driver.findElement(By.cssSelector(“input#gbqfq”);
         4.  linkText:  Not Applicable as the element is an input box
         5.  Name: WebElement Elem = driver.findElement(By.Name(“q”);
         6.  partiallinkText: Not Applicable as the element is an input box 
         7.  tagName:  WebElement Elem = driver.findElement(By.tagName(“input”);
         8.  xpath:  WebElement Elem = driver.findElement(By.xpath(“//input[@className = ‘gbqfif’]”);

Question 5: I want to identify the title of the page is displayed properly. What will be the code to verify this?

Answer: Using driver.getTitle, we can get the title of the current Page.

if(driver.getTitle().contentEquals("Rediff Home Page"))

{

         System.out.println(“Correct Page is displayed);

}

else

{

       System.out.println(“InCorrect Page is displayed);     

}



No comments:

Post a Comment