0

を見つけたとき、私は、次の検索が多すぎる結果セレンwebdriverを持つ要素内

parts.get(i).findElements(By.xpath("//li[starts-with(@class, '_lessons--row-')]")) 

を行なったし、私は開発者ツールで見ながら、それはもうそれらの3以上が存在しないことを、結果の数十を返されました。

parts.get(i)返信シングルWebElement

特定の要素の子ではなくページ全体を検索するように見えます。ダブルスラッシュでこれを引き起こすことができますか? XPathではダブルスラッシュとは何ですか?

+0

'//' '/子孫、または自己::ノード()のための短いです/'。詳細はhttps://www.w3.org/TR/xpath/#path-abbrevを参照してください。 –

+0

"子孫または自己"は、他の人が(ルートから)何と言っているのと矛盾しているのですか? – Dims

+0

上記の仕様へのリンクをご覧ください。そのセクションの先頭にある例をスクロールし、最後のいくつかの段落を読んでください。 '//'と '.'とそれらがどのように連動するかを説明します。 –

答えて

2

ここにはxpathがありません。ルートレベルから

"//li[starts-with(@class, '_lessons--row-')]" 

//検索は、ノードpreappend .から検索します ""

".//li[starts-with(@class, '_lessons--row-')]" 
0

は通常あなたとXPathを開始する必要があり、.//であなたのXPathをお試しくださいルートから要素を見つけるのを止める。

.//li[starts-with(@class, '_lessons--row-')] 
0

//と一致するデータ。ドキュメントルートから始まります。あなたの場合は、使用しようとしています

//li[starts-with(@class, '_lessons--row-')] 

あなたのhtmlですべての一致が返されます。 classで要素の特定の部分を検索する場合は、開始テキスト_lessons--row-が必要です。 xpathをより具体的にする必要があります。

例えば

//div[@id='someid']//li[starts-with(@class, '_lessons--row-')] 
関連する問題