-2

Rails 3.2 では、rspec (2.11.0) と capybara 1.1.2 (webrat をインストールしていません) を使用していますが、自分の Web ページのリンクをクリックすると、奇妙なことが起こります。

ホームページのリンクをクリックして別のページに移動しようとしています。以下は、基本的な rspec テストです。

it "should go to agents page" do
  visit 'home'

  #puts page.body
  #links = page.all('a')
  #links.each do |l|
  #  puts l.text
  #end

  page.find_by_id('menu_agents').click

  puts page.body
  #<various content asserts on page currently commented out>
end

私は基本的にページに移動し、リンクを取得してクリックします

リンクが存在します。コメントアウトされたステートメントからわかるように、コンソールのページとリンクのリストを見て確認しました。click_link上記のリンクをクリックするだけでなく、IDの使用と参照も試しました。コードを実行するときにページのコードと html の両方を見ると、要素の ID が表示されます。

すべての場合において、次の結果が得られます。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">

rails sリンクをクリックしてソフトウェアを実行すると、正しいページが読み込まれます。同様に、テストでホームページにアクセスすると、本文をコンソールに出力すると正しい html が表示されるため、正しく読み込まれます。

リンクをクリックすると、ページの読み込みに問題があるようで、ページの読み込みに何らかの障害が発生しています (ただし、テスト自体は失敗しません)。何か案は?

4

1 に答える 1

1

これを試してください:

ページの読み込みには時間がかかります。スリープ機能を使用します。待つ時間があります。

次に、 page.find_by_id('menu_agents')。clickの代わりにpage.find( "#menu_agents")。clickを使用します。

menu_agentsidnameが結果ページの他の場所に存在しないことを確認します。

注:menu_agentsidが一意であることを確認してください。

it "should go to agents page" do

  visit 'home'

  sleep 5

  page.find("#menu_agents").click

  puts page.body
  #<various content asserts on page currently commented out

end
于 2012-12-05T05:50:29.307 に答える