2

私はゲブが初めてです。HTML要素のテキストを取得しようとしていました。element.text()正しい値を返すこともあれば、空の値を返すこともあります。element.@text期待値を返します。

誰かがこの動作を説明できますか?

4

2 に答える 2

0

element.@textテキスト属性に直接アクセスするのに対しtext()、関数を呼び出してテキストにアクセスし、おそらく属性を取得する以外のことを行います。

編集

ドキュメントによると、このtext()メソッドはfirstコンテキスト要素のテキスト コンテンツを返します。これが、期待する値を返さない場合がある理由である可能性があります (たとえば、2 番目のコンテキスト要素のテキスト コンテンツを探している場合)。

編集2

NonEmptyNavigator の場合、 text() メソッドの実装は次のようになります。

@Override
String text() {
        firstElement().text
}

EmptyNavigator の場合、null が返されます

@Override
String text() { null }

編集3

どちらの Navigator 実装にも text 属性がないため、propertyMissing()メソッドが呼び出されます。

実装の詳細については、こちらこちらを参照してください。

于 2013-11-12T09:25:05.383 に答える