1

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

由于它们都是同时加载的,因此很难确定图像是否正在更改。

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

有什么建议么?

4

1 回答 1

1

您可以使用该方法检查图像是否对用户实际可见present?。您也可以使用该visible?方法,但如果元素不存在,则会引发异常。.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?返回真/假结果。

于 2013-09-06T16:24:13.103 回答