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., As the name suggest
linktext, partialLinkText methods used to locate hyper links. In this post, I
am going to explain how to locate an element using link text (or) partial link
text.
Locate Element By Link Text
Following is a hyper
link, “Java Tutorial” (Which is in between <a> tags) is usually called
as link text.
<a
href="https://self-learning-java-tutorial.blogspot.com">Java
Tutorial</a>
Suppose you want to
click above element using link text, you can use following statement.
WebElement element =
driver.findElement(By.linkText("Java Tutorial"));
Let us assume following
index.jsp file is running at url “http://localhost:8080/application/”.
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 class="center"> <h1>Simple application to demonstrate Selenium webdriver</h1> </div> <div class="center"> <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> <a href="https://self-learning-java-tutorial.blogspot.com">Java Tutorial</a> <a href="https://wiki.haskell.org/Web/Frameworks">Haskell Home</a> <a href="http://julialang.org">Julia Tutorial</a> </div> </body> </html>
Following application
open the href link url associated with link text "Java Tutorial".
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"); System.out.println("Data for link text \"Java Tutorial\" is "); System.out.println("------------------------------"); WebElement element = driver.findElement(By.linkText("Java Tutorial")); element.click(); } }
Locate element by Partial Link Text
It is used when you are
not sure about the exact link text. By using patialLinkText method, you can
supply substring of linktext, It identifies all the elements that matches
given text partially. As you observe,
index.jsp, it has following hyper links.
<a
href="https://self-learning-java-tutorial.blogspot.com">Java
Tutorial</a>
<a
href="https://wiki.haskell.org/Web/Frameworks">Haskell
Home</a>
<a
href="http://julialang.org">Julia Tutorial</a>
Following statement
matches the elements with link text "Java Tutorial", "Julia
Tutorial". It is because, partialLinkText "Tutorial" is a
substring in both "Java Tutorial", "Julia Tutorial".
List<WebElement>
elements = driver.findElements(By.partialLinkText("Tutorial"));
import java.util.List; 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"); System.out.println("Data for partial link text \"Tutorial\" is "); System.out.println("------------------------------"); List<WebElement> elements = driver.findElements(By .partialLinkText("Tutorial")); for (WebElement element : elements){ System.out.println(element.getText()); } } }
Output
Data for partial link text "Tutorial" is ------------------------------ Java Tutorial Julia Tutorial
No comments:
Post a Comment