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

标签 javascript jquery security selenium automation

假设我有一个元素 A 和一个元素 B。我启动了 Selenium 或 PhantomJS,它们也可以通过坐标集移动鼠标。

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

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

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

最佳答案

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

但是,

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

所以,

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

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

相关文章:

jquery - Rangeinput(Jquery Flow Tools)1 个范围内有 2 个句柄,可能吗?

java - 签名 jar 篡改验证

java - JAAS有什么意义

javascript - 将 jQuery 'rand color' 保存到本地存储?

javascript - ios 上的位置警报

javascript - Firefox 无法读取获取响应 header

javascript - jquery 从 select 标签中获取值并在点击函数中使用它

jquery - 我如何修改 jQuery 循环插件以用于两个图像幻灯片而不是一个?

java - 小程序 java.io.FilePermission 异常

javascript - 如何将 json 数组中的重复值追加到另一个数组?不从数组中删除