也许这不是我实际遇到的问题,但似乎当我使用target="_blank“"click_link”链接时,会话将焦点保持在当前窗口上。
因此,我希望能够切换到新窗口,或者忽略_blank属性-本质上,我只希望它实际转到链接所指示的页面,这样我就可以确保它是正确的页面。
我使用webkit和selenium驱动程序。
到目前为止,我在下面提交了我的发现。一个更彻底的答案是非常感谢的。
此外,这只适用于selenium - webkit驱动程序的等价物(或者指出我可以在哪里发现它)将非常受欢迎。
发布于 2014-08-02 17:17:15
Capybara 2.3包括新的窗口管理>=。它的用法如下:
new_window = window_opened_by { click_link 'Something' }
within_window new_window do
# code
end
发布于 2011-10-03 23:30:25
此解决方案仅适用于Selenium驱动程序
所有打开的窗口都存储在Selenium的
response.driver.browser.window_handles
看起来像是一个数组。最后一项始终是最近打开的窗口,这意味着您可以执行以下操作来切换到它。
在一个块中:
new_window=page.driver.browser.window_handles.last
page.within_window new_window do
#code
end
只需将焦点重新设置为当前会话:
session.driver.browser.switch_to.window(page.driver.browser.window_handles.last)
在水豚问题页面上引用:https://github.com/jnicklas/capybara/issues/173
有关Selenium的窗口切换功能的更多详细信息:http://qastuffs.blogspot.com/2010/10/testing-pop-up-windows-using-selenium.html
发布于 2015-11-24 19:33:56
Capybara提供了一些方法来简化查找和切换窗口:
facebook_window = window_opened_by do
click_button 'Like'
end
within_window facebook_window do
find('#login_email').set('a@example.com')
find('#login_password').set('qwerty')
click_button 'Submit'
end
更多详细信息请访问:Capybara documentation
https://stackoverflow.com/questions/7612038
复制相似问题