2013-12-16 3 views
0

Мне нужно получить все строки с классом с именем 'odd_row' или 'even_row'.Watir Как получить строки с разными классами

HTML:

<tbody> 
    <tr class="first_row"> … </tr> 
    <tr class="subjectField" style="display:none"> … </tr> 
    <tr class="odd_row"> … </tr> 
    <tr class="subjectField" style="display:none"> … </tr> 
    <tr class="even_row"> … </tr> 
    <tr class="subjectField" style="display:none"> … </tr> 
</tbody> 

Я попытался это:

@b.table(:class => 'color_table').tbody.trs(:class => ('odd_row' || 'even_row').size 

Но она возвращает 1.

Кто-нибудь знает, как решить эту проблему?

ответ

0

Вы вызываете .size в конце. Это получает размер массива как целое число. Вы можете попробовать без него.

+0

Я попытался, как это тоже, но она по-прежнему возвращает 1: суб = [email protected] b.table (: class => 'color_table'). Tbody.trs (: class => ('odd_row' || 'even_row'). Find do | tr | sub = sub + 1 end возвращение sub – Seda

+0

Вы можете попробовать выполнить поиск следующим образом: ': class => ['odd_row', 'even_row']' – MurifoX

+0

Это дает ошибку: ожидается один из [String, Regexp], получил ["odd_row", "even_row"]: Array – Seda

3

Если вы хотите сделать «или» классов, вам нужно использовать регулярное выражение. В регулярных выражениях «или» выполняется с использованием символа одного канала «|». Класс локатор вы хотите это:

:class => /odd_row|even_row/ 

Поэтому, чтобы сосчитать все нечетные и четные строки, вы хотите:

@b.table(:class => 'color_table') 
    .tbody 
    .trs(:class => /odd_row|even_row/) 
    .size 
Смежные вопросы