2013-09-13 2 views
0

Я получил страницу HTML в следующем формате:Указание «OPTGROUP» с Watir-WebDriver

<select id="name_list"> 
     <optgroup label="env1"> 
      <option value="comp1">comp1 details</option> 
     </optgroup> 
     <optgroup label="env2"> 
      <option value="comp1">comp1 details</option> 
     </optgroup> 
    </select> 

И пытается нажать на опцию со значением = comp1, которая находится внутри OPTGROUP-enV2 специально. Есть ли способ указать этот путь? Обратите внимание, что оба значения параметров «точно» одинаковы для разных узлов «optgroup» ...

Большое спасибо!

ответ

0

Вы можете найти optgroup как любой другой элемент. Затем вы можете выполнить поиск внутри этой группы для своего варианта.

browser.optgroup(:label =>'env2').option(:value => 'comp1').select 

Update - Похоже, есть ошибка в Watir-WebDriver, что предотвращает выше от работы.

При создании локатора для метки, Watir-WebDriver называет следующие method:

def should_use_label_element? 
    @selector[:tag_name] != "option" 
end 

Для OPTGROUP, это возвращает ложь, а это значит, что Watir идет и ищет связанную метку элемента (а не проверка атрибута).

В качестве временного решения, вы можете использовать CSS:

browser.element(:css => 'optgroup[label="env2"]').option(:value => 'comp1').select 

Исправлена ​​ошибка была создана для этой проблемы (см Issue 219).

+0

Большое спасибо Justin за объяснение, повышенную ошибку и обходной путь !! Я дам ему идти в понедельник ... – mickael

+0

Привет еще раз, только что попробовал обходной путь и получаю эту ошибку ... NoMethodError: неопределенный метод 'вариант» для # если я не ставьте элемент .element(). часть, то я могу сделать browswer.option правильно (хотя он выбирает первое появление, а не правильное). Эта ошибка имеет смысл для вас? или вы можете подумать о другом обходном пути? – mickael

+0

Исходя из этого, похоже, что у вас есть опечатка? Исключение означает, что вы использовали 'элементы', а не' element' (т.е. у вас есть дополнительные 's'). Вы можете проверить? –

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

  • Нет связанных вопросов^_^