32

私はこれを何時間もハッキングしてきましたが、それを理解することはできません. XPath を使用してテキスト値を見つけるのは難しく、この問題には可動部分が多すぎます。

大きなテーブルを含む Web ページがあり、このテーブルのセクションには、特定のユニットに割り当てられているユーザー (担当者) のリストが含まれています。ほとんどの場合、1 つのユニットに複数のユーザーが割り当てられており、特定のユーザーがテーブル上のいずれかのユニットに割り当てられていることを確認する必要があります。私はほぼすべてのセレクターに XPath を使用してきましたが、これについては半分ほど進んでいます。このコンテキストcontainsで withを使用する方法がわかりません。text()

これが私がこれまでに持っているものです:

//td[@id='unit']/span [text()='asdfasdfasdfasdfasdf (Primary); asdfasdfasdfasdfasdf, asdfasdfasdfasdf; 456, 3456'; testuser]

上記の XPath クエリは、私が見ている特定のセクションのすべてのテキストをキャプチャします。これは素晴らしいことです。ただし、testuser がそのセクションにいるかどうかだけを知る必要があります。

4

1 に答える 1

82

text()テキストノードのセットを取得します。//span//text() などのコンテキストで使用する傾向があります。

要素内のテキストに何かが含まれているかどうかを確認しようとしている場合は、次のようなcontains結果ではなく、要素で使用する必要があります。text()

span[contains(., 'testuser')]

XPath はコンテキストに非常に適しています。ノードに必要なテキストが正確にわかっている場合は、次のことができます。

span[.='full text in this span']

しかし、(exslt などを使用して) 正規表現のようなことをしたい場合は、string() 関数を使用する必要があります。

span[regexp:test(string(.), 'testuser')]
于 2013-01-28T20:49:51.487 に答える