Skip to content

【截图异常】在 iframe 中无法截取指定 canvas 元素,take_element_screenshot 截取整个窗口而非目标元素 #8

@xihongshiit2

Description

@xihongshiit2

问题描述

使用 take_element_screenshot 方法尝试截取 iframe 内的 canvas 元素时,始终截取整个浏览器窗口而非目标元素。即使已正确切换到 iframe 上下文,问题仍然存在。

环境信息

  • AutoWK 版本:0.4.2
  • Python 版本:3.13.3
  • 操作系统:win 10 专业版
  • 代理设置:HTTP 代理(已配置认证)

复现步骤

  1. 使用 AutoWK 初始化浏览器会话
  2. 导航至 https://rendezvousparis.hermes.com/client/register
  3. 定位 CAPTCHA iframe 并切换上下文
  4. 尝试截取 iframe 内的 canvas 元素
  5. 检查输出的截图文件

预期结果

应生成仅包含目标 canvas 元素的截图文件 element_screenshot.png

实际结果

生成了整个浏览器窗口的截图,而非指定的 canvas 元素

相关代码

# 初始化配置
client = AutoWK(
    lang="en-US",
    proxyType="http",
    proxyHost="0.0.0.0",
    proxyPort="0000",
    proxyUsername="nnxxxx",
    proxyPassword="xxxxxx",
    userDataDir="userData"
)

# 定位并切换至 iframe
captchas = client.find_elements_by_css_selector('iframe[title="DataDome CAPTCHA"]')
if len(captchas) > 0 and captchas[0].is_displayed():
    client.switch_to_frame(captchas[0])
    
    # 尝试截取 canvas 元素
    canvas = client.find_elements_by_css_selector("canvas")[0]
    canvas.take_element_screenshot(filename="element_screenshot.png")

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions