7

要素が本当に空かどうかを判断する最善の方法を探しています。

<table id="foo">
  <tr>
    <td>Cell One</td>
    <td></td>
  </tr>
</table>

しかし、これらは両方とも次を返しtrueます。

find("#foo td:nth-child(1)").should have_content('')
find("#foo td:nth-child(2)").should have_content('')

だから私はこれを使用しました:

find("#foo td:nth-child(1)").text.should == 'Cell One'
find("#foo td:nth-child(2)").text.should == ''

これは機能しているように見えますが、要素に他の要素が含まれているかどうかを確認しません。たとえば、画像、リンク、またはスパンが含まれる場合があります。

それらのそれぞれ(画像、リンク、またはスパン)を個別に確認できますが、もっと良い方法があるはずです。

要素が空かどうかをテストする方法はありますか?

4

1 に答える 1

6

次のようにして、要素にテキストがなく、子要素がない (つまり、実際には空である) ことを確認できます。

# Has no child elements
find("#foo td:nth-child(2)").all('*').length.should == 0

# Has no text
find("#foo td:nth-child(2)").text.should==''
于 2013-08-12T21:39:08.240 に答える