私はゲブが初めてです。HTML要素のテキストを取得しようとしていました。element.text()
正しい値を返すこともあれば、空の値を返すこともあります。element.@text
期待値を返します。
誰かがこの動作を説明できますか?
element.@text
テキスト属性に直接アクセスするのに対しtext()
、関数を呼び出してテキストにアクセスし、おそらく属性を取得する以外のことを行います。
編集
ドキュメントによると、このtext()
メソッドはfirst
コンテキスト要素のテキスト コンテンツを返します。これが、期待する値を返さない場合がある理由である可能性があります (たとえば、2 番目のコンテキスト要素のテキスト コンテンツを探している場合)。
編集2
NonEmptyNavigator の場合、 text() メソッドの実装は次のようになります。
@Override
String text() {
firstElement().text
}
EmptyNavigator の場合、null が返されます
@Override
String text() { null }
編集3
どちらの Navigator 実装にも text 属性がないため、propertyMissing()
メソッドが呼び出されます。