2016-05-22 4 views
0

は、私はいくつかの簡単なスクリプトを steps.rbファイルRSpecの::期待:: ExpectationNotMetError簡単な例では

Given(/^I am on the YouTube home page$/) do 
    visit 'http://www.youtube.com' 
end 
When(/^I search for "(.*?)"$/) do 
|search_term| 
    fill_in 'search_query', :with => search_term 
    click_on 'search-btn' 
end 
Then(/^videos of large rodents are returned$/) do 
    expect(page).to have_content 'Largest rodents' 
end 

とyoutube.featureをしようか?

+0

予期しないエラーが示唆しているように、Youtubeは期待されたビデオをもう返さない。クエリを「記録」するには、[VCR](https://github.com/vcr/vcr)のようなものを使用します。 – Uzbekjon

+0

thx。私はhttps://www.youtube.com/results?search_query=capybaraの結果として別のテキストを変更するようにしました。たとえば、テキストが変更されました。(ページ).to have_content '最大のげっ歯類' テキスト「Capybara Island ! "それは動作しません – pav

+0

あなたの 'capybara'クエリは'最大の齧歯類 'のテキストを持っている結果で終わることはありません。私が間違っていないと、Youtubeの検索結果はユーザーごとに異なります。結果セットをテストから出力し、分析します。予想されるテキストのテキストはありません。 – Uzbekjon

答えて

0

期待する前にコードにsleepを追加することをお勧めします。手動でページを通過し、テキストが存在することを確認することができます。

これが存在する場合、デフォルトの待機時間が低すぎる可能性があり、テキストがページに表示されるまでに多少時間がかかることがあります。もしそうなら、私はやってお勧めします。その場合は

expect(page).to have_content("Largest rodents", wait: 15)

を、期待して、メッセージを満たしていない期待を発射する前に15秒の最大待機時間をできるようになります。