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
Step 1: Understand following-sibling axis
The following-sibling::p[1] selects the first p sibling after the h2 node.
Step 2: Apply to given HTML
After h2, the first p is "Paragraph 1", so it selects that element.
Final Answer:
The first <p> element inside the <div> -> Option C
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
Step 1: Understand preceding-sibling axis
The preceding-sibling::div[1] selects the immediate previous sibling div element.
Step 2: Reason why no elements returned
If no elements are returned, it means the current div has no preceding sibling div.
Final Answer:
The <div> has no preceding sibling <div> elements -> Option A
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
Step 1: Understand the hierarchy
The span elements are children of div, and that div is a child of section.
Step 2: Build XPath with axes
//section/child::div/child::span selects span children of div children of section.
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.
Final Answer:
//section/child::div/child::span -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.