ruby - 使用 watir-webdriver 验证滚动按钮是否适用于预加载数据

标签 ruby testing automation watir

我正在尝试验证滚动按钮是否正常工作。该按钮是一个箭头图像,可滑动一行图像/链接,显示页面加载时全部加载的 10 张图像中的 5 张。困难的是图像是从提供的第 3 方填充的,因此 url 一直在变化。唯一的其他标识符是它的类和文本,类对它们都是相同的。

由于它们都是同时加载的,因此很难确定图像是否发生了变化。

如果你去http://www.hayneedle.com/product/curiousgeorgepeelstickgiantmural.cfm并滚动到“给你的建议”,您可以在右侧看到滚动到一组新的建议。这个按钮以前坏过,所以需要一个简单的方法来恢复它。

有什么建议吗?

最佳答案

您可以使用 present? 方法检查图像是否对用户实际可见。您也可以使用 visible? 方法,但如果元素不存在,它会抛出异常。您可以在博文 "Checking for an element – exists?, visible?, present?" 中看到这些方法与 .exists? 方法的比较。 .

知道这一点后,您可以单击滚动箭头,然后检查最后一张图片是否存在(即实际可见)。

# Go to the page
browser = Watir::Browser.new :firefox
browser.goto 'http://www.hayneedle.com/product/curiousgeorgepeelstickgiantmural.cfm'

# This is the scroller control
scroller = browser.div(:id => 'HN_PP_RelatedCats')

# (optional) Check that the last image is *not* displayed
puts browser.div(:class => 'HN_Scroller_Cont').link(:index => 9).present?
#=> false

# Click the right scroller
scroller.div(:class => 'HN_Scroller_R').click

# Check that the last image is displayed
puts browser.div(:class => 'HN_Scroller_Cont').link(:index => 9).when_present.present?
#=> true

请注意,使用 when_present.present? 检查最后一个链接/图像。 when_present 允许滚动完成。没有它,您可能会在滚动完成之前检查元素(即漏报)。 present? 用于返回真/假结果。

关于ruby - 使用 watir-webdriver 验证滚动按钮是否适用于预加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18659799/

相关文章:

ruby-on-rails - 无法从 GoogleOauth2 对您进行身份验证,因为 "Authenticity error"

ruby-on-rails - 比较长文本(使用\t 和\n)时如何很好地格式化自动测试和 RSpec?

java - 如何制作 Java.awt.Robot 类型的 unicode 字符? (可能吗?)

docker - 如何在一个容器中运行多个JMX文件?

ruby-on-rails - 在 Ruby on Rails 中测试字符串是否为数字

ruby-on-rails - 如何从 ruby​​ 中的 CSV 文件中获取标题

ruby-on-rails - 为什么我的 HTTP Origin header 与 request.base_url 不匹配以及如何修复?

python - Pytest - 错误与失败

testing - 测试系统的生产数据

javascript - 如何在不影响速度的情况下打开多个 puppeteer 实例