Ruby Watir,Dijit,无法找到table / tr / td并从表中选择值

时间:2015-05-13 17:55:23

标签: ruby watir dijit.form

我正在尝试从下拉菜单表中选择一个值。但是当使用table / tr / td时,Watir总是给我一个unlocate错误。

我无法使用

找到元素
@browser.div(:id, 'wikiActionMenuLink_dropdown').element(:tag_name, 'table').element(:tag_name, 'tbody').element(:tag_name => 'td').text

但是下面的代码输出返回true。

@browser.div(:id, 'wikiActionMenuLink_dropdown').element(:tag_name, 'table').element(:tag_name, 'tbody').element(:tag_name => 'td').exists?

我也试过

@browser.select_list(:id, 'wikiActionMenuLink_dropdown').select_value('Delete Wiki')

但是使用{:id=>"wikiActionMenuLink_dropdown", :tag_name=>"select"}"

收到错误“无法找到元素

在html下面。有人可以给我一些建议吗?

<div id="wikiActionMenuLink_dropdown" class="dijitPopup dijitMenuPopup" style="visibility: visible; top: 123.75px; left: 1592px; right: auto; z-index: 1000; height: auto; overflow: visible; display: none;" role="region" aria-label="dijit_Menu_2" dijitpopupparent="">
<table id="dijit_Menu_2" class="dijit dijitReset dijitMenuTab`enter code here`le lotusPlain dijitMenu dijitMenuPassive" cellspacing="0" tabindex="0" role="menu" widgetid="dijit_Menu_2" style="top: 0px; visibility: visible;">
<tbody class="dijitReset" data-dojo-attach-point="containerNode">
<tr id="dijit_MenuItem_15" class="dijitReset dijitMenuItem" tabindex="-1" role="menuitem" data-dojo-attach-point="focusNode" style="-moz-user-select: none;" aria-label="Edit Wiki " title="Edit settings of this wiki." widgetid="dijit_MenuItem_15">
<tr id="dijit_MenuItem_16" class="dijitReset dijitMenuItem" tabindex="-1" role="menuitem" data-dojo-attach-point="focusNode" style="-moz-user-select: none;" aria-label="Delete Wiki " title="Delete this wiki." widgetid="dijit_MenuItem_16">
</tbody>
</table>
<iframe class="dijitBackgroundIframe" src="javascript:""" role="presentation" style="opacity: 0.1; width: 100%; height: 100%;" tabindex="-1">
<html>
<head></head>
<body></body>
</html>
</iframe>
</div>

1 个答案:

答案 0 :(得分:0)

如果文本当前可见,Watir将仅返回元素的文本,无论该元素是否存在。如果您使用.present在第一个示例中进行了相同的调用?而不是.exists?它会返回false。

对于非选择/选项下拉互动,您通常需要先单击下拉元素,然后在选项可见后,单击所需的那个。