【问题标题】:Rspec current_path not showing the current_path but the previous one before the redirectRspec current_path 不显示 current_path 而是显示重定向前的前一个
【发布时间】:2012-09-16 08:14:25
【问题描述】:

我正在使用 capybara visit 访问我的规范中的一个页面,然后单击另一个将其重定向到另一个页面的按钮。在我打印 current_path 时的第三行,它仍然显示旧的(第一个 url)而不是第二个。我正在为 chrome 使用 selenium-webdriver。知道为什么会这样吗?

编辑:

Selenium 在第 2 行打开另一个浏览器并且没有重定向。所以,它显示的是前一个浏览器的 url,而不是当前新打开的浏览器。

Rails 3.2.6 ruby 1.9.3

current_pathcurrent_url的定义中,表示当前页面的路径和url。 current page 是指上次打开的浏览器吗?

【问题讨论】:

  • 您是否切换到使用新打开的浏览器窗口?
  • 我什么都不做。在命令 click_button 之后,Selenium 会自行打开另一个浏览器。我想知道是这个问题吗?
  • 是的,您必须明确切换到新窗口。你可能想做一些类似看到here的事情。
  • 帮助了 :) 非常感谢。您可以将您的评论作为答案。我会接受的。

标签: ruby-on-rails-3 selenium rspec integration-testing capybara


【解决方案1】:

您必须明确切换到新窗口。

要使用新窗口,您可以:

new_window = page.driver.browser.window_handles.last 
page.within_window new_window do
  #actions performed in new window
end

【讨论】:

  • 实际上下面的方法对我有用。page.driver.browser.switch_to.window(page.driver.browser.window_handles.last)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-17
  • 1970-01-01
  • 2017-07-05
  • 1970-01-01
  • 1970-01-01
  • 2017-08-10
相关资源
最近更新 更多