ruby - 遍历列表 Ruby 时如何跳过元素

标签 ruby testing watir

我有以下循环遍历元素列表的脚本:

  $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

这会破坏脚本,我希望能够在它出现时跳过它并继续使用原始脚本。

enter image description here

最佳答案

假设您使用的是 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/

相关文章:

html - 使用 watir 打开本地 html 的问题

ruby - 使用 "debugger"gem 在 Emacs 中调试 Ruby 1.9

sql - 如何从 Ruby 直接将 SQL 与 MySQL 对话?

java - Maven - 在一个单独的多线程 jvm 进程中执行单个测试类

testing - 测试网页/网站时要寻找的首要事项

ruby - 使用 Watir 删除元素

ruby-on-rails - Ruby 通用捕获所有错误

ruby - Watir/ ruby : How to get the text of the selected item in a drop down list?

xml - 在 QTP 中从 Oracle 数据库中检索 XML 类型的记录

testing - 计划采用 Watir 来满足我们的 UI 测试需求 - 它是正确的工具吗?