

seleniumを使用してスクレイピングをしたいと考えています。  
下記のコードを実行するとxpathの部分のテキストが表示されます。

[code]

    elem_username = browser.find_elements_by_xpath('//*[@id="__next"]/div/div[4]/div/ul/div[1]/a/div/div[2]/div/ul[1]/li')
    elem_username[0].text
    
[/code]

**わからないこと：xpathのループの仕方がわからない**

xpathの数字を変えて同じ階層にあるものをループで取得するにはどのようにすればよいでしょうか？  
そもそもxpathは変数を入れることができるのでしょうか？下のコードのようにxpathの一部をiに変えても  
うまくいきません。

[code]

    i = 1
    elem_username = browser.find_elements_by_xpath('//*[@id="__next"]/div/div[4]/div/ul/div[i]/a/div/div[2]/div/ul[1]/li')
    elem_username[i-1].text
    
[/code]

**エラー内容**

[code]

    ---------------------------------------------------------------------------
    IndexError                                Traceback (most recent call last)
    <ipython-input-161-ce74f60583df> in <module>
          1 i = 1
          2 elem_username = browser.find_elements_by_xpath('//*[@id="__next"]/div/div[4]/div/ul/div[i]/a/div/div[2]/div/ul[1]/li')
    ----> 3 elem_username[i-1].text
    
    IndexError: list index out of range
    
[/code]

非常に初歩的な内容かもしれませんが教えていただけると幸いです。


CC BY-SA 4.0
2021-08-12T16:19:43.217
80754
2021-08-12T16:19:43.217
47546
question
selenium
seleniumでのxpathのループ