【问题标题】:rspec assertions on new window新窗口上的 rspec 断言
【发布时间】:2016-07-14 20:08:44
【问题描述】:

我正在使用 watir-webdriver 和 rspec 来编写断言。我在新窗口的元素上运行断言时遇到了一些问题。
这是我正在使用的方法:

def open_window
    foobar = @browser.window(:title, 'Foo View')
    return foobar
end

这就是我编写规范的方式:

describe 'testing a new window' do
    it 'opens a new window' do
        open_window.use
        sleep 2 # hackey way of getting it to work so far
    end
    it 'sees elements on page' do
        # code for expectations of elements
        # Several more it blocks
    end
end

发生了什么: 除非我在不确定的时间内输入sleep 命令,否则似乎窗口在运行所有断言之前就关闭了。是否有某种wait 可用于在整个规范中保持新窗口打开?

【问题讨论】:

  • 您的 Web 应用程序正在打开浏览器,然后在短时间内关闭它?并且您想在它关闭之前执行所有测试?
  • @titusfortner,是的——我正在寻找它在它打开的窗口上运行断言
  • @kmancusi,谁在关闭新窗口?是您正在测试的应用程序还是您告诉 Watir 关闭它? Watir 随机关闭窗口是非常不寻常的。您确定您的一项测试不会导致关闭吗?在窗口关闭之前通过的测试总是相同的集合吗?
  • 是的,如果您的应用程序正在关闭窗口,那么您在测试中就无能为力了。如果打开需要一定时间,可以在切换到窗口时使用#when_present,或者在切换到窗口后的元素上使用。

标签: browser rspec watir-webdriver assertions


【解决方案1】:

还不能评论。

当窗口可用时,假设您没有在页面上执行操作,只需在它关闭之前将所有内容推送到实例变量中,然后针对它运行您的断言?

不理想,但它可能会起作用。

【讨论】:

    【解决方案2】:

    进行了一些重构,现在它可以正常工作了——本质上是按照#when_present.use 的方式说些什么

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多