2017-05-19 5 views
0

をキャッチされません失敗する。私が見ることができるのは、リンクがクリックされた後、次のページは実際には "/ patients/1/demographics"というURLの人口統計ページですが、何とかカピバラはそれを見つけることができません。カピバラは、私がリンクをクリックした後、パスをチェックRSpecの中に書かれたテストしているAngular2 URL

注:私は手動でレールコントローラでのテストやプリントrequest.urlをしようとすると、私はオフになって、ヒットしているページはAngular2ページがある事ができ"/patients/1/demographics"

一つの理由を取得し、そのためそれでありますカピバラが正しいURLを見つけることができませんか?カピバラと

マイしようとします。

URI.parse(current_url).request_uri #gives "/" 
page.current_url #gives "/" 
u = page.execute_script("window.location.url"); #gives nil as expected 

答えて

0

カピバラさんclick_xxxメソッドだけ言及した項目をクリックしてください。彼らは、そのアクションがどんなものになるか分からないので、クリックが原因で起こるアクションを待つことはありません。そのため、あなたはむしろあなたが答えるため

expect(page).to have_current_path(demographic_information_patient_path(1)) 
+0

おかげで、組み込み/再試行動作を待っているhave_current_pathマッチャーを使用する必要があり、current_patheqマッチャーを使用すべきではありません。 **エラー/エラー:expect(ページ)have_current_path(demographic_information_patient_path(1)) 予想される#〜へのコードを変更しました。 'has_current_path? 'に応答してください。** – Abhi

+0

@AbhiどのバージョンのCapybaraを使用していますか? 'have_current_path'マッチャーがバージョン2.5.0で約18ヶ月前に追加されました。更新する必要があるかもしれません。代わりに、spec_helperに 'capybara/rspec'を指定していないかもしれません - https://github.com/teamcapybara/capybara#using-capybara-with-rspec? –

関連する問題