2016-05-16 6 views
0

同じクラスで2番目のものを取得したいと思います。内部にはリンクがあります。同じクラスでインデックスは異なるxpathを書くには?

<ul> 
    <li class="arrow"> 
     <a href="somelinks.com"> </a> 
    </li> 
    <li></li> 
    <li></li> 
    <li class="arrow"> 
     <a href="someotherlinkstopage.com"> </a> 
    </li> 
    <li></li> 
</ul> 

私は "someotherlinkstopage.com"を取得したいと考えています。それは2番目の最後の李です。私は2番目の最後の李を試すべきですか?またはクラスで行く?

私が試した:

//(li[contains(@class,'arrow'])[2]/a/@href 

//li[contains(@class, 'arrow')][2]/a/@href 

//li[@class='arrow'][2]/a/@href 

答えて

1

あなたは非常に接近していました。次のXPath、

(//li[@class = 'arrow'])[2]/a/@href 

は、要求通りに"someotherlinkstopage.com"を選択します。

あなたはまた、私はさっぱりだが、これは

(//li[@class='arrow'])[last()]/a/@href 

を使用して解決している How can I select an element with multiple classes with Xpath?

+0

私はまだ次のページに行くことができません..先頭ページをこすります。 – Michimcchicken

+0

2回目と3回目の試行と私が提示した解決策は、あなたが示したサンプルHTML 。 2つ目のソリューションで成功していない場合は、代表的なHTML抜粋を提供していません。 – kjhughes

+0

私はhtml ..をチェックしました.. 2つの "矢印"のみを含んでいます..なぜ私は本当になぜ知っているのですか?そしてこれの前に2つの "矢"があることを認識していませんでした(コード@/li [contains(@class、 'arrow')]/a/@ href、それは2ページ目に行きましたが、それは停止しましたが、1ページ目と2ページ目を削ってしまいました。 – Michimcchicken

0

を参照してください。この場合にはを使用していますが、その他arrowssparrow、反対の一致に注意することができますなぜ[2 ]を使用することはできませんが、最後の()ことができます..

私はlast()を使用することを知っているので、2つのクラスという名前の矢印だけ..最初または最後。

+0

** ** [mcve] **の作成は難しいですが、長期的には時間と私たちの両方を節約します。 – kjhughes

+0

はい、私はあなたが何を意味しているのか理解しています。 – Michimcchicken

関連する問題