xpath expression to find elements using conditions

Viewed 38

I have the following structure

<div class="tree">
    <div class="list">
        <div class="category">europpeen toys</div>
        <div class="price">100</div>
    </div>
    <div class="list">
        <div class="category">us toys</div>
        <div class="noprice">n/d</div>
    </div>
    <div class="list">
        <div class="category">books</div>
        <div class="price">350</div>
    </div>
    <div class="list">
        <div class="category">sport</div>
        <div class="noprice">0</div>
    </div>
</div>

how to write xpath expression (javascript) to select all list elements that contains

  1. a div with category class and the content should contains 'toys' keyword.
  2. and a div with price class

in this case the result should be

<div class="tree">
    <div class="list">
        <div class="category">europpeen toys</div>
        <div class="price">100</div>
    </div>
</div>

(//*[@class='price'] / ancestor::div[contains(text(),'toys')])/.. 
1 Answers

This should work

//div[contains(div[1], 'toys') and div[2][@class='price']]
Related