find_elements で表を取得したいが、できない(要素のXPATHが羅列されたリストが返ってくる)

#1 これが、要素名が羅列されたリストになります
print(orders)

ordersという要素のリストを表示しているので、

[<selenium.webdriver.remote.webelement.WebElement (以下略)

という要素のリストが表示されて当然です。
どういう表示を期待していたのでしょうか?

#2 エラーが出ます
StaleElementReferenceException:

ページから要素をfind_element/find_elementsで得た後でページ遷移が発生すると、遷移前に得た要素は無効になります。古いページの要素を参照すると上記のエラーになります。

orders = driver.find_elements(By.XPATH, ~~~した後でprint(order.text)するまでの間にページ遷移が発生したはずです。
print(oders)print(order)だと要素の中は参照しないのでエラーになりませんが、.textのように要素の中の物を参照しようとするとエラーになります。

ページ遷移してしまったら、それまでに取得した要素は全部捨てて、改めてfind_elementsする必要があります。

コメントを投稿

0 コメント