Selenium WebDriver / Java - Mensimulasikan Gerakan Kursor Seperti Manusia

Oct 20 2020

Saya ingin mengotomatiskan tugas sederhana di dalam Pengelola Iklan Facebook. Tugas ini melibatkan pengaturan kampanye dan mengunggah beberapa iklan. Manusia membutuhkan waktu 30 menit untuk melakukan ini. Namun, mereka melakukan hal yang sama setiap saat. Seringkali dengan kesalahan. Itu adalah sesuatu yang harus diotomatiskan. Dilakukan tanpa emosi atau kesalahan manusia.

Facebook sangat sensitif dan saya tidak ingin melarang saya karena alasan yang salah. Jadi saya perlu merasa sebagai manusia. Saya bisa meluangkan waktu di antara klik. Namun, gerakan kursor itu sendiri perlu terasa seperti manusia. Saya hanya perlu mensimulasikan klik manusia nyata untuk tujuan etis.

Katakanlah saya mendapatkan elemen yang ingin saya pindahkan kursor saya ke:

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')]");

Apa cara terbaik untuk menggerakkan kursor saya ke elemen ini seperti yang dilakukan manusia sungguhan?

  • Manusia sungguhan pertama-tama akan menggerakkan mouse. Bukan hanya klik elemennya

  • Mereka akan menggerakkan mouse / kursor secara perlahan. Ini bisa memakan waktu sekitar 500-1000 milidetik. Tentu tidak secara instan.

  • Mereka akan menggerakkan mouse / kursor dalam bentuk melengkung. Tidak hanya dalam garis lurus 100%. Mungkin, secara acak? Jadi beberapa elemen keacakan mungkin diperlukan?

Saya cukup baru di Selenium, jadi masukan apa pun akan sangat dihargai.

Saya menulis kode saya di Java :)

Jawaban

1 PiotrM. Oct 21 2020 at 07:49

WebDriver tidak menggunakan input sistem operasi; itu berkomunikasi langsung dengan browser melalui protokol http. Jika Anda ingin mensimulasikan komunikasi seperti input mouse 'nyata', Anda harus menggunakan solusi otomatisasi yang menggunakan kerangka kerja berbasis sistem operasi. Dalam kasus Windows, Anda dapat menggunakan misalnya:

  1. https://github.com/FlaUI/FlaUI (Baca https://github.com/FlaUI/FlaUI/wiki/FAQ untuk mendapatkan pengetahuan tentang cara mengkonfigurasi Chrome untuk mengekspos kontrol web untuk FlaUI)
  2. https://github.com/microsoft/WinAppDriver