2013-06-06 3 views
0

У меня есть приложение для рельсов, на которое я пишу тест огурца. Я пытаюсь получить номер из определенной строки, чтобы я мог утверждать против него. У меня есть таблица, которая выглядит следующим образом:Как найти значение td в конкретном tr

<table class="table table-striped" id="kids"> 
    <thead> 
    <tr> 
     <th>Name</th> 
     <th>Balance</th> 
     <th></th> 
    </tr> 
    </thead> 

    <tbody> 
    <tr data-link="/kids/2"> 
     <td>Jason</td> 
     <td> 
     <span>$</span> 
     <span class="money">1.00</span> 
     </td> 
    </tr> 
    <tr data-link="/kids/3"> 
     <td>Neely</td> 
     <td> 
     <span>$</span> 
     <span class="money">0.50</span> 
     </td> 
    </tr> 
    </tbody> 
</table> 

Мне нужно выбрать тд, который имеет определенное имя, а затем получить баланс с пролетом в следующем тд. Я уверен, что есть способ сделать это с помощью Xpath, но я не могу понять это. Любая помощь будет большой.

+0

'Мне нужно выберите td с определенным именем '- я не вижу TD с атрибутом name. Это затруднит получение его по имени. – RobG

+0

OP означает текст в первом TD. Имя Аки. – epascarello

+0

Это не атрибут имени, это td с именем в нем. – jhamm

ответ

2

Вы просили XPath, так вот:

//td[preceding-sibling::td[text()='Neely']]/span[@class='money'] 

Обратите внимание, что XPathes не очень читаемый и может быть лучше вместо того, чтобы использовать методы рубин водосвинку в:

tr = find('tr', text: 'Neely') 
tr.find('.money').text 
+0

Красивый. Спасибо за помощь. – jhamm

Смежные вопросы