2016-07-26 8 views
2

私は同じクラス名を持つ多くのリスト要素を持っていますが、異なるIDを持っています。同じ名前の複数の要素からget_attribute()を呼び出すことはできますか?

例:

<li class="test class" id="111-11-111"> pass </li> 
<li class="test class" id="222-22-222"> pass </li> 
<li class="test class" id="333-33-333"> pass </li> 

そして、私はそれらのIDを抽出する必要があります。

driver.find_element_by_css_selector(".test.class").get_attribute("id") 

しかし、私は何とかのIDの次に到達する必要があります:それは問題ではありません単一のリスト要素については 。 find_elements_by...しようとした場合 は、私は次の例外を受け取る:

「リスト」オブジェクトには、属性'get_attribute'を持っていません。

これを抽出する方法はありますか?あなたがそれらを一つ一つのインデックスを作成することにより、各li要素にアクセスすることができます

listOfLi = driver.find_elements_by_css_selector(".test.class") 

listOfLi = driver.find_elements_by_xpath("//li[class='test class']") 

やCSSセレクタ:

+1

はい、ループを持っており、正確にそれぞれのIDを引っ張ってきますあなたがfind_elementを使用したときのように –

+0

@PadraicCunninghamありがとう –

答えて

3

あなたは、XPathを使用することができます

for eachLiElement in listOfLi: 
    string = eachLiElement.get_attribute("id") 

string与えます各要素のID。

あなたが唯一の第2のIDを取得したい場合は、あなたが

secondId = listOfLi[1].get_attribute("id")

secondIdでそれを行うことができますが、リストfind_elements_by戻っオーバー222-22-222

+0

ありがとう、それは私が必要としたものです。 –

+0

@Greeneyesamurai、あなたは歓迎です –

関連する問題