2015-08-07 2 views
0

с использованием Watir имеет название ошибки нужно установить флажок:недопустимый атрибут:: для (Watir :: Exception :: MissingWayOfFindingObjectException)

<label for="adr-eq" class="checkbox">Ok</label> 

это работает:

ff.element(:css => 'label.checkbox:nth-child(12)').click 

, но почему это не работает для:

ff.checkbox(:for => 'adr-eq').set 
ff.element(:for => 'adr-eq').click 

ответ

1

Watir разрешает размещение элементов с использованием атрибутов vali d для типа элемента (на основе спецификаций HTML). Атрибут for недействителен для всех элементов или элементов ввода. В результате вы получаете Watir::Exception::MissingWayOfFindingObjectException.

Если вы посмотрите на HTML, с которым вы пытаетесь взаимодействовать, а также на рабочий CSS-селектор, тип элемента является меткой. Атрибут for действителен для меток (и нескольких других элементов). В результате, если вы сообщите Ватиру о местонахождении элемента метки, вы можете использовать локатор :for.

нажать на метку с помощью for атрибута:

ff.label(:for => 'adr-eq').click 

Если вы хотите использовать метод Checkbox#set, вам нужно будет найти элемент с помощью атрибута id, который должен соответствовать атрибут for:

ff.checkbox(:id => 'adr-eq').set 
+0

большое спасибо, он работает на этикетке и не работает с флажком. но проблема решена. – 2500mA

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