2015-04-14 1 views
0

У меня есть элемент span, который каскадирует из div, который выглядит как кнопка с текстом «Хорошо, понял». , Его HTML выглядит следующим образом:Действие click-файла Watir-webdriver возвращает true/success, но на самом деле не работает действие click.

<span class="dijit dijitReset dijitInline defaultButton xwtButton xwt-TextButton xwt-TextButtonFocused dijitFocused" role="presentation" widgetid="xwt_widget_form_TextButton_2"> 
    <span class="dijitReset dijitInline dijitButtonNode" role="presentation" data-dojo-attach-event="ondijitclick:__onClick"> 
     <span id="xwt_widget_form_TextButton_2" class="dijitReset dijitStretch dijitButtonContents" aria-labelledby="xwt_widget_form_TextButton_2_label" role="button" data-dojo-attach-point="titleNode,focusNode" tabindex="0"> 
     <span class="dijitReset dijitInline dijitIcon dijitNoIcon" data-dojo-attach-point="iconNode"></span> 
     <span class="dijitReset dijitToggleButtonIconChar">\u25cf</span> 
     <span id="xwt_widget_form_TextButton_2_label" class="dijitReset dijitInline dijitButtonText" data-dojo-attach-point="containerNode">Okay, got it.</span> 
</span> 

Так что я попытался большинство типов клики:

@browser.span(:text => /Okay/).click 
@browser.span(:text => /Okay/).fire_event("onclick") 
@browser.span(:text => /Okay/).double_click 
@browser.span(:text => /Okay/).send_keys :enter etc 

Я также использовал, фокус, hover..I видеть, что все эти Находит элемент и делает щелчок (как я вид элемента показывает реакцию при нажатии на webdriver, но тип кнопки исчезает, и это не происходит, ничего не происходит дальше, нет ошибки) Но я заметил, что его изменения html на одном клике, но ничего не происходит, если я попытаюсь снова щелкнуть:

<span class="dijit dijitReset dijitInline defaultButton xwtButton xwt-TextButton xwt-TextButtonHover digitHover xwt-TextButtonFocused xwt-TextButtonHoverFocused dijitHoverFocused dijitFocused" role="presentation" widgetid="xwt_widget_form_TextButton_2"> 

Пожалуйста, помогите мне, как обращаться с этим пользовательским интерфейсом нажмите

+0

Ничего, я нашел, что это работает, используя: пядь класс = «dijitReset dijitInline dijitButtonNode» – Jade

+0

Out любопытства, какой браузер вы используете? Это Firefox? –

ответ

1

Когда у вас есть вложенные промежутки, подобные этому, где только самые внутренние имеют текст, ВСЕ частицы имеют одинаковый текст. Поэтому, если вы попытаетесь выбрать только текст, watir просто вернет первый, который обнаружит совпадения, что, скорее всего, является контейнером внешнего уровня. Это может быть не тот, который должен получить действие click.

Так что вам нужно, чтобы выбрать какой-либо другой параметр, например, возможно, класс (который основан на комментариях, что вы в конечном итоге делает)

@browser.span(:class => "dijitReset dijitInline dijitButtonNode").click 

Хитрость со структурой типа, что является нахождение какой из что набор вложенных пролетов - это тот, который нужно щелкнуть .. это в основном экспериментирование. IRB - ваш друг.

Кстати, любая библиотека, ваши разработчики используют .. человек в результате HTML и DOM структура делает мой мозг пострадал ..

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