web-dev-qa-db-fra.com

Comment obtenir l'URL complète avec le chemin d'accès actuel à Capybara

Je suis nouveau dans l'écriture de tests en capybara et j'ai du mal à obtenir l'URL actuelle d'une page. Je l'ai écrit comme ceci:

url = page.current_url + page.current_path

D'une manière ou d'une autre, il s'agit simplement de renvoyer l'URL de base. L'aide est très appréciée.

26
cloudrunner

Essaye ça:

url = URI.parse(current_url)
31
Severin

de doc de session capybara :
URL complète de la page actuelle

def current_url
  driver.current_url
end

Chemin de la page actuelle, sans aucune information de domaine

def current_path
  URI.parse(current_url).path
end

Je pense que ce que tu fais n'est pas bien

12
Зелёный

vous pourriez utiliser have_current_path:

expect(page).to have_current_path(new_user_path)

avant de voir que je faisais quelque chose comme:

  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
1
localhostdotdev