我正在使用 Python Playwright 编写一个脚本来检索网页上的令牌。我能够找到包含它的 iframe,但我很难从 iframe 中提取令牌,该令牌在挑战解决后存储在
data-token-response
属性中。
注意:这里的挑战是我必须解决的具体步骤,然后令牌将填充到
data-token-response
字段
这是我到目前为止所拥有的:
TOKEN_IFRAME: str = "(//iframe[contains(@title,'Widget')])[1]"
self.checkbox_frame = self.page.locator(self.variable.TOKEN_IFRAME)
data-token-response
属性中提取令牌。 async def get_token(self):
iframe_element = self.page.locator(self.variable.TOKEN_IFRAME)
token = await iframe_element.get_attribute("data-token-response")
print(token, await iframe_element.get_attribute("style")) # we do get the style property of the iframe. But the token prints None.
if captcha_token:
_print(f"token: {token}")
else:
_print("CAPTCHA token not found or not yet solved.")
return token
我尝试过的:
为了与
iframe
交互,您需要将其选择为框架。我认为从 locator
切换到 frame_locator
是您可能需要的唯一调整。
iframe_element = self.page.frame_locator(self.variable.TOKEN_IFRAME)
请参阅剧作家的框架处理文档。