Bird
Raised Fist0
Selenium Pythontesting~10 mins

Finding multiple elements in Selenium Python - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to find all buttons on the page using Selenium.

Selenium Python
buttons = driver.find_elements_by_[1]('button')
Drag options to blanks, or click blank then click option'
Aclass_name
Bid
Cname
Dtag_name
Attempts:
3 left
💡 Hint
Common Mistakes
Using find_element instead of find_elements returns only one element.
Using 'id' or 'name' will not find multiple buttons by tag.
2fill in blank
medium

Complete the code to find all elements with class 'item' using Selenium.

Selenium Python
items = driver.find_elements_by_[1]('item')
Drag options to blanks, or click blank then click option'
Acss_selector
Bclass_name
Cid
Dtag_name
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'id' instead of 'class_name' will not find multiple elements.
Using 'tag_name' will find elements by tag, not class.
3fill in blank
hard

Fix the error in the code to find all links with tag 'a'.

Selenium Python
links = driver.find_elements_by_[1]('a')
Drag options to blanks, or click blank then click option'
Atag_name
Bid
Cname
Dclass_name
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'class_name' or 'id' will not find all links by tag.
Using find_element instead of find_elements returns only one element.
4fill in blank
hard

Fill both blanks to find all input elements with type 'checkbox'.

Selenium Python
checkboxes = driver.find_elements_by_[1]('input[type=[2]]')
Drag options to blanks, or click blank then click option'
Acss_selector
Bclass_name
Ccheckbox
Did
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'class_name' instead of 'css_selector' will not work with attribute selectors.
Using 'id' or 'checkbox' as a method name is invalid.
5fill in blank
hard

Fill all three blanks to create a dictionary of element texts keyed by their ids for all divs with class 'card'.

Selenium Python
cards = driver.find_elements_by_[1]('div.card')
texts_by_id = {card.get_attribute([2]): card.text for card in cards if card.get_attribute([3]) is not None}
Drag options to blanks, or click blank then click option'
Acss_selector
B'id'
Dclass_name
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'class_name' instead of 'css_selector' will not select by combined tag and class.
Forgetting to check if 'id' attribute is not None causes errors.

Practice

(1/5)
1. What does the find_elements method in Selenium Python return when used to locate multiple elements?
easy
A. A list of WebElement objects matching the locator
B. A single WebElement object
C. A boolean indicating if elements exist
D. An integer count of elements found

Solution

  1. Step 1: Understand the purpose of find_elements

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

    It returns a list of WebElement objects, even if the list is empty when no elements match.
  3. Final Answer:

    A list of WebElement objects matching the locator -> Option A
  4. Quick Check:

    find_elements returns list [OK]
Hint: Remember: plural 'elements' means a list, not one item [OK]
Common Mistakes:
  • Confusing find_element (single) with find_elements (multiple)
  • Expecting a single WebElement instead of a list
  • Thinking it returns a count or boolean
2. Which of the following is the correct syntax to find all buttons on a page using Selenium Python?
easy
A. driver.find_elements(By.TAG_NAME, 'button')
B. driver.find_element(By.TAG_NAME, 'button')
C. driver.find_elements('button')
D. driver.find_element('button')

Solution

  1. Step 1: Use the correct method for multiple elements

    To find all buttons, use find_elements, not find_element.
  2. Step 2: Use the correct locator syntax

    The method requires two arguments: locator strategy and locator value, e.g., By.TAG_NAME and 'button'.
  3. Final Answer:

    driver.find_elements(By.TAG_NAME, 'button') -> Option A
  4. Quick Check:

    Correct method and locator = B [OK]
Hint: Use find_elements with By strategy and locator tuple [OK]
Common Mistakes:
  • Using find_element instead of find_elements
  • Passing only one argument instead of two
  • Using string locator without By class
3. What will be the output of this code snippet if the page has exactly 3 <li> elements?
items = driver.find_elements(By.TAG_NAME, 'li')
print(len(items))
medium
A. Error
B. 1
C. 0
D. 3

Solution

  1. Step 1: Understand what find_elements returns

    It returns a list of all matching elements. Here, it finds all <li> tags.
  2. Step 2: Use len() to count elements

    Since there are 3 <li> elements, len(items) returns 3.
  3. Final Answer:

    3 -> Option D
  4. Quick Check:

    Count of found elements = 3 [OK]
Hint: len() on find_elements list gives number found [OK]
Common Mistakes:
  • Expecting find_elements to return a single element
  • Confusing find_element with find_elements
  • Assuming print outputs elements instead of count
4. Identify the error in this code snippet:
elements = driver.find_elements(By.CLASS_NAME)
for el in elements:
print(el.text)
medium
A. Incorrect loop syntax
B. Using find_elements instead of find_element
C. Missing locator value argument in find_elements
D. Cannot print text of elements

Solution

  1. Step 1: Check find_elements method arguments

    find_elements requires two arguments: locator strategy and locator value. Here only one is given.
  2. Step 2: Understand the error cause

    Missing the second argument (the class name string) causes a TypeError.
  3. Final Answer:

    Missing locator value argument in find_elements -> Option C
  4. Quick Check:

    Two arguments needed for find_elements [OK]
Hint: Always provide locator type and value in find_elements [OK]
Common Mistakes:
  • Passing only locator type without value
  • Confusing find_element and find_elements usage
  • Assuming loop syntax is wrong
5. You want to click all links inside a <div> with id 'menu'. Which code correctly finds and clicks all these links?
hard
A. links = driver.find_element(By.CSS_SELECTOR, '#menu a') for link in links: link.click()
B. links = driver.find_elements(By.CSS_SELECTOR, '#menu a') for link in links: link.click()
C. links = driver.find_elements(By.ID, 'menu a') for link in links: link.click()
D. links = driver.find_elements(By.CLASS_NAME, 'menu a') for link in links: link.click()

Solution

  1. Step 1: Use correct locator for links inside #menu

    The CSS selector '#menu a' selects all <a> tags inside the element with id 'menu'.
  2. Step 2: Use find_elements to get all matching links

    find_elements returns a list of all matching elements, allowing iteration.
  3. Step 3: Loop through each link and click

    Iterate over the list and call click() on each WebElement.
  4. Final Answer:

    links = driver.find_elements(By.CSS_SELECTOR, '#menu a') for link in links: link.click() -> Option B
  5. Quick Check:

    Correct locator and method = A [OK]
Hint: Use CSS selector '#menu a' with find_elements to get all links [OK]
Common Mistakes:
  • Using find_element instead of find_elements
  • Wrong locator syntax for nested elements
  • Using By.ID with compound selector string
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