javascript - Selenium 的 mouseMove() 和实际的鼠标移动有什么区别?

标签 javascript jquery security selenium automation

假设我有元素 A 和元素 B。我已经启动了 Selenium 或 PhantomJS,它们还具有通过坐标集移动鼠标的能力。

我找到了元素 A(链接)和元素 B(提交按钮)的形状。我绘制贝塞尔曲线或将预先录制的人类鼠标移动转换为从元素 A 到元素 B。

我的直觉是 mouseMove()只需将光标“传送”到该坐标集。这与实际使用鼠标有何不同?

如果我在我的网站上跟踪用户的鼠标移动,假设他们使用复杂的移动曲线,我是否能够判断他们正在使用自动化工具?

最佳答案

根据我的经验,如果您从 JS 跟踪鼠标并且机器人仅使用 selenium 到 移动没有“复杂运动曲线”的鼠标指针答案是肯定的 .

但是,

如果“机器人”专门设计用于创建“复杂的运动曲线”或例如“重放记录的运动数据集” ,我认为你不能 . (Similar question 也有否定答案)。

所以,

您可以设计一个“启发式解决方案”,但不是一个完美的解决方案。如果这是您想要的,我可以尝试给您一些想法。否则,如果您可以遵循其他路径,我会建议您使用某种 Selenium 检测验证码 .

关于javascript - Selenium 的 mouseMove() 和实际的鼠标移动有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39693930/

相关文章:

javascript - TypeError:jQuery.browser未定义

javascript - 在嵌套对象中查找任何错误值的更好的 vanilla JS 方法?

javascript - Lodash getOr for null

javascript - Ipad 上的列表项背景颜色不会改变

javascript - 使用 jQuery 向 <select> 添加选项?

python - 如何为 Google App Engine 实现简单 session ?

javascript - JavaScript和按位运算符

jquery - 如何使用 TypeScript 和 jquery.d.ts 创建通用(空)JQueryDeferred 对象

android - 在公钥基础设施中使用方形 okHTTP 库的 HTTPS/SSL

java - Java Applet Com端口