Watir-webdriver单击操作返回true / success但不实际执行单击操作

时间:2015-04-14 23:03:56

标签: click watir watir-webdriver

我有一个从div级联的span元素,看起来就像一个带有文本的按钮"好的,得到它。" 。它的HTML如下:

<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

我也使用,焦点,悬停..我看到所有这些定位元素并且确实单击(因为我看到元素类型显示对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">

请帮助我如何处理此UI点击

1 个答案:

答案 0 :(得分:1)

当你有这样的嵌套跨度时,只有最里面有文本,所有跨距实际上都有相同的文本。因此,如果您尝试单独选择文本,则watir将返回找到匹配的第一个,这很可能是外层容器。这可能不是需要接收点击操作的那个。

所以你需要通过其他一些参数来选择,比如可能是类(基于评论是你最终做的)

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

具有类似结构的棘手部分是找到哪一组嵌套跨度是需要点击的那个..这主要是实验.. IRB是你的朋友。

顺便说一句,无论您的开发人员使用哪个库..由此产生的html和DOM结构会让我的大脑受伤......