【问题标题】:verify scroller button works with preloaded data with watir-webdriver使用 watir-webdriver 验证滚动按钮是否适用于预加载的数据
【发布时间】:2013-09-10 16:09:43
【问题描述】:

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

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

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

有什么建议吗?

【问题讨论】:

    标签: ruby testing automation watir


    【解决方案1】:

    您可以使用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? 用于返回真/假结果。

    【讨论】:

    • 太棒了,感谢您的帮助。我第一次尝试使用可见?但是遇到了一些问题,这要好得多。
    猜你喜欢
    • 1970-01-01
    • 2015-03-10
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    相关资源
    最近更新 更多