Selenium WebDriver provides the findElements()
method, using which we can find more than one element matching the specified search criteria. This method is useful when we want to work with a group of similar elements. For example, we can get all the links displayed on a page, or get all rows from a table, and so on.
In this recipe, we will get all the links and print their targets by using the findElements()
method.
Let's create a test that will get all the links from a page, verify the count of links, and print a target for each link, as follows:
@Test public void testFindElements() { //Get all the links displayed on Page List<WebElement> links = driver.findElements(By.tagName("a")); //Verify there are four links displayed on the page assertEquals(4, links.size()); //Iterate though the list of links and print //target for each link for(WebElement link : links) { System.out.println(link.getAttribute("href")); } }
The findElements()
method returns all the elements matching the search criteria as a list of WebElements
.
List<WebElement> links = driver.findElements(By.tagName("a"));
The size()
method of the List
will tell us how many elements are there in the list:
assertEquals(4, links.size());
We can iterate by using this list in the following way, getting a link and printing its target value:
for(WebElement link : links) { System.out.println(link.getAttribute("href")); }
3.15.3.167