http://www.softwaretestinghelp.com/webdriver-commands-selenium-tutorial-14/
How to check visibility of web elements using various types of looping and conditional commands in WebDriver:
Previously in the series, we discussed about WebDriver’s Select classwhich is primarily used to handle web elements like dropdowns and selecting various options under the dropdowns.
Moving ahead in the Selenium series, we would be discussing about the various types of looping and conditional commands in WebDriver like isSelected(), isEnabled() and isDispalyed(). These methods are used to determine the visibility scope for the web elements.
So let us start with a brief introduction – WebDriver has a W3C specification that details out the information about the different visibility preferences based out on the types of the web elements upon which the actions are to be performed.
WebDriver facilitates the user with the following methods to check the visibility of the web elements. These web elements can be buttons, dropboxes, checkboxes, radio buttons, labels etc.
- isDisplayed()
- isSelected()
- isEnabled()
For an improved understanding, let us discuss the aforementioned methods with code examples.
As a specimen, we would be using the “google.com” as an application under test and the “Learning_Selenium” project created in the previous tutorials for script generation.
Scenario to be automated
- Launch the web browser and open the application under test – http://google.com
- Verify the web page title
- Verify if the “Google Search” button is displayed
- Enter the keyword in the “Google Search” text box by which we would want to make the request
- Verify that the “Search button” is displayed and enabled
- Based on visibility of the Search button, click on the search button
WebDriver Code
Step 1: Create a new java class named as “VisibilityConditions” under the “Learning_Selenium” project.
Step 2: Copy and paste the below code in the “VisibilityConditions.java” class.
Below is the test script that is equivalent to the above mentioned scenario:
1 |
import org.openqa.selenium.By;
|
2 |
import org.openqa.selenium.WebDriver;
|
3 |
import org.openqa.selenium.WebElement;
|
4 |
import org.openqa.selenium.firefox.FirefoxDriver;
|
6 |
public class VisibilityConditions {
|
12 |
public static void main(String[] args) {
|
15 |
WebDriver driver = new FirefoxDriver();
|
16 |
String appUrl = "https://google.com" ;
|
22 |
driver.manage().window().maximize();
|
25 |
String expectedTitle = "Google" ;
|
28 |
String actualTitle = driver.getTitle();
|
31 |
if (expectedTitle.equals(actualTitle))
|
33 |
System.out.println( "Verification Successful - The correct title is displayed on the web page." );
|
37 |
System.out.println( "Verification Failed - An incorrect title is displayed on the web page." );
|
41 |
boolean submitbuttonPresence=driver.findElement(By.id( "gbqfba" )).isDisplayed();
|
42 |
System.out.println(submitbuttonPresence);
|
45 |
WebElement searchTextBox = driver.findElement(By.id( "gbqfq" ));
|
46 |
searchTextBox.clear();
|
47 |
searchTextBox.sendKeys( "Selenium" );
|
50 |
boolean searchIconPresence = driver.findElement(By.id( "gbqfb" )).isDisplayed();
|
51 |
boolean searchIconEnabled = driver.findElement(By.id( "gbqfb" )).isEnabled();
|
53 |
if (searchIconPresence== true && searchIconEnabled== true )
|
56 |
WebElement searchIcon = driver.findElement(By.id( "gbqfb" ));
|
62 |
System.out.println( "Test script executed successfully." );
|
Code Walkthrough
Following are the ways in which we ascertain the presence of web elements on the web page.
booleansubmitbuttonPresence=driver.findElement(By.id(“gbqfba”)).isDisplayed();
isDispalyed()
isDisplayed() is the method used to verify presence of a web element within the webpage. The method is designed to result a Boolean value with each success and failure. The method returns a “true” value if the specified web element is present on the web page and a “false” value if the web element is not present on the web page.
Thus the above code snippet verifies for the presence of submit button on the google web page and returns a true value if the submit button is present and visible else returns a false value if the submit button is not present on the web page.
boolean searchIconEnabled = driver.findElement(By.id(“gbqfb”)).isEnabled();
The method deals with the visibility of all kinds of web elements not just limiting to any one type.
isEnabled()
isEnabled() is the method used to verify if the web element is enabled or disabled within the webpage. Like isDisplayed() method, it is designed to result a Boolean value with each success and failure. The method returns a “true” value if the specified web element is enabled on the web page and a “false” value if the web element is not enabled (state of being disabled) on the web page.
Thus the above code snippet verifies if the submit button is enabled or not and returns a Boolean value depending on the result.
The isEnabled() method is significant in scenarios where we want to ascertain that only if “Condition A” is fulfilled, then the element(principally button) is enabled. Refer the following illustration for the same.
In the above figure, Register button button is enabled only when the agreement checkbox is selected.
Akin to above methods, we have a method referenced as “isSelected()” which tests if the specified web element is selected or not.
boolean searchIconSelected = driver.findElement(By.id(“male”)).isSelected();
isSelected()
isSelected() is the method used to verify if the web element is selected or not. isSelected() method is pre-dominantly used with radio buttons, dropdowns and checkboxes. Analogous to above methods, it is designed to result a Boolean value with each success and failure.
Thus the above code snippet verifies if the male radio button is selected or not and returns a Boolean value depending on the result. Refer the following image for the same.
Conclusion
In this tutorial, we tried to make you acquainted with the WebDriver’s looping and conditional operations. These conditional methods often deal with almost all types of visibility options for web elements.
Article Summary:
- WebDriver has a W3C specification that details out the information about the different visibility preferences based out on the types of the web elements.
- isDisplayed() is the method used to verify presence of a web element within the webpage. The method returns a “true” value if the specified web element is present on the web page and a “false” value if the web element is not present on the web page.
- isDisplayed() is capable to check for the presence of all kinds of web elements available.
- isEnabled() is the method used to verify if the web element is enabled or disabled within the webpage.
- isEnabled() is primarily used with buttons.
- isSelected() is the method used to verify if the web element is selected or not. isSelected() method is pre-dominantly used with radio buttons, dropdowns and checkboxes.
Next Tutorial #15: While working on web applications, often we are re-directed to different web pages by refreshing the entire web page and re-loading the new web elements. At times there can be Ajax calls as well. Thus, a time lag can be seen while reloading the web pages and reflecting the web elements. Thus, our next tutorial in-line is all about dealing with such time lags by using implicit and explicit waits.
Note for the Readers: Till then, the reader can automate and test the visibility scope for the web elements using WebDriver’s methods
相关推荐
Solve your Selenium WebDriver problems with this quick guide to automated testing of web applications with Selenium WebDriver in C#. Selenium WebDriver Recipes in C#, Second Edition contains hundreds ...
Selenium WebDriver Practical Guide will guide you through the various APIs of WebDriver which should be used in automation tests, followed by a discussion of the various WebDriver implementations ...
Selenium WebDriver 3 Practical Guide will walk you through the various APIs of Selenium WebDriver, which are used in automation tests, followed by a discussion of the various WebDriver implementations...
自动化测试:Selenium webdriver学习笔记C#版
Solve your Selenium WebDriver problems with this quick guide to automated testing of web applications with Selenium WebDriver in C#. Selenium WebDriver Recipes in C#, Second Edition contains hundreds ...
博客附带源码以及selenium在Python和PyCharm中的安装方法链接,欢迎大家一起交流学习,共同进步,此方式是自己通过实际操作,而总结出来的,欢迎大家批评指正!
selenium RC与selenium webdriver的区别
Selenium是ThroughtWorks公司一个强大的开源Web功能测试工具系列,本系列现在主要包括以下4款: 1.Selenium Core:支持DHTML的测试案例(效果类似数据驱动测试),它是Selenium IDE和Selenium RC的引擎。 2....
Over 90 recipes to help you build and run automated tests for your web applications with Selenium WebDriver About This Book Learn to leverage the power of Selenium WebDriver with simple examples that...
selenium开发:谷歌浏览器和驱动配套版本,很哪找。试了很多版本,这个是版本的浏览器和驱动是配套的,谷歌驱动只有32位,但是32和64都是通用的
web自动化测试selenium+webdriver安装及环境详细配置
关于Selenium WebDriver工作原理的介绍,原理相关描述
web自动化测试selenium+webdriver环境配置,web自动化测试selenium+webdriver环境配置
The second edition of Mastering Selenium 3.0 WebDriver starts by showing you how to build your own Selenium framework with Maven. You’ll then look at how you can solve the difficult problems that you...
本书是一本从入门到精通模式的Selenium WebDriver实战经验分享书籍。全书共分为四个部分:第1部分基础篇主要讲解自动化测试相关的基础理论、WebDriver 环境安装、单元测试工具的使用方法以及 WebDrvier的入门使用...
Test Automation Using Selenium WebDriver with Java Navneesh Garg
selenium-webdriver原创selenium-webdriver原创selenium-webdriver原创selenium-webdriver原创
Utilize various methods provided by Selenium WebDriver to locate web elements and interact with them Capture screenshots and videos of the test execution In Detail Selenium WebDriver is a popular ...
Selenium基础Selenium WebDriver自动化和测试实践的仓库。
Those sites are constructed on virtual machine on Windows PC and we perform automatic operation using Selenium WebDriver for those sites. Those are our own environment so we can practice Selenium as ...