JavaScriptで読み込まれたコンテンツを含むページからデータを取得しようとしています。たとえば、必要なコンテンツは次の形式です。
_<span class="class">text</span>
...
<span class="class">more text</span>
_
find_element_by_xpath(//span[@class="class"]').text
関数を使用しましたが、指定されたクラスの最初のインスタンスのみを返しました。基本的に、_[text, more text]
_などのリストが必要です。find_elements_by_xpath()
関数を見つけましたが、最後に_.text
_を指定すると、エラー_exceptions.AttributeError: 'list' object has no attribute 'text'
_が発生します。
_find_element_by_xpath
_は、text
属性を持つ1つの要素を返します。
find_elements_by_xpath()
は、一致するすべての要素(リスト)を返すため、ループして各要素のtext
属性を取得する必要があります。
_all_spans = driver.find_elements_by_xpath("//span[@class='class']")
for span in all_spans:
print span.text
_
find_elements_by_xpath(xpath)
の詳細については、Selenium Python API docs here を参照してください。
これはアイテムのリストを返します:
all_spans = driver.find_elements_by_xpath("//span[@class='class']")
for span in all_spans:
print span.text