我正在尝试编写一个打开弹出窗口的水豚规格,然后断言弹出窗口已关闭。
visit "/my_page"
click_button "Open My Popup"
within_window("MyPopup") do
# test things on MyPopup
end
sleep 1 # long enough that window.close() has been called in the popup
# ensure that MyPopup is closed
到目前为止我尝试过的事情......
计算窗口句柄:
page.driver.browser.window_handles.length
即使在弹出窗口关闭后,这仍然是2
如this post所示,请检查弹出窗口中元素的可见性。这似乎不起作用。即使弹出窗口已关闭,我也可以对窗口运行断言,就像它仍然存在一样,就像以前一样:
within_window("MyPopup") do
# test things on MyPopup
end
我确保window.close从弹出窗口中触发(通过添加一些JS,在window.close()之后修改弹出窗口的DOM并对这些更改进行断言)。
我在这里很难过;那里的任何人都知道声称窗口实际关闭的秘诀是什么?
答案 0 :(得分:0)
也许你应该等待你的页面没有一些特定的CSS?
看起来像这样:
def wait_for(timeout = 10)
Timeout.timeout(timeout) do
loop do
break if yield
end
end
end
wait_for { page.first(:css, 'your.specific.css').nil? }