selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: stale element not found
(Session info: chrome=120.0.6099.130); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/t...
Изучаем ссылку, скорее всего, либо обновление dom, либо неправильная работа с контекстом. Чтобы понять, что dom изменился - достаточно получить элемент еще раз, тут проблем нет, а вот с контекстом интереснее:
if driver.find_elements(By.CSS_SELECTOR, 'div.captchaContainer_c3b486 iframe'):
hcaptcha_iframe = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'div.captchaContainer_c3b486 iframe')))
# Переключили контекст на фрейм.
driver.switch_to.frame(hcaptcha_iframe)
# Не верно! Мы сменили контекст на hcaptcha_iframe,
# в нашем новом контексте нет элемента, на который ссылается hcaptcha_iframe,
# а значит, оптимальнее обратиться к driver.
#
# site_key = hcaptcha_iframe.get_attribute('src').split('sitekey=')[1].split('&')[0]
# Вот теперь правильно.
site_key = driver.find_element(By.TAG_NAME, 'iframe').get_attribute('src').split('sitekey=')[1].split('&')[0]
driver.switch_to.default_content()