WebElement interface methods examples in selenium - part 1 | Understanding of methods getText(), sendKeys(), clear(), getAttribute() and click() for radio button and check box

Sadakar Pochampalli
JasperSoft BI Suite Tutorials - Sadakar Pochampalli )

Hi , In this post - I'm writing my learning experiences on various methods of "WebElement" interface.
Test site courtesy : 

Watch the below ~1 min video for end-to-end execution 
getText()
  • getText() method gets you the visible text or inner text of an element. 
  • That is it fetches text between the opening and closing tags. 
  • For instance, the following text between bold tags can be fetched using getText() method.
    <b xpath="1">This is sample text.</b>
  • Store the locator in a Weblement variable and then use getText()
    //getText() example --> locate text "This is sample text." on page and display the text
    WebElement ThisIsSimpleText
    = driver.findElement(By.xpath("//b[contains(text(),'This is sample text.')]"));
    String displayThisIsSimpleText
    = ThisIsSimpleText.getText();
    System
    .out.println(displayThisIsSimpleText);
sendKeys()
  • This method allows users to enter data into editable elements such as text boxes or search boxes.
  • For instance, first name is a text box input and using sendKeys() method enter input value
    <input id="fname" type="text" name="firstName" xpath="1">
  • Code snippet
    //sendKeys("sadakar") example --> locate TextBox input and enter first name
    WebElement firstName
    = driver.findElement(By.xpath("//input[@id='fname']"));
    firstName
    .sendKeys("Sadakar");
clear()
  • clear() method clears any text already entered or displayed in text box or search box inputs. 
  • Some applications may use default values in editable forms so clear them before entering new.
  • For instance, clear the already existing text in "first name" text box and enter new value
    //clear() --> clear TextBox input and re-enter first name
    firstName
    .clear();
    firstName
    .sendKeys("Hasini");
getAttribute("<attribute>")
  • getAttribute() method returns the current value of a given attribute as a string.
    <input id="fname" type="text" name="firstName" xpath="1">
  • id, type, name , xpath and vlaue(not given above statement) are attributes of first name element HTML 
  • For instance, the following snippet for firstname text field fetches the value displayed on the form then the values of the corresponding attributes
    //getAttribute("<attribute>") --> <input id="fname" type="text" name="firstName">
    firstName
    .getAttribute("value");
    System
    .out.println("<input id=\"fname\" type=\"text\" name=\"firstName\">");
    System
    .out.println("Value of value attribute="+firstName.getAttribute("value"));
    System
    .out.println("Value of id attribute="+firstName.getAttribute("id"));
    System
    .out.println("Value of type attribute="+firstName.getAttribute("type"));
    System
    .out.println("Value of name attribute="+firstName.getAttribute("name"));
Handling radio buttons and check boxes using - click() method
  • Toggling(select or deselect) on/off are the actions performed for radio buttons or check boxes. 
  • Using click() method toggling can be done. 
  • For instance, take a look at the following code snippet - "male" radio button and check boxes for testings labels are selected.
    //radio button click example --> locate "male" radio button and select it
    WebElement male
    = driver.findElement(By.xpath("//input[@id='male']"));
    male
    .click();

    //check box click example - locate "Automation Testing" check box and tick it
    WebElement automationTesting
    = driver.findElement(By.xpath("//input[@class='Automation']"));
    automationTesting
    .click();

    //check box click example - locate "Performance Testing" check box and tick it
    WebElement performanceTesting
    = driver.findElement(By.xpath("//input[@class='Performance']"));
    performanceTesting
    .click();

Complete java class for above examples: WebElementInterfaceMethodsDemo.java
package selenium.webelement.methods;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.PageLoadStrategy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeDriverService;
import org.openqa.selenium.chrome.ChromeOptions;

public class WebElementInterfaceMethodsDemo {

public static void main(String[] args) {

WebDriver driver
;

//loading Chrome driver from physical drive
System
.setProperty("webdriver.chrome.driver", "D:\\006_trainings\\chromedriver.exe");

System
.setProperty("webdriver.chrome.silentOutput", "true");
//System.setProperty(ChromeDriverService.CHROME_DRIVER_SILENT_OUTPUT_PROPERTY, "true");

//launch the browser
driver
= new ChromeDriver();

//navigate to site
driver
.navigate().to("https://www.testandquiz.com/selenium/testing.html");

//maximize the browser
driver
.manage().window().maximize();

//getText() example --> locate text "This is sample text." on page and display the text
WebElement ThisIsSimpleText
= driver.findElement(By.xpath("//b[contains(text(),'This is sample text.')]"));
String displayThisIsSimpleText
= ThisIsSimpleText.getText();
System
.out.println(displayThisIsSimpleText);

//sendKeys("sadakar") example --> locate TextBox input and enter first name
WebElement firstName
= driver.findElement(By.xpath("//input[@id='fname']"));
firstName
.sendKeys("Sadakar");

//clear() --> clear TextBox input and re-enter first name
firstName
.clear();
firstName
.sendKeys("Hasini");

//getAttribute("<attribute>") --> <input id="fname" type="text" name="firstName">
firstName
.getAttribute("value");
System
.out.println("<input id=\"fname\" type=\"text\" name=\"firstName\">");
System
.out.println("Value of value attribute="+firstName.getAttribute("value"));
System
.out.println("Value of id attribute="+firstName.getAttribute("id"));
System
.out.println("Value of type attribute="+firstName.getAttribute("type"));
System
.out.println("Value of name attribute="+firstName.getAttribute("name"));

//radio button click example --> locate "male" radio button and select it
WebElement male
= driver.findElement(By.xpath("//input[@id='male']"));
male
.click();

//check box click example - locate "Automation Testing" check box and tick it
WebElement automationTesting
= driver.findElement(By.xpath("//input[@class='Automation']"));
automationTesting
.click();

WebElement performanceTesting
= driver.findElement(By.xpath("//input[@class='Performance']"));
performanceTesting
.click();

//close the browser
driver
.close();

//close all the browsers opened by WebDriver during execution and quit the session
driver
.quit();
}
}
Feedback
randomness