Switch to popup windows in cucumber, capybara
You can use Capybara in your Cucumber steps to interact with popup windows:
login_window = window_opened_by do click_button 'Open Login Window'endwithin_window(login_window) do fill_in :email, with: "email@example.com" fill_in :password, with: "password" click_button 'Log In'end
I don't think there is a cucumber/capybara way to do this as such.
But you can still change the window using selenium driver commands like this:
#Get the main window handle main = page.driver.browser.window_handles.first #Get the popup window handle popup = page.driver.browser.window_handles.last #Then switch control between the windows page.driver.browser.switch_to.window(popup)
EDIT:Andrews answer below is the correct answer now since new DSL changes were implemented.
In a simple way we can do so, without within_window and without selenium natives.
page.switch_to_window page.windows.firstpage.switch_to_window page.windows.last
or
page.switch_to_window page.windows[0]page.switch_to_window page.windows[-1]
0 - is the first window
-1 - is the last window
windows function return an array of all windows.
Another way, using the title of page.
page.switch_to_window { title == 'Google' }