Watir-WebDriver:查找类未完成的元素。 [英] Watir-WebDriver: Find elements which class is not 'completed'
本文介绍了Watir-WebDriver:查找类未完成的元素。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一堆li
元素。它们要么具有uncompleted
、‘Current’或completed
类,要么没有类。
如何查找没有completed
类的所有li
元素?
到目前为止,我是通过从li
集合中选择所需的li
对象来完成此操作的(通过调用#attribute_value('class')
,但可能在Watir-WebDriver中有一些优雅的定位策略?
更新:只要对问题有误解即可。
我想知道在Watir-WebDriver中是否有定位策略来查找不是completed
的元素。
我知道我可以用Ruby做到这一点,就像这样:
browser.lis.select do |li|
li.attribute_value('class') != 'completed'
end
但问题是,我是否可以通过向#lis
UPD2:刚刚意识到给定的类名会缩小解决方案的范围。已更新问题并对此深表歉意。
推荐答案
LI集合支持定位器,这意味着您可以:
browser.lis(:class, 'uncompleted').each{ |x|
puts x.text
}
更新:对于有多个类的情况,可以修改上面的内容,使用正则表达式检查未完成:
browser.lis(:class, /^(?!completed$)/).each{ |x| puts x.class_name }
这将返回所有li
没有类或没有完全"完成"的li
(例如"完成2")。
注意:我认为.class_name
可能比attribute_value('class')
有更好的支持(我认为它在IE中不起作用,因为它需要使用类名称)。
这篇关于Watir-WebDriver:查找类未完成的元素。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文