8

私はRspecでCapybaraを使用しており、ページに次のコードがあります。

<div class="pagination pagination-centered">
  <ul>
    // ...
    <li class="last">
      <a href="/en/articles?page=2">Last »</a>
    </li>
  </ul>
</div>

div「paginationpagination-centered」クラスのリクエストをチェックインしたいと思います。私はこれを試しました:

it "should have pagination" do
  page.should have_selector('div#pagination pagination-centered')
end

この:

it "should have pagination" do
  page.should have_selector('div', :class => 'pagination pagination-centered')
end

そして、どちらも機能しません。問題をどのように解決すればよいですか?

4

4 に答える 4

11

OK、解決策を見つけました。私はhave_css方法を使用する必要があります:

it "should have pagination" do
  page.should have_css('div.pagination.pagination-centered')
end
于 2012-09-29T14:59:41.057 に答える
7
expect(page).to have_selector :css, 'nav li.active'
于 2015-12-22T10:04:00.610 に答える
1

OPについて:

ExiRe、あなたの考え、トラブル、解決策を共有してくれてありがとう-それは私が自分の問題の解決策を見つけるのに役立ちました。私はカピバラではなくRspecを単独で使用していますが、私のテストの1つは偽陰性を生成していました。

it {have_selector('div.pagination')}

ただし、ブラウザでhtmlを調べると、それ以外のことがわかります。

<div class = "pagination">

テストを(ある程度)最初の2つの実験の後者に似たものに変更しました。

it {have_selector('div'、:class =>'pagination')}

そして今、それは通過します。

于 2013-07-27T18:19:38.587 に答える
1

これは、このページの以前の例で試した(そしてテストが失敗した)後、最終的に私のために(RspecでCapybaraを使用して)うまくいったものです:

    it { should have_selector('div', 'pagination.pagination-centered') }
于 2013-09-10T02:42:52.650 に答える