Выбор элемента в той же строке, что и определенный текст - PullRequest
4 голосов
/ 17 марта 2012

Я использую Selenium IDE 1.7.1, чтобы установить флажок, соответствующий счету № 405357. Кажется, что Css позволяет мне двигаться вперед при выборе элемента, но не назад. Так что это выберет 420 долларов:

css=td:contains('405357') + td

Есть идеи для обхода проблемы, чтобы установить флажок? В идеале, обходной путь не должен идти назад или вперед, а просто выбрать флажок

css=input#paymentsForm_invoiceToPayIds if td:contains('405357')

Я бы предпочел, чтобы это было в CSS, но XPath тоже подойдет.

Спасибо!

enter image description here

<table>
<tbody>
<tr>
<td>
<input id="paymentsForm_invoiceToPayIds" type="checkbox" onclick="calculateInvoices(this)" value="405357" name="invoiceToPayIds">
<input id="__checkbox_paymentsForm_invoiceToPayIds" type="hidden" value="405357" name="__checkbox_invoiceToPayIds">
</td>
<td>405357</td>
</tr>
</tbody>
</table>

Ответы [ 3 ]

5 голосов
/ 17 марта 2012

Я считаю, :contains() работает и для родителя tr. Попробуйте это:

css=tr:contains('405357') input[type="checkbox"]
2 голосов
/ 17 марта 2012

Вы не можете сделать это в реальном CSS, потому что настоящий CSS не имеет :contains.Но в XPath все просто: //tr[//input[@value="405357"]]//input[@type="checkbox"], что означает «Флажок, содержащийся в строке таблицы, содержащей поле ввода со значением« 405357 »».

0 голосов
/ 17 марта 2012
//input[@type='checkbox' and @value="405357"]

попробуйте этот

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...