JS实现点击

这里写自定义目录标题


在这里插入图片描述

function simulateMouseClick(x, y) {

  let event = new MouseEvent("click", {
    clientX: x, // 根据水平偏移量计算 clientX
    clientY: y,  // 根据垂直偏移量计算 clientY
    bubbles: true, // 是否冒泡
    cancelable: true, // 是否可取消
    view: window // 触发事件的窗口
  });
  
  // 指定元素触发点击事件
  let targetElement = document.elementFromPoint(x, y);
  element.dispatchEvent(event);
}

计算图片距离document的可视化位置,计算X Y 根据识别位置+具体点击点偏移量得到内容

function clickElementInContainer (captchaEl, absX, absY) {
    // 起始点位置
  function getElementXY (element) {
    const { x, y } = element.getBoundingClientRect()
    return { x, y }
  }
  // 点击位置
  function simulateMouseClick (x, y) {
    const event = new MouseEvent('click', {
      clientX: x, // 根据水平偏移量计算 clientX
      clientY: y, // 根据垂直偏移量计算 clientY
      bubbles: true, // 是否冒泡
      cancelable: true, // 是否可取消
      view: window // 触发事件的窗口
    })

    // 指定元素触发点击事件
    const targetElement = document.elementFromPoint(x, y)
    targetElement.dispatchEvent(event)
  }
  // 获取开始位置
  const { x: startX, y: startY } = getElementXY(captchaEl)
  simulateMouseClick(startX + absX, startY + absY)
}

const captchaEl = document.querySelector('#captchaClickImg')
// 点击图像内30 * 30的位置
clickElementInContainer(captchaEl, 30, 30)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值