Jquery ui 如何区分具有相同类但唯一属性的元素

Jquery ui 如何区分具有相同类但唯一属性的元素,jquery-ui,modal-dialog,watir-webdriver,Jquery Ui,Modal Dialog,Watir Webdriver,作为Watir Webdriver测试脚本的一部分,我尝试单击弹出的jQuery UI模式对话框窗口中的一个按钮 模式对话框弹出,我可以在浏览器中看到它。但是,当使用:class检查div是否存在时,它返回false 我认为问题在于同一类有4个div,前三个有display:none。所以,我试着: @browser.elements(:css => '.duplicate_class')[3].present? 查看是否可以选择返回Net::ReadTimeout错误的第四个di

作为Watir Webdriver测试脚本的一部分,我尝试单击弹出的jQuery UI模式对话框窗口中的一个按钮

模式对话框弹出,我可以在浏览器中看到它。但是,当使用:class检查div是否存在时,它返回false

我认为问题在于同一类有4个div,前三个有display:none。所以,我试着:

   @browser.elements(:css => '.duplicate_class')[3].present?
查看是否可以选择返回Net::ReadTimeout错误的第四个div

没有id属性,但每个div都有一个唯一的aria labelledby值。我不完全确定如何使用:aria labelledby作为属性,不确定这是否有效


不幸的是,我不能提供任何代码。我知道这会阻碍任何帮助,因此我非常感谢任何帮助。

鉴于aria labelledby属性是唯一的,我会尝试使用它:

@browser.div(:aria_labelledby => 'the_attribute_value').present?

请注意,在定位器中使用aria属性时,需要将破折号替换为下划线。

使用上述示例,返回以下错误:未定义的局部变量或main:Object nameError的方法“labelledby”。基于此异常,您键入的定位器不正确。您可能键入了:aria labelledby而不是:aria_labelledby。请注意下划线和破折号之间的区别。对不起,我忘了在我的脚本中进一步删除我不正确的尝试。将破折号更改为下划线有效。我现在能够找到所需的元素