Site üzerinde dosya sürükleme

Herkese merhaba,
yıllardır çok az sayıda siteye giriyorum, yazılım alanında değilim 31 yaşındayım, makine mühendisiyim.
python ve diğer diller ile hobi olarak ilgileniyorum (neler yapılacağını merak ettiğim için aslında)
sitenin kapatılacak olmasını yeni gördüm az kullansamda çok üzüldüm.
kapatılmaması için bende bi miktar bağışınıza destek verebillirim. yıllardır emeği geçen yardımcı olan herkese teşekkür ederim.

  1. şimdi sorumu yinede sormak istiyorum : selenium üzerinde çalışıyorum.
    bir web sitesinde web arayüzden css xpath elementleri ile belli noktaya kadar geldim.
    ancak ilerlemek için bir noktada searh yaptığım bir dosyayı seçip yine site içerisinde başka bir alana sürükleyip bırakmam gerekiyor, haftalardır sadece buna uğraşıyorum diyebilirim örnek vs de bulamadım.

  2. sorum ise, yazmış olduğum kod evden denediğimde inanılmaz hızlı şekilde tarayıcıyı açıp siteye giriş sağlayabiliyorken iş yerine gittiğimde tarayıcıyı açmak bile 5 dk yı buluyor. ama manuel yaparken yine iş yerinde yine hiç bir kasma olmuyor. (yani iş yerinde manuel yine çok hızlı ama selenium ile aşırı yavaş)

yani manuel bir siteyi açmak ile selenium ile açmak arasında ne farklar var. arka planda bir süreç, güvenllik taraması gibi bir şeyler mi yapıyor nasıl bir yol izleyebilirim yardımcı olabilir misiniz ?

Selenium’un calistirdigi tarayici process’inin komut satiri parametrelerini bularak baslayabilirsiniz. /proc/{pid}/cmdline dosyasinda yazar. (Windows kullaniyorsaniz Process Explorer gibi bir program yukleyip oradan bakmaniz gerekecektir.) Cunku (feci atiyorum) --slave-mode --debug-addr 127.0.0.1:27519 --new-profile gibi parametrelerle calistiriyor tarayiciyi.

Sonra yapacaginiz is elle o sekilde (firefox.exe --slave-mode --debug-addr[...]) calistirilan tarayiciyla Selenium’dan acilan tarayiciyi karsilastirmak olacaktir. Sonuclarin uzerine burada konusabiliriz. Veya kendiniz bakmak isterseniz, bu yontem Selenium’un actigi tarayiciyla oynama firsati verecektir.

Bu arada sysdig, strace, perf gibi sayisiz izleme/performans olcme tool’uyla tarayicinin bu 5 dakikada ne yaptigina veya neyi bekledigine bakabilirsiniz. (Windows’ta Process Monitor ve API monitor var)

“Yine site icerisinde” dediginize gore sayfadaki bir elemani surukleyip birakmaktan bahsettiginizi anliyorum, dosya surukleyip birakmayi degil?

Her halukarda, “selenium [file] drag drop” aratilinca denenebilecek ornek kod parcalari cikiyor.

(Aramalarinizi kaydeden bir arama motoru kullaniyorsaniz kotu sonuclar vermeyi ogrenmis olabilir. DuckDuckGo veya StartPage’de aratin.)

1 Beğeni

Hocam teşekkürler.
Uygulama yüklemek için şirketin IT sinden izin almam gerekiyor. Deneyince sonuçları paylaşırım.
Ek olarak; telegram ve discord linkleri paylaşılmış onlarada giriş yaptım.

Yıllardır ara ara siteye girip buradaki yardımseverliğe hep imrenerek baktım. Ne sorduysam cevap alabildim. Herkese teşekkür ederim.
Keşke benimde faydam dokunabilseydi.

Hocam aşağıdaki kodu yazıyorum.
yinede dosyayı sürükleyip bırakamıyor.
o kadar saçma ki target kısmını sildiğim zaman seçmemiz gereken dosyayı havada tutuyor bir yere bırakamıyor o yüzden sayfa kapanıyor.
ama hedefi girdiğim zaman dosyayı tutma işlemini bile yapamıyor. elementleri doğru girdiğimede o kadar eminimki.
(hızlandırmak için dediklerinizide becereedim. şu anlık evden kodun tamamını çalışır hale getirmeye çalışacağım sonrasında iş yerinde hızlandırmaya uğraşırım diye düşünüyorum.)

Dosyanın bulunduğu elementi bul

        file_element = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.CSS_SELECTOR, '#tile > div.wux-layouts-collectionview.wux-controls-abstract.wux-layouts-responsivecollectionview.wux-layout-largetilecollectionView > div.wux-layouts-body > div > div.wux-scroller.wux-ui-is-rendered > div > div:nth-child(1) > div'))
        )

        # Dosyayı sürükleyip bırak sadece eşleşen değer
        target_element = driver.find_element(By.CSS_SELECTOR, '#tile > div.wux-layouts-collectionview.wux-controls-abstract.wux-layouts-responsivecollectionview.wux-layout-largetilecollectionView > div.wux-layouts-body > div > div.wux-scroller.wux-ui-is-rendered > div > div:nth-child(1) > div')  # Hedef elementi bulun
        actions = ActionChains(driver)
        actions.drag_and_drop(file_element, target_element).perform()