Python Selenium页面源缺少元素
我有一个使用chromedriver二进制文件的基本Selenium脚本。我试图显示一个带有recaptcha的页面,然后挂起直到答案完成,然后将其存储在一个变量中以备将来使用 我遇到的障碍是我找不到recaptcha元素Python Selenium页面源缺少元素,python,selenium,captcha,recaptcha,hidden,Python,Selenium,Captcha,Recaptcha,Hidden,我有一个使用chromedriver二进制文件的基本Selenium脚本。我试图显示一个带有recaptcha的页面,然后挂起直到答案完成,然后将其存储在一个变量中以备将来使用 我遇到的障碍是我找不到recaptcha元素 #!/bin/env python2.7 import os from selenium import webdriver driverBin=os.path.expanduser("~/Desktop/chromedriver") driver=webdriver.Chr
#!/bin/env python2.7
import os
from selenium import webdriver
driverBin=os.path.expanduser("~/Desktop/chromedriver")
driver=webdriver.Chrome(driverBin)
driver.implicitly_wait(5)
driver.get('http://patrickhlauke.github.io/recaptcha/')
有什么特别的东西需要能够看到这个元素吗
还有一种方法可以在用户解算后获取令牌而不刷新页面吗
现在,recaptcha令牌id的输入类型是隐藏的。解算后,将创建第二个recaptcha令牌id。这是我希望存储在变量中的值。我正在考虑使用一个循环来检查具有该id的已找到元素的长度。如果大于1,则进行解析。但我不确定源代码本身是否更新
更新:
随着更多的研究,它与元素的性质有关,特别是:使用标记:
您要查找的元素(输入在iframe中)。在找到元素并与之交互之前,需要切换到iframe
import os
from selenium import webdriver
driver=webdriver.Chrome()
try:
driver.implicitly_wait(5)
driver.get('http://patrickhlauke.github.io/recaptcha/')
# Find the iframe and switch to it
iframe_path = '//iframe[@title="recaptcha widget"]'
iframe = driver.find_element_by_xpath(iframe_path)
driver.switch_to.frame(iframe)
# Find the input element
input_elem = driver.find_element_by_id("recaptcha-token")
print("Found the input element: ", input_elem)
finally:
driver.quit()