SeleniumWebDriver/Java-模拟类似人类的光标移动



我想在Facebook广告管理器中自动化一项简单的任务。这项任务包括建立一个活动并上传一些广告。这可能需要30分钟的时间。然而,他们每次都在做同样的事情。经常有错误这应该是自动化的。没有人类情感或错误的

脸书非常敏感,我不希望它以错误的理由禁止我。所以我需要有人情味。我可以在两次点击之间慢慢来。然而,光标移动本身需要有人情味出于道德目的,我只需要模拟真实的人类点击

假设我得到一个元素,我想将光标移向:

WebDriver driver;    
// Set file path of chrome driver
System.setProperty("webdriver.chrome.driver", "C:\chromedriver.exe");
// Create object
ChromeDriver driver = new ChromeDriver(options);
// Go to URL
driver.get("FACEBOOK URL");
// Get element
driver.findElement(By.xpath("//span[contains(text(), 'Setup Campaign')]");

像真人一样将光标移向这个元素的最佳方式是什么?

  • 一个真正的人类会首先移动鼠标。不仅仅点击元素

  • 他们会慢慢移动鼠标/光标。它可能需要500-1000毫秒。当然不会马上。

  • 他们会以弯曲的方式移动鼠标/光标。不仅仅是在一条100%的直线上。可能,以一种随机的方式?所以可能需要一些随机性的元素?

我对Selenium很陌生,所以如果有任何意见,我们将不胜感激。

我正在用Java编写代码:(

WebDriver不使用操作系统输入;它通过http协议直接与浏览器通信。如果你想像"真正的"鼠标输入一样模拟通信,你必须使用一个使用基于操作系统的框架的自动化解决方案。在Windows的情况下,您可以使用例如:

  1. https://github.com/FlaUI/FlaUI(阅读https://github.com/FlaUI/FlaUI/wiki/FAQ了解如何配置Chrome以公开FlaUI的web控件(
  2. https://github.com/microsoft/WinAppDriver

我知道这并不是您所要求的,但在这种情况下,我建议您使用Facebook API而不是硒。

它比你的方法更稳定,而且没有被禁止的风险。

https://developers.facebook.com/docs/marketing-api/reference/v12.0

最新更新