无法从此站点获取验证码的 ID(使用 python)

Can't obtain Captcha's id from this site (using python)

我的问题是我在 HTML 元素中有一个验证码值,我似乎无法使用 find_element() 函数捕获它。

我有这段代码

iframe = driver.find_element_by_xpath("//iframe\[@name='reCAPTCHA'\]")
driver.switch_to.frame(iframe)

ID_token   = driver.find_element(By.ID,"recaptcha-token").get_attribute('value')
print(ID_token)

其目的是从包含验证码令牌的隐藏元素中获取值 但是代码只是死在这些行中而没有告诉我哪里出了问题

这是验证码所在页面的link

非常感谢您的帮助。

您需要先切换到以下框架:

//iframe[@title='reCAPTCHA']

然后我们execute_script注入JS代码得到隐藏值.

代码:

driver.maximize_window()


driver.get("https://cadprev.previdencia.gov.br/Cadprev/pages/modulos/dair/consultarDemonstrativos.xhtml")
wait = WebDriverWait(driver, 30)

wait.until(EC.frame_to_be_available_and_switch_to_it((By.XPATH, "//iframe[@title='reCAPTCHA']")))
print('Switched to frame')

script = "return document.getElementById('recaptcha-token').getAttribute('value');";
print(driver.execute_script(script))

进口:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

输出:

Switched to frame
03AGdBq25p6cmSsoDCWUmTX10Z9OyHR3_58_te8n14eXM0VAS8Tdf1LwLit7us0gf3u3c0hYJMSB1m-2a8lNHBMLrOqlKWQECCLopsUwiSmivTkhb-SRmBcHxNrPQdO5DWBEL0LGHCUHCZ4XJfzswQ_hWNp8PdwZLuTaQRZ1l1ecGiZIMbapxSaz0GPrwfbJfbaXIGZFMsDP-7ofnAkhIir_CxULKbOrj8WyJIct4v--aINIiizn2b0lRiTUuqZZAzDmNKysWDfIRXVa2N4jcZq_Hc9FBSx8zmIyMzxhHDxAxrDYXYrIh1GyBx90RDac3iqKi17g4x_c8ohSUicjpUI41fGyHabZAco-fJd6bgCyM-V1itIZmLHZKSePMhM87DrkWA_xf1_RBmNSDnDzhXCUUXLy0iPfNfRBGInVQfnTBcyA0qxvkvnkWDKVHOtsN7cebt9rnVqu767dKTdlngwnv40dy2HpUC5M07jIKGUttFZxEFxrEv6MMuNmJOWzT7HTFCD02_pbTT8mjSVvuJ02KlpXneh38UVLDIucw8eoaarosNYSL8Xgi20hIJu15-Y7YD942SUBDlHS_wMGCRkWfdDOPGgKi3AkWsWIlEpopMWg83OxX1ooYd6AUocqBlx50fupwYiEl_t8DZ8m5-6ZCSFa5iTyCnkOrcnjuVmIlLu1_oxpcr2LgX57G6Dl0XoGrh4NK7FZBpZLevvrkCC-2tW59LwEMCk9Ejx1E_FduBdbUn2MURNUDF_FQIv88mq7Yv_B9sbyTjxfarU42YroCDgOS31ERi0pxPN6oxpF5fmPg7mgnlKzM4hmC1g0cPwWYt3MlVS3Y_dSGoylH2uAv1c9OE6RiPkG_Ae36SjjaV_uarvlfdeQ8203WbLhZDYMwhsVIN-Riw0LIllUH0HZIxRWe3hbURKqh1bdVhJ4WVliY7OquFvm5oororQHGfDGhhqcahkkUfDKEUpEkJ7GFyQngBA1FI1z8oyxhvL31o40vak7nZe2k6dFSvWYzcS6SIrKI7AOM5YMD0Xa1o9JkWzv6ULXrXbO6WWeYo6x28t0TUqjG-FY0S9ySV5BoIDTgMhwGapG8wIwgwsnqFXAAU3zmQHDmA7jkAiXJ87f_m_bZU9LIH2DRzarKsHO9J1WiWHo8G4NMz6BMr0rO-IU2NWsX5BTqxkB8mAnpxcNQyBLm_Zri-WENfCLHjqToVC8nzxvY41Ohx9tAhnOjn5mCVMNyXL3iw27ncWU8bcPd7vLCE0jyn-WrkvijuY8bl6ilny5gAkpu40KnfnlyyQOS95VgDS4gxuzQ4RAlpJOHDD18n_QIvNOEQcarkPFTnpvH2k8KRbEOUJFifWow0u8La36KGwiCwgGIiGHavf0OuqQWuSQwa-OSrNTnp44ajOBpQtyJy7DP4OYGSyFOrw2XF6noL6PTM1Q81OZcfFx50djrPs3NOnnPJicfUu-0KFbeaSwOO6gm_5FTJWM3FM-T9UUOXs-IjvYk3wGEjR6_4XJaDBza4aqo

Process finished with exit code 0