This is the code that I currently have:
-
-
-
-
-
<
Adding to the answer above, both the expressions below will work well.
//span[contains(text(), 'ABZ')]/following::section/span[@name='edit']
OR
//span[contains(text(), 'ABZ')]/../following-sibling::section/span[@name='edit']
Notably, the axis following will pick each node following the context node while the axis following-sibling will only pick the sibling nodes to the context node.
This xpath worked for me in Chrome, using your html:
//span[contains(text(), 'ABZ')]/../following-sibling::section/span[@name='edit']
Edit
The .. means to go up a level. The .. takes the selector from span to section. Then the following-sibling finds the section after the parent section of your matching span.
Your original selector was matching span, then looking for a following-sibling to span.