Selenium WebDriver / Java - İnsan Gibi İmleç Hareketini Simüle Edin

Oct 20 2020

Facebook Reklam Yöneticisi'ndeki basit bir görevi otomatikleştirmek istiyorum. Bu görev, bir kampanya oluşturmayı ve bazı reklamları yüklemeyi içerir. Bunu yapmak bir insanın 30 dakikasını alabilir. Ancak her seferinde aynı şeyi yapıyorlar. Genellikle hatalarla. Otomatikleştirilmesi gereken bir şey. İnsan duyguları veya hataları olmadan yapılır.

Facebook çok hassas ve yanlış nedenlerle beni yasaklamasını istemiyorum. Bu yüzden insan hissetmeye ihtiyacım var. Zamanımı tıklamalar arasında alabilirim. Bununla birlikte, imleç hareketinin kendisinin insani hissetmesi gerekir. Etik amaçlar için yalnızca gerçek bir insan tıklamasını simüle etmem gerekiyor.

İmlecimi doğru hareket ettirmek istediğim bir öğe aldığımı varsayalım:

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

Gerçek bir insanın yapacağı gibi imlecimi bu öğeye doğru hareket ettirmenin en iyi yolu nedir?

  • Gerçek bir insan önce fareyi hareket ettirir. Sadece öğeyi tıklamayın

  • Fareyi / imleci yavaşça hareket ettirirler. 500-1000 milisaniye kadar sürebilir. Kesinlikle anında değil.

  • Fareyi / imleci kavisli bir şekilde hareket ettirirler. Sadece% 100 düz bir çizgide değil. Muhtemelen, rastgele bir şekilde? Öyleyse bazı rastgelelik unsurlarına ihtiyaç duyulabilir mi?

Selenium'da oldukça yeniyim, bu nedenle herhangi bir girdi çok takdir edilecektir.

Kodumu Java ile yazıyorum :)

Yanıtlar

1 PiotrM. Oct 21 2020 at 07:49

WebDriver bir işletim sistemi girişi kullanmaz; tarayıcı ile doğrudan http protokolü üzerinden iletişim kurar. İletişimi 'gerçek' bir fare girdisi gibi simüle etmek istiyorsanız, işletim sistemi tabanlı çerçeveleri kullanan bir otomasyon çözümü kullanmanız gerekir. Windows durumunda, örneğin şunları kullanabilirsiniz:

  1. https://github.com/FlaUI/FlaUI (oku https://github.com/FlaUI/FlaUI/wiki/FAQ FlaUI için web denetimlerini açığa çıkaracak şekilde Chrome'un nasıl yapılandırılacağı hakkında bilgi edinmek için)
  2. https://github.com/microsoft/WinAppDriver