Ruby Watir,Dijit,无法定位表/tr/td并从表中选择值

Ruby Watir,Dijit,无法定位表/tr/td并从表中选择值,ruby,watir,dijit.form,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, 'wikiAct

我试图从下拉菜单的表格中选择一个值。但是当使用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\u下拉列表”,:tag\u 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>

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


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

select\u list
将不起作用,因为上面的代码段中没有
标记。能否将相应行的
id
属性用作定位器?例如:
b.tr(id:“dijit\u MenuItem\u 16”)。单击
(或者甚至是
b.tr(标题:“删除此维基”)。单击
感谢您的回复,Andrey。我修复了它。id正在更改…感谢您的建议。实际上我发现了错误。id的更改取决于浏览器,我可以使用索引来定位元素。