Watir-WebDriver:查找类未完成的元素。 [英] Watir-WebDriver: Find elements which class is not 'completed'

查看:0
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆