Bird
Raised Fist0
Selenium Javatesting~5 mins

findElements for multiple matches in Selenium Java - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the findElements method return in Selenium Java?
It returns a List<WebElement> containing all matching elements found on the page. If no elements match, it returns an empty list.
Click to reveal answer
beginner
How is findElements different from findElement?
findElement returns the first matching element or throws an exception if none found. findElements returns all matching elements as a list and does not throw an exception if none found.
Click to reveal answer
beginner
Why is it useful to use findElements when testing a list of items on a page?
Because it lets you get all items at once, so you can check how many there are, verify their text, or interact with each one in a loop, just like counting apples in a basket.
Click to reveal answer
beginner
What happens if findElements finds no matching elements?
It returns an empty list instead of throwing an error. This helps avoid test failures when elements are optional or temporarily missing.
Click to reveal answer
beginner
Show a simple Java code snippet using findElements to count buttons on a page.
List<WebElement> buttons = driver.findElements(By.tagName("button")); int count = buttons.size(); System.out.println("Number of buttons: " + count);
Click to reveal answer
What does findElements(By.cssSelector(".item")) return if there are 3 elements with class 'item'?
AA list with 3 WebElements
BThe first WebElement only
CAn exception is thrown
DNull
If findElements finds no matches, what is returned?
AAn empty list
BNull
CThrows NoSuchElementException
DReturns the first element anyway
Which method throws an exception if no element is found?
ANeither
BfindElements
CBoth findElement and findElements
DfindElement
How can you check how many elements matched using findElements?
AUse getCount() method
BUse length property
CUse the size() method on the returned list
DUse isEmpty() method only
Why might you prefer findElements over findElement when testing multiple similar elements?
ABecause findElement is slower
BTo get all matching elements at once
CBecause findElements throws exceptions
DBecause findElement returns a list
Explain how you would use findElements in Selenium Java to verify the number of links on a webpage.
Think about how to get all <a> tags and count them.
You got /4 concepts.
    Describe the difference in behavior between findElement and findElements when no matching elements are found.
    Consider what happens if the element is missing.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the Selenium method findElements return when multiple elements match the locator?
      easy
      A. A single WebElement or null if none found
      B. Only the first matching WebElement
      C. A list of all matching WebElements
      D. An error if more than one element matches

      Solution

      1. Step 1: Understand the purpose of findElements

        The method findElements is designed to find all elements matching a locator, not just one.
      2. Step 2: Check the return type

        It returns a list (java.util.List) of WebElements, which can be empty if no matches are found.
      3. Final Answer:

        A list of all matching WebElements -> Option C
      4. Quick Check:

        findElements returns list = D [OK]
      Hint: Remember: findElements always returns a list, even if empty [OK]
      Common Mistakes:
      • Confusing findElements with findElement which returns single element
      • Expecting an error when multiple matches occur
      • Assuming null is returned if no matches
      2. Which of the following is the correct syntax to find all buttons on a page using Selenium Java?
      easy
      A. List<WebElement> buttons = driver.findElements(By.tagName("button"));
      B. WebElement buttons = driver.findElements(By.tagName("button"));
      C. List<WebElement> buttons = driver.findElement(By.tagName("button"));
      D. WebElement buttons = driver.findElement(By.tagName("button"));

      Solution

      1. Step 1: Identify correct method and return type

        To get multiple elements, use findElements which returns a List<WebElement>.
      2. Step 2: Check syntax correctness

        List<WebElement> buttons = driver.findElements(By.tagName("button")); correctly uses List<WebElement> and findElements with By.tagName("button").
      3. Final Answer:

        List<WebElement> buttons = driver.findElements(By.tagName("button")); -> Option A
      4. Quick Check:

        Multiple elements need findElements + List [OK]
      Hint: Use findElements with List<WebElement> for multiple matches [OK]
      Common Mistakes:
      • Using findElement instead of findElements for multiple elements
      • Assigning findElements result to a single WebElement variable
      • Mixing findElement with List type
      3. What will be the output of the following code snippet?
      List<WebElement> items = driver.findElements(By.className("item"));
      System.out.println(items.size());

      Assuming the page has 4 elements with class "item".
      medium
      A. 1
      B. 4
      C. 0
      D. Throws NoSuchElementException

      Solution

      1. Step 1: Understand findElements behavior

        findElements returns a list of all matching elements. Here, 4 elements have class "item".
      2. Step 2: Check the size of the list

        Calling items.size() returns the number of elements found, which is 4.
      3. Final Answer:

        4 -> Option B
      4. Quick Check:

        items.size() = 4 [OK]
      Hint: items.size() gives count of all matched elements [OK]
      Common Mistakes:
      • Expecting findElements to throw exception if multiple matches
      • Confusing findElements with findElement which throws exception if none
      • Assuming size() returns 1 always
      4. Identify the error in the following code snippet:
      List<WebElement> links = driver.findElements(By.cssSelector("a.link"));
      System.out.println(links.get(5).getText());

      Assuming the page has only 3 matching elements.
      medium
      A. Syntax error in CSS selector
      B. NoSuchElementException thrown by findElements
      C. NullPointerException because links is null
      D. IndexOutOfBoundsException at links.get(5)

      Solution

      1. Step 1: Check findElements result size

        findElements returns a list with 3 elements because only 3 match the selector.
      2. Step 2: Accessing index 5 causes error

        Trying to get element at index 5 (6th element) causes IndexOutOfBoundsException because list size is 3.
      3. Final Answer:

        IndexOutOfBoundsException at links.get(5) -> Option D
      4. Quick Check:

        Accessing invalid index = IndexOutOfBoundsException [OK]
      Hint: Check list size before accessing by index to avoid errors [OK]
      Common Mistakes:
      • Expecting NoSuchElementException from findElements when no matches
      • Assuming list is null if no matches (it's empty, not null)
      • Ignoring list size before get(index)
      5. You want to click all buttons with class "submit-btn" on a page. Which code snippet correctly does this using findElements?
      hard
      A. List<WebElement> buttons = driver.findElements(By.className("submit-btn")); for(WebElement btn : buttons) { btn.click(); }
      B. WebElement button = driver.findElement(By.className("submit-btn")); button.click();
      C. List<WebElement> buttons = driver.findElement(By.className("submit-btn")); for(WebElement btn : buttons) { btn.click(); }
      D. driver.findElements(By.className("submit-btn")).click();

      Solution

      1. Step 1: Use findElements to get all matching buttons

        List<WebElement> buttons = driver.findElements(By.className("submit-btn")); for(WebElement btn : buttons) { btn.click(); } correctly uses findElements to get a List of all buttons with class "submit-btn".
      2. Step 2: Iterate over list and click each button

        The for-each loop clicks each button in the list, which is the correct way to handle multiple elements.
      3. Final Answer:

        List<WebElement> buttons = driver.findElements(By.className("submit-btn")); for(WebElement btn : buttons) { btn.click(); } -> Option A
      4. Quick Check:

        findElements + loop to click all = B [OK]
      Hint: Use findElements + loop to act on multiple elements [OK]
      Common Mistakes:
      • Using findElement which returns only one element
      • Trying to call click() directly on list
      • Assigning findElements result to single WebElement
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard