2012-03-26 41 views
4

我正在做功課,需要檢查HTML表格列是否給出了文字。我複製了web_steps.rb的示例,並嘗試更改以適合我的需要,但測試失敗。 步驟:如何檢查表格列是否有文字?

And I should not see 'G' 

步驟定義失敗:

Then /^(?:|I)should not see '([^']*)'$/ do |text| 
    save_and_open_page 
    if page.respond_to? :should 
    page.find('#movies').should have_no_content(text) 
    else 
    assert page.find('#movies').has_no_content?(text) 
    end 
end 

錯誤是:

預期#has_no_content( 「G」)返回true,得到了假 (RSpec的? :Expectations :: ExpectationNotMetError) ./features/step_definitions/movie_steps.rb:35:in /^(?:|I)should not see '([^']*)'$/' features/filter_movie_list.feature:37:in而我不應該看到'G''

電影是表的ID。

表的樣子: enter image description here

我在這裏停留,不能走得更遠。有人可以給我一些提示來解決這個問題嗎?

回答

4

你可以嘗試:

assert page.find('#movies').has_no_content?(">#{text}<") 
+1

謝謝,它的工作原理。它甚至可以用'assert page.find('#movies')。has_no_content?(「​​#{text}​​」)' – 2012-03-26 22:22:55

1

那麼它失敗的原因是因爲它看到「PG」中的大寫字母G。基本上,你想要的是在「評級」列下沒有看到TD細胞的G等級,對吧?您可能想嘗試使用的是XPath,您可以逐步深入到TD並檢查整個單元是否包含您的文本。

+0

我不知道的XPath很好。它能以其他方式完成嗎? – 2012-03-26 16:10:41