我有以下循环遍历元素列表的脚本:
$browser.divs(class:'menu-index-page__menu-category').map do |cat|
cate = cat.h3.text
puts cate
cc = cat.ul(class:'menu-index-page__items')
cc.lis(class:'menu-index-page__item').each do |lit|
lit.fire_event :click
sleep(5)
有时类列表的名称会更改为:
menu-index-page__item menu-index-page__item--unavailable
这会破坏脚本,我希望能够在它出现时跳过它并继续使用原始脚本。
最佳答案
假设您使用的是 Watir v6.5+,:class 定位器支持排除类。您可以通过执行以下操作找到包含类“a”但不包含“b”的所有元素:
browser.elements(class: ['a', '!b'])
对于您的具体示例,您可以:
cc.lis(class: ['menu-index-page__item', '!menu-index-page__item--unavailable']).each do |lit|
# your actions on lit
end
关于ruby - 遍历列表 Ruby 时如何跳过元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52606925/