Bird
Raised Fist0
Selenium Pythontesting~5 mins

XPath axes (parent, child, sibling) in Selenium Python - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the parent axis in XPath?
The parent axis selects the parent node of the current node in the XML or HTML document tree.
Click to reveal answer
beginner
How does the child axis work in XPath?
The child axis selects all child nodes of the current node. It is often used to find direct descendants.
Click to reveal answer
intermediate
Explain the following-sibling axis in XPath.
The following-sibling axis selects all sibling nodes that come after the current node on the same level in the document tree.
Click to reveal answer
intermediate
Write an XPath expression to select the parent of a node with id 'item'.
XPath: //*[@id='item']/parent::* selects the parent node of the element with id 'item'.
Click to reveal answer
intermediate
What is the difference between child:: and // in XPath?
child:: selects only direct children of the current node, while // selects nodes at any depth (descendants) from the current node.
Click to reveal answer
Which XPath axis selects the parent of the current node?
Aparent
Bchild
Cfollowing-sibling
Ddescendant
What does the XPath child::div select?
AAll div elements anywhere in the document
BAll div elements that are direct children of the current node
CThe parent div of the current node
DAll sibling div elements after the current node
Which XPath axis would you use to select siblings after the current node?
Aparent
Bpreceding-sibling
Cchild
Dfollowing-sibling
What is the result of //*[@id='item']/parent::*?
ASelects the node with id 'item'
BSelects all children of the node with id 'item'
CSelects the parent of the node with id 'item'
DSelects all siblings of the node with id 'item'
Which axis selects only direct children nodes?
Achild
Bfollowing-sibling
Cdescendant
Dancestor
Describe how you would use XPath axes to navigate from a child element to its parent and then to its following sibling.
Think about moving up first, then sideways in the document tree.
You got /3 concepts.
    Explain the difference between the child and following-sibling XPath axes with examples.
    Consider the tree structure and node relationships.
    You got /3 concepts.

      Practice

      (1/5)
      1. Which XPath axis selects the direct parent of the current node?
      easy
      A. child::
      B. parent::
      C. following-sibling::
      D. preceding-sibling::

      Solution

      1. Step 1: Understand XPath axes

        XPath axes describe relationships between nodes, such as parent, child, or siblings.
      2. Step 2: Identify the axis for parent node

        The parent:: axis selects the direct parent of the current node.
      3. Final Answer:

        parent:: -> Option B
      4. Quick Check:

        Parent axis = parent:: [OK]
      Hint: Parent axis always uses 'parent::' [OK]
      Common Mistakes:
      • Confusing parent:: with child::
      • Using sibling axes to find parent
      • Forgetting axes syntax with double colons
      2. Which of the following is the correct XPath syntax to select all child <li> elements of a <ul> element?
      easy
      A. //ul/parent::li
      B. //ul/preceding-sibling::li
      C. //ul/following-sibling::li
      D. //ul/child::li

      Solution

      1. Step 1: Understand child axis usage

        The child:: axis selects direct children of the current node.
      2. Step 2: Apply correct syntax for child li elements

        Using //ul/child::li selects all li children of ul.
      3. Final Answer:

        //ul/child::li -> Option D
      4. Quick Check:

        Child axis syntax = child:: [OK]
      Hint: Use 'child::' to select direct children nodes [OK]
      Common Mistakes:
      • Using parent:: instead of child::
      • Using sibling axes for children
      • Omitting the axis and expecting child selection
      3. Given the following HTML snippet:
      <div>
        <h2>Title</h2>
        <p>Paragraph 1</p>
        <p>Paragraph 2</p>
      </div>

      What does the XPath //h2/following-sibling::p[1] select?
      medium
      A. No element, XPath is invalid
      B. The second p element inside the div
      C. The first p element inside the div
      D. The h2 element itself

      Solution

      1. Step 1: Understand following-sibling axis

        The following-sibling::p[1] selects the first p sibling after the h2 node.
      2. Step 2: Apply to given HTML

        After h2, the first p is "Paragraph 1", so it selects that element.
      3. Final Answer:

        The first <p> element inside the <div> -> Option C
      4. Quick Check:

        following-sibling::p[1] = first p after h2 [OK]
      Hint: following-sibling::p[1] picks first p after current node [OK]
      Common Mistakes:
      • Selecting the second p instead of the first
      • Confusing preceding-sibling with following-sibling
      • Thinking it selects children instead of siblings
      4. You wrote this XPath to select the previous sibling of a div element:
      //div/preceding-sibling::div[1]
      But it returns no elements. What is the most likely reason?
      medium
      A. The div has no preceding sibling div elements
      B. The syntax is incorrect; axes cannot be used with //
      C. You should use parent::div instead
      D. preceding-sibling axis selects children, not siblings

      Solution

      1. Step 1: Understand preceding-sibling axis

        The preceding-sibling::div[1] selects the immediate previous sibling div element.
      2. Step 2: Reason why no elements returned

        If no elements are returned, it means the current div has no preceding sibling div.
      3. Final Answer:

        The <div> has no preceding sibling <div> elements -> Option A
      4. Quick Check:

        preceding-sibling returns nothing if no previous siblings [OK]
      Hint: No preceding sibling means empty result, not syntax error [OK]
      Common Mistakes:
      • Thinking axes can't be used with //
      • Confusing parent:: with preceding-sibling::
      • Assuming preceding-sibling selects children
      5. You want to select all span elements that are children of a div whose immediate parent is a section. Which XPath expression correctly uses axes to achieve this?
      hard
      A. //section/child::div/child::span
      B. //div/parent::section/child::span
      C. //section/parent::div/child::span
      D. //span/parent::div/parent::section

      Solution

      1. Step 1: Understand the hierarchy

        The span elements are children of div, and that div is a child of section.
      2. Step 2: Build XPath with axes

        //section/child::div/child::span selects span children of div children of section.
      3. Step 3: Check other options

        //div/parent::section/child::span selects span children of section, which is incorrect. //section/parent::div/child::span and D misuse axes or order.
      4. Final Answer:

        //section/child::div/child::span -> Option A
      5. Quick Check:

        Use child axes from section to div to span [OK]
      Hint: Chain child:: axes from parent to target child [OK]
      Common Mistakes:
      • Using parent:: in wrong direction
      • Selecting wrong node levels
      • Mixing sibling axes instead of child axes
      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