Selenium WebDriver / Java - Имитация движения курсора, подобного человеку

Oct 20 2020

Я хочу автоматизировать простую задачу в Facebook Ads Manager. Эта задача включает в себя настройку кампании и загрузку рекламы. На это у человека может уйти 30 минут. Однако каждый раз они делают одно и то же. Часто с ошибками. Это то, что нужно автоматизировать. Совершено без человеческих эмоций и ошибок.

Facebook очень чувствителен, и я не хочу, чтобы меня забанили по неправильным причинам. Поэтому мне нужно чувствовать себя человеком. Я могу отдыхать между щелчками. Однако само движение курсора должно ощущаться человеком. Мне нужно только смоделировать настоящий человеческий щелчок в этических целях.

Скажем, я получил элемент, к которому хочу переместить курсор:

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 :)

Ответы

1 PiotrM. Oct 21 2020 at 07:49

WebDriver не использует ввод операционной системы; он напрямую связывается с браузером по протоколу http. Если вы хотите смоделировать взаимодействие как «настоящий» ввод с помощью мыши, вы должны использовать решение автоматизации, которое использует фреймворки на основе операционной системы. В случае Windows вы можете использовать, например:

  1. https://github.com/FlaUI/FlaUI (читать https://github.com/FlaUI/FlaUI/wiki/FAQ чтобы узнать, как настроить Chrome для отображения веб-элементов управления для FlaUI)
  2. https://github.com/microsoft/WinAppDriver