我正在尝试在 Python 中使用 Selenium 来检索特定的 HTML 元素,更具体地说是它的值。
`<input type="hidden" id="FunCaptcha-Token" name="fc-token" value="702178f80cd6ade39.2875608305|r=eu-west-1|meta=3|meta_width=558|meta_height=523|metabgclr=transparent|metaiconclr=%23555555|guitextcolor=%23000000|pk=2CB16598-CB82-4CF7-B332-5990DB66F3AB|at=40|ag=101|cdn_url=https%3A%2F%2Fclient-api.arkoselabs.com%2Fcdn%2Ffc|lurl=https%3A%2F%2Faudio-eu-west-1.arkoselabs.com|surl=https%3A%2F%2Fclient-api.arkoselabs.com|smurl=https%3A%2F%2Fclient-api.arkoselabs.com%2Fcdn%2Ffc%2Fassets%2Fstyle-manager">`
如何用 Selenium 检索它?
我正在使用以下代码:
token_element = WebDriverWait(self.driver, 10).until(
EC.presence_of_element_located((By.NAME, "fc-token"))
)
logger.info(f"Token key{token_element}")
publickey = re.search(r'pk=([0-9A-Fa-f-]+)', token_element.get_attribute("value"))
logger.info(f"PUBLIC key{publickey}")
但从未被发现。我添加了一条打印语句来检查 DOM:
print(f"DOM\n {self.driver.page_source}")
但是缺少该元素。
有人可以帮我解决这个问题吗?
提前致谢。
使用以下代码获取值:
driver.switch_to.default_content()
arkose_iframe = driver.find_element(
By.XPATH,
"//iframe[@id='arkose_iframe']"
)
driver.switch_to.frame(arkose_iframe)
verification_challenge_iframe = driver.find_element(
By.XPATH,
"//iframe[@title='Verification challenge']"
)
driver.switch_to.frame(verification_challenge_iframe)
authenticate_button = driver.find_element(
By.XPATH,
"//input[@name='fc-token']"
)
if authenticate_button:
authenticate_value = authenticate_button.get_property('value')
public_key = re.findall(r'\|pk\=([^\|]+)', authenticate_value)[0]
surl = re.findall(r'\|surl\=([^\|]+)', authenticate_value)[0]