在 windows 与框架之间切换
Switch between windows with frames
我有主要的 window 框架和弹出窗口,我可以在其中执行一些操作:
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
但是当在弹出 window 中完成操作并关闭时,我得到一个错误:
Failure/Error: within_frame("frmFrame2"){
Selenium::WebDriver::Error::NoSuchWindowError:
Window is closed
我做错了什么?
我用的是水豚 2.4.4
尝试切换回父框架时,within_frame
方法出现异常。
这似乎是一个错误,所以最好的办法是在 Capybara project.
中将其作为问题提出
同时,最快的解决方案是 rescue/ignore 异常:
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
我有主要的 window 框架和弹出窗口,我可以在其中执行一些操作:
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
但是当在弹出 window 中完成操作并关闭时,我得到一个错误:
Failure/Error: within_frame("frmFrame2"){
Selenium::WebDriver::Error::NoSuchWindowError:
Window is closed
我做错了什么?
我用的是水豚 2.4.4
尝试切换回父框架时,within_frame
方法出现异常。
这似乎是一个错误,所以最好的办法是在 Capybara project.
中将其作为问题提出同时,最快的解决方案是 rescue/ignore 异常:
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