In my previous posts, I explained about isDisplayed and
isEnabled methods. In this post I am going to explain the difference between
isDisplayed and isEnabled methods.
Index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <div id="div1"> <h1 id="header1">Simple application to demonstrate Selenium webdriver</h1> </div> <div id="div2"> <p id="para1">WebDriver interface provides number of methods to locate elements in a web page. You can locate an element by using class name, id, name, linktext etc.,</p> <input type="hidden" name="abc" value="10" id="hiddenFiled1" /> </div> </body> </html>
Assume index.jsp is available at url
“http://localhost:8080/application”.
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class App { public static void main(String[] args) { WebDriver driver = new FirefoxDriver(); driver.get("http://localhost:8080/application"); WebElement ele1 = driver.findElement(By.id("header1")); WebElement ele2 = driver.findElement(By.id("hiddenFiled1")); System.out.println("is ele1 displayed on webpage "+ ele1.isDisplayed()); System.out.println("is ele2 displayed on webpage " + ele2.isDisplayed()); System.out.println("is ele1 enabled on webpage "+ ele1.isEnabled()); System.out.println("is ele2 enabled on webpage " + ele2.isEnabled()); driver.close(); } }
Output
is ele1 displayed on webpage true is ele2 displayed on webpage false is ele1 enabled on webpage true is ele2 enabled on webpage true
input
type="hidden" name="abc" value="10"
id="hiddenFiled1" />
Observe the output, since element with id hiddenField1 is
hidden from web page, so isDisplayed method return false, where as inEnabled
method return true.
Update index.jsp like below.
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <script> window.onload = function() { var radios = document.getElementsByName('o1'); for (i = 0; i < radios.length; i++) radios[i].onclick = checkFire; }; function checkFire(e) { var fires = document.getElementById('relocate'); var evt = e || window.event; var target = evt.target || evt.srcElement; if (target.checked && target.id === 'yes') fires.disabled = false; else { fires.checked = false; fires.disabled = true; } } </script> <div> Do you like programming<input type="radio" name="o1" id="yes" />Yes <input type="radio" name="o1" id="no" />No </div> <div id="job"> <input type="checkbox" name="e1" id="relocate" disabled />Are you intrested to relocate </div> </body> </html>
index.jsp generates above jsp page. By default check box is
disabled.
<input type="checkbox" name="e1"
id="relocate" disabled
/>
Checkbox will be enabled once you select the radio button
yes.
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class App { public static void main(String[] args) { WebDriver driver = new FirefoxDriver(); driver.get("http://localhost:8080/application"); WebElement yesRadioButtion = driver.findElement(By.id("yes")); WebElement relocateCheckBox = driver.findElement(By.id("relocate")); System.out.println("Is checkbox displayed " + relocateCheckBox.isDisplayed()); System.out.println("Is checkbox enabled " + relocateCheckBox.isEnabled()); yesRadioButtion.click(); System.out.println("\nSelected the yes check box\n"); System.out.println("Is checkbox displayed " + relocateCheckBox.isDisplayed()); System.out.println("Is checkbox enabled " + relocateCheckBox.isEnabled()); driver.close(); } }
Output
Is checkbox displayed true Is checkbox enabled false Selected the yes check box Is checkbox displayed true Is checkbox enabled true
No comments:
Post a Comment