1

Selenium で前のページに戻るときに発生する StaleElementReferenceException の解決策を探しています。

エラーを再現するためのサンプル コードを次に示します。

from selenium.webdriver import Chrome
from selenium.common.exceptions import NoSuchElementException
browser = Chrome()
browser.get('https://stackoverflow.com/questions/')

# Closing the pop-up for cookies
try:    
    browser.find_element_by_class_name('js-accept-cookies').click()
except NoSuchElementException:
    pass

# Getting list of links on a StackOverflow page
links = browser.find_element_by_id('questions').find_elements_by_tag_name('a')


links[0].click()

# Going back

browser.back()
try:    
    browser.find_element_by_class_name('js-accept-cookies').click()
except NoSuchElementException:
    pass

# Using the old links
links[1].click()

このStale Element Reference Exception: How to solve?のような同様のスタックオーバーフローの質問から根本的な原因を理解しました。

ただし、提案された解決策、つまり、戻るたびにリンクを再取得することは、パフォーマンス上の理由から私には適していません。

代替手段はありますか?

たとえば、新しいページを新しいタブで開くように強制して、2 つのタブ間を移動できるようにしますか?

他の解決策は大歓迎です

4

1 に答える 1