我有一个带框架的主窗口和一个弹出窗口,我可以在其中执行一些操作:
within_frame("MainFrame") do
find("btnNewItem").click #opens popup window
end
within_window(windows.last) do
within_frame("frmFrame2"){
some_operations
find("btnOK").click #closes a popup
}
end
within_window(switch_to_window(windows.first)) do
within_frame("MainFrame") do
find("btnDeleteItem").click #deletes item
accept_popup_dialog
end
end
但是当操作在弹出窗口中完成并且关闭时,我收到一个错误:
Failure/Error: within_frame("frmFrame2"){
Selenium::WebDriver::Error::NoSuchWindowError:
Window is closed
我做错了什么?
我使用Capybara 2.4.4
答案 0 :(得分:1)
尝试切换回父框架时,within_frame
方法发生异常。
这似乎是一个错误,所以最好的办法是将其作为Capybara project中的问题提出。
与此同时,最快的解决方案是拯救/忽略例外:
within_frame("MainFrame") do
find("btnNewItem").click #opens popup window
end
within_window(windows.last) do
within_frame("frmFrame2"){
some_operations
find("btnOK").click #closes a popup
} rescue Selenium::WebDriver::Error::NoSuchWindowError # Add a rescue here
end
within_window(switch_to_window(windows.first)) do
within_frame("MainFrame") do
find("btnDeleteItem").click #deletes item
accept_popup_dialog
end
end