如何获取Capybara中当前路径的完整URL

时间:2013-12-11 14:56:29

标签: ruby rspec capybara

我刚开始在水豚中编写测试,但我无法获取页面的当前URL。我是这样写的:

url = page.current_url + page.current_path

不知何故,它只是返回基本URL。非常感谢帮助。

3 个答案:

答案 0 :(得分:30)

试试这个:

url = URI.parse(current_url)

答案 1 :(得分:11)

来自capybara session doc


当前页面的完全限定URL

def current_url
  driver.current_url
end

当前页面的路径,没有任何域信息

def current_path
  URI.parse(current_url).path
end

我认为你所做的事情是不对的

答案 2 :(得分:0)

您可以使用have_current_path

expect(page).to have_current_path(new_user_path)

在看到我在做类似的事情之前:

  def current_path
    current_uri = URI.parse(page.current_url)
    current_path = current_uri.path
    current_path += "?#{current_uri.query}" if current_uri.query.present?
    current_path
  end