chrome 下的 web 元素模拟点击有什么办法吗?

2023-07-23 20:58:46 +08:00
 Features
webpack 构建的网页
发现用 querySelector 获取的元素,确实获取到了,能打印出正确的属性
但是使用 click()方法进行模拟点击无效

自己构造 Event 事件也没有效果
目前只能依赖按键精灵模拟点击,极度依赖屏幕分辨率

有什么好的通用的办法可以实现点击吗?
818 次点击
所在节点    问与答
7 条回复
asche910
2023-07-23 21:10:07 +08:00
插眼,等一个回答
des
2023-07-23 21:18:10 +08:00
试试用 dispatchEvent ?

['mousedown', 'click', 'mouseup'].forEach(type => { element.dispatchEvent(new MouseEvent(type)) })
Features
2023-07-23 21:56:45 +08:00
@des 之前试过,没有效果
Rache1
2023-07-24 09:51:59 +08:00
你得先确认一下,他这个是监听的哪个事件 🧐,万一别人监听的不是 click 呢
Features
2023-07-24 10:36:45 +08:00
@Rache1 是啊,试了 tab,keyup ,keydown,keypress 都不行。。。
Rache1
2023-07-24 11:03:40 +08:00
@Features 选中元素,在控制台执行:getEventListeners($0) ,看看绑定了哪些事件
Features
2023-07-24 12:55:11 +08:00
@Rache1 谢谢,我找到了,他这个太离谱了,要先触发 touchstart ,再触发 touchend ,再触发 click 才行。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/959033

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX