How to get all the next sibling elements in Selenium Python?

Selenium Python – Get all the next sibling elements

In this tutorial, you will learn how to get all the next sibling elements of a given element, in Selenium Python.

To get all the next or following sibling elements of a given element in Selenium Python, call the find_elements() method on the given element and pass By.XPATH for by parameter, and 'following-sibling::*' for the value parameter in the function call.

following-sibling::* represents all the following or next sibling elements for a given element.

If myelement is the WebElement object for which we would like to find all the next sibling elements, the code snippet for find_elements() method is

myelement.find_elements(By.XPATH, "following-sibling::*")

The above method call returns a list of WebElement objects containing the sibling elements next to the given element.

Example

In this example, we shall consider loading the webpage at URL: https://pythonexamples.org/tmp/selenium/index-20.html. The contents of this HTML file is given below. The web page contains a parent div with four children divs.

<html>
 <body>
  <h1>Hello Family</h1>
  <div id="parent">
    <div id="child1">This is child 1.</div>
    <div id="child2">This is child 2.</div>
    <div id="child3">This is child 3.</div>
    <div id="child4">This is child 4.</div>
  </div>
 </body>
</html>
Copy
Selenium Python - Get all the next sibling elements

We shall take the child div div#child2 as our WebElement of interest, find all of its next sibling elements, and print them to standard output. From the HTML page, #child3 and #child4 are the next sibling elements of #child2.

Python Program

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.common.by import By

# Setup chrome driver
driver = webdriver.Chrome(service=ChromeService(executable_path=ChromeDriverManager().install()))
driver.set_window_size(500, 400)

# Navigate to the url
driver.get('https://pythonexamples.org/tmp/selenium/index-20.html')

# Get the div element you are interested in
mydiv = driver.find_element(By.ID, 'child2')

# Get next sibling of mydiv
next_siblings = mydiv.find_elements(By.XPATH, "following-sibling::*")

# Print the next siblings
for sibling in next_siblings:
    print("\nNext Sibling")
    print(sibling.get_attribute('outerHTML'))

# Close the driver
driver.quit()
Copy

Output

Next Sibling
<div id="child3">This is child 3.</div>

Next Sibling
<div id="child4">This is child 4.</div>

Summary

In this Python Selenium tutorial, we have given instructions on how to find all the next sibling elements of a given web element, with the help of an example program.

Related Tutorials

Quiz on Selenium

Q1. Which of the following is not a popular web driver used in Selenium Python?

Not answered

Q2. What is the method used to find web elements in Selenium Python?

Not answered

Q3. What is the method used to interact with web elements in Selenium Python?

Not answered

Q4. What is the method used to switch to a different frame in Selenium Python?

Not answered

Q5. What is the method used to clear the text from an input field in Selenium Python?

Not answered
Code copied to clipboard successfully 👍