Tanımlanan nesneye tıklatma

İyi günler benim bir projem var.
Şimdi elimde bir jpeg veya png uzantılı bir image dosyası var . Browserda bu imaj dosyası görüldüğü yerlere tıklama yapmak istiyorum. Bunun için hangi modülleri öğrenmem gerekiyor ?
Şuan selenium öğrenerek başladım…

Merhaba. İnternet otomasyonu için selenium kullanılabilir; ancak nesneleri seçerken id, class gibi özellikleri ile seçebilirsiniz. Siz ekranda o fotoğrafı arayacaksanız bu görüntü işlemeye giriyor, mümkünse daha kolay bir yol bulun. Eğer tek çözüm buysa tarayıcıdan screenshot alıp fotoğraflarınızı onun içinde ararsınız.

1 Beğeni

Evet hocam maalesef id, class yapamıyorum. Fotoğraf verip tarayıcıda görüntüyü yakalamam gerek.
İnternetten biraz baktım ama tam olarak nereden başlamam ve hangi modülleri kullanmam gerektiğini anlamadım.

Aradığınız fotoğrafın hangi tag içerisinde olacağı belli mi? Mesela kesin img tagı içerisinde olacaksa sayfadaki bütün img taglarını bulup içeriklerini karşılaştırabilirsiniz.

Resmi algılamak için de openCV kütüphanesini kullanabilirsiniz.

Flash player üzerinde tıklama yapmayı düşünüyorum.

Sanırım bir oyun için bot yazmak için istiyorsunuz bunu. Flash player üzerinden bir otomasyon yapılıyor mu Selenium ile bilmiyorum. Ancak yapılmadığını düşünüyorum. Eğer bilen varsa böyle bir şey mümkünse bu konuyla bende ilgileniyorum.

Evet hocam biraz ayrıntılı bir proje olacak.
Hesaba giriş yapmak için selenium. Aslında selenium ile tıklama da yapılabiliyor ancak elimde html kodu olmayacak. O yüzden pyautogui ile tıklama yapmayı düşünüyorum. Ama resimi tanımlayıp bulmak gerekiyor. Galiba opencv kullanmam lazım

Bildiğim kadarı ile Flash Player canvas elementini kullanıyor (veya normal web elementlerini kullanmıyor), eğer öyleyse openCV gibi bir görüntü işleme kütüphanesi kullanmanız şart olabilir.

Ama Flash Player için birkaç şeye rastladım, belki görüntü işlemeden kurtarır.
https://www.guru99.com/flash-testing-selenium.html

1 Beğeni

Teşekkürler güzel kaynaklar varmış lazım olursa bakarım.

Şimdi kaydettiğim ilerlemeden bahsedeyim.
Biraz github karıştırdıktan sonra pyautougui modülü ile ekranda bahsettiğim şekilde arama yapılabileceğini farkettim.

pyautogui.locateOnScreen('resim.png')

Bu aradığınız şeyin lokasyonunu bulmak için gerekli fonksiyon. 4 parametre döndürüyor.print ile incelersek:

print(pyautogui.locateOnScreen('resim.png'))
>>>(1101, 252, 50, 50)
  1. Sayı x koordinatı
  2. Sayı y koordinatı
  3. Sayı bulunan kısmın genişliği
  4. Sayı bulunan kısmın uzunluğu
    Bize sadece koordinatlar gerekiyor bunun için
pyautogui.center(pyautogui.locateOnScreen('resim.png'))

Tıklama içinse

pyautougui.click(pyautogui.center(pyautogui.locateOnScreen('resim.png')))

Bu arada locate fonksiyonun 2 parametresi daha var

pyautogui.locateOnScreen('resim.png' , confidence=1, grayscale=False )

confidence ile piksel hassasiyeti yapılıyor. Mesela 0.5 uyuşma gibi. Tabi bu yanlış tespite sebep olabilir. Bunu kullanmak için opencv nin yüklü olması gerekiyor.
grayscale ise True olduğunda değerlendirmeyi grinin tonlarında yapmasını sağlıyor. Bu işlem süresini kısaltıyor ama hatalı eşlemeler yapabiliyor.
Tabi bu anlattıklarımın daha kapsamlısı opencv ile yapılıyordur ve swf uzantılı animasyonlu şeylerde daha kesin sonuç veriyordur.

2 Beğeni

Bir tane oyunda, bunu yapmak istiyorum yardımcı olur musun ?
3 tane screenshot arayıp onlara tıklamasını istiyorum gördükçe.
ekran başında durup aynı şeyi tekrarlamak yoruyor.