You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PuppeteerSharp中通过坐标模拟点击图片指定位置

在PuppeteerSharp中模拟点击图片指定坐标点的实现方法

如果你的坐标是图片自身的相对坐标(比如示例中的(150,86)是相对于图片左上角的位置),需要先获取图片在页面上的绝对偏移量,再计算出页面级坐标后调用点击方法,具体步骤如下:

  • 第一步:定位目标图片元素,可通过CSS选择器、XPATH等方式获取
  • 第二步:获取图片元素的BoundingBox(包含元素在页面上的绝对位置和尺寸)
  • 第三步:将图片内相对坐标与图片的绝对位置叠加,得到页面级的点击坐标
  • 第四步:调用Mouse.ClickAsync方法完成模拟点击

代码示例

// 1. 定位图片元素(请根据实际页面结构修改选择器)
var targetImage = await _page.QuerySelectorAsync("img.your-image-class");

// 2. 获取图片的位置信息
var imageBounds = await targetImage.BoundingBoxAsync();
if (imageBounds == null)
{
    throw new InvalidOperationException("无法获取图片位置,可能元素未加载或不可见");
}

// 3. 定义图片内的目标相对坐标
int relativeX = 150;
int relativeY = 86;

// 计算页面绝对坐标
double clickX = imageBounds.X + relativeX;
double clickY = imageBounds.Y + relativeY;

// 4. 模拟点击
await _page.Mouse.ClickAsync(clickX, clickY);

特殊情况说明

如果你的(150,86)已经是相对于页面左上角的绝对坐标,可以直接跳过前面的位置计算步骤,直接调用:

await _page.Mouse.ClickAsync(150, 86);

注意:操作前请确保图片已完全加载,可通过await _page.WaitForSelectorAsync("img.your-image-class", new WaitForSelectorOptions { Visible = true });等待图片加载完成,避免获取位置失败。

内容的提问来源于stack exchange,提问作者user467566

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 01:45:55