【问题标题】:How do I open a new window in Capybara with Selenium webdriver?如何使用 Selenium webdriver 在 Capybara 中打开一个新窗口?
【发布时间】:2012-10-14 22:31:39
【问题描述】:

我找到了一个代码:page.driver.browser.switch_to.window,它显然正在切换到已经打开的窗口。我们如何使用 page.driver.browser 对象打开一个新窗口?

谢谢

【问题讨论】:

    标签: ruby selenium capybara


    【解决方案1】:

    我在这里结束了,即使是一个旧线程,可能对某人有用,你可以创建和使用这样的窗口:

    new_window = open_new_window
    switch_to_window new_window
    

    或:

    within_window new_window do
    end
    

    您也可以通过 windows 对象找到新窗口。

    open_new_window
    new_window = windows.last
    

    参考资料:

    http://www.rubydoc.info/github/jnicklas/capybara/Capybara/Session:open_new_window

    http://www.rubydoc.info/github/jnicklas/capybara/Capybara%2FSession%3Aswitch_to_window

    https://github.com/teamcapybara/capybara#working-with-windows

    With Capybara, how do I switch to the new window for links with "_blank" targets?

    【讨论】:

    • 这应该是正确答案!它有效且更简单。
    【解决方案2】:

    我最终使用 JavaScript 来做到这一点:

    When /^I open a new window for "([^"]*)"$/ do |url|
    str =
    <<END_TAG
         window.open("#{url}", "window_name", "height=800,width=1000");
    END_TAG
      page.execute_script(str)
    end
    

    【讨论】:

      最近更新 更多