gpt4 book ai didi

python - Selenium 页面源缺少元素

转载 作者:行者123 更新时间:2023-11-28 18:29:39 26 4
gpt4 key购买 nike

我有一个使用 chromedriver 二进制文件的基本 Selenium 脚本。我正在尝试显示一个带有 recaptcha 的页面,然后挂起直到答案完成,然后将其存储在一个变量中以备将来使用。

我遇到的障碍是我无法找到 recaptcha 元素。

#!/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/')

是否需要任何特殊的东西才能看到这个元素?

还有没有办法在用户解决后不刷新页面就可以抓取token?

因为现在 recaptcha-token id 的输入类型是隐藏的。解决后,将创建第二个 recaptcha-token id。这是我希望存储在变量中的值。我正在考虑循环检查具有该 ID 的已找到元素的长度。如果大于 1 解析。但我不确定源代码本身是否更新。

更新:

随着更多的研究,它与元素的性质有关,特别是:标签:<input type="hidden" .所以我想重新表述我的问题,如何提取隐藏元素的值。

最佳答案

您要查找的元素(input)在 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()

关于python - Selenium 页面源缺少元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38413427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com