【发布时间】: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