• 09-05-2020, 08:13:48
    #1
    Merhabalar,
    Selenium Firefox webdriver ile bir takım otomasyon işlemleri yapan bir sistem yazıyorum ve bitirme aşamasındayım. Ancak takıldığım bir nokta var. Normalde kullanıcı adı/parola gibi bilgileri ana dizindeki txt dosyasından aldırıyordum ancak bunun için bi arayüz hazırlamaya karar verdim. Tasarladığım arayüzde qline satırları ile bu giriş bilgilerini alıyorum ve start butonuna bastığımda Selenium ile bir takım otomasyon işlemlerini yapmak üzere sistem çalışmaya başlıyor. Firefox penceresi vs. açılıyor işlemler sorunsuz devam ediyor ancak benim tasarladığım arayüz donuyor ve pencere adının yanında "Yanıt vermiyor" ibaresi çıkıyor. Butonlara vs. tıklayamıyorum. Bu sorunu nasıl aşabilirim? Arayüzde kapat tuşuna bastığımda Firefox penceresinin kapanmasını ve o thread'teki tüm işlemlerin durmasını istiyorum, bu mümkün müdür? Teşekkürler..
  • 09-05-2020, 08:19:13
    #2
    Selenium işlemi bitene kadar donar. Donmaması için ayri bir thread de baslatacaksin selenium u. Yani ben java da öyle yapıyordum python da da aynıdir sanirim
  • 09-05-2020, 08:24:48
    #3
    Shakumakavelli adlı üyeden alıntı: mesajı görüntüle
    Merhabalar,
    Selenium Firefox webdriver ile bir takım otomasyon işlemleri yapan bir sistem yazıyorum ve bitirme aşamasındayım. Ancak takıldığım bir nokta var. Normalde kullanıcı adı/parola gibi bilgileri ana dizindeki txt dosyasından aldırıyordum ancak bunun için bi arayüz hazırlamaya karar verdim. Tasarladığım arayüzde qline satırları ile bu giriş bilgilerini alıyorum ve start butonuna bastığımda Selenium ile bir takım otomasyon işlemlerini yapmak üzere sistem çalışmaya başlıyor. Firefox penceresi vs. açılıyor işlemler sorunsuz devam ediyor ancak benim tasarladığım arayüz donuyor ve pencere adının yanında "Yanıt vermiyor" ibaresi çıkıyor. Butonlara vs. tıklayamıyorum. Bu sorunu nasıl aşabilirim? Arayüzde kapat tuşuna bastığımda Firefox penceresinin kapanmasını ve tüm işlemlerin durmasını istiyorum, bu mümkün müdür? Teşekkürler..
    Hocam program uzerinden goole hesabıniza giris yapa biliyormusunuz
    Benim bir botum car google hesabına giris yaptığım zaman Bu sekilde ekran geliyoe
  • 09-05-2020, 08:34:32
    #4
    41Yazılım adlı üyeden alıntı: mesajı görüntüle
    Selenium işlemi bitene kadar donar. Donmaması için ayri bir thread de baslatacaksin selenium u. Yani ben java da öyle yapıyordum python da da aynıdir sanirim
    Evet hocam işlemin bitmesini bekliyor sanırım, ancak sistem hep tarayıcı üzerinden çalıştığı için işlemler hiç bitmeyecek

    fermayil adlı üyeden alıntı: mesajı görüntüle
    Hocam program uzerinden goole hesabıniza giris yapa biliyormusunuz
    Benim bir botum car google hesabına giris yaptığım zaman Bu sekilde ekran geliyoe
    Ben Pinterest için kullanıyorum, Google'da hiç denemedim ancak gmail hesap açma işlemlerinin yapıldığı videolara denk gelmiştim..
  • 09-05-2020, 17:58:35
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Pyqt5 Qthread konusunu araştırabilirsin.
  • 10-05-2020, 08:06:28
    #6
    TornadoDAYI adlı üyeden alıntı: mesajı görüntüle
    Pyqt5 Qthread konusunu araştırabilirsin.
    Qthread'in aşağıdaki kullanımı ile arayüzün donmasını engelleyebildim ancak thread'i arayüzdeki stop butonuyla durduramıyorum. Konuyla ilgili bilgisi olan değerli üstadların yorumlarını bekliyorum..

    Alıntı
    from time import sleep
    from threading import Thread

    def tekrarla(ne, bekleme):
    while True:
    print ne
    sleep(bekleme)

    if __name__ == '__main__':
    dum = Thread(target = tekrarla, args = ("dum",1))
    tis = Thread(target = tekrarla, args = ("tis",0.5))
    ah = Thread(target = tekrarla, args = ("ah",3))

    dum.start()
    tis.start()
    ah.start()
  • 10-05-2020, 22:15:44
    #7
    Shakumakavelli adlı üyeden alıntı: mesajı görüntüle
    Qthread'in aşağıdaki kullanımı ile arayüzün donmasını engelleyebildim ancak thread'i arayüzdeki stop butonuyla durduramıyorum. Konuyla ilgili bilgisi olan değerli üstadların yorumlarını bekliyorum..
    Hiç denemediğim birşey açıkcası ama, Threadları durdurmak isteseydim aşağıdaki yöntemleri denerdim.Ayrıca Thread işlerinden nefret eden birisiyim açıkcası

    _Thread__stop()
    _is_stopped
    _stop()

    Bunları kullandığın vakit hata kodu çıkarır. try catch ifadesi içine alırsın hata kodu çıktığında browser.quit() dediğindede firefox penceresi kapanacaktır. Threadler en ufak bir hatada zaten mevcut thread düşer çalışmaz.


    Ayrıca thread eventlerle yapılan işlemlerde var örnek

    from time import sleep
    from threading import Thread, Event
    
    def tekrarla(ne, bekleme):
    while True:
    print(ne)
    sleep(bekleme)
    
    if __name__ == '__main__':
    dum = Thread(target = tekrarla, args = ("dum",1))
    tis = Thread(target = tekrarla, args = ("tis",0.5))
    ah = Thread(target = tekrarla, args = ("ah",3))
    
    dum.start()
    tis.start()
    ah.start()
    ah.running_event.set()
    Burda ah thread bir sefer çalışıyor peşine durduruluyor. Thread işlerinden nefret eden birisiyim açıkcası Bana çok karışık geliyor. ah.running = False şeklinde kullananlarda var. Benim bildiklerim bu kadar.
  • 11-05-2020, 00:12:14
    #8
    aLKaDraZ adlı üyeden alıntı: mesajı görüntüle
    Hiç denemediğim birşey açıkcası ama, Threadları durdurmak isteseydim aşağıdaki yöntemleri denerdim.Ayrıca Thread işlerinden nefret eden birisiyim açıkcası

    _Thread__stop()
    _is_stopped
    _stop()

    Bunları kullandığın vakit hata kodu çıkarır. try catch ifadesi içine alırsın hata kodu çıktığında browser.quit() dediğindede firefox penceresi kapanacaktır. Threadler en ufak bir hatada zaten mevcut thread düşer çalışmaz.


    Ayrıca thread eventlerle yapılan işlemlerde var örnek

    from time import sleep
    from threading import Thread, Event
    
    def tekrarla(ne, bekleme):
    while True:
    print(ne)
    sleep(bekleme)
    
    if __name__ == '__main__':
    dum = Thread(target = tekrarla, args = ("dum",1))
    tis = Thread(target = tekrarla, args = ("tis",0.5))
    ah = Thread(target = tekrarla, args = ("ah",3))
    
    dum.start()
    tis.start()
    ah.start()
    ah.running_event.set()
    Burda ah thread bir sefer çalışıyor peşine durduruluyor. Thread işlerinden nefret eden birisiyim açıkcası Bana çok karışık geliyor. ah.running = False şeklinde kullananlarda var. Benim bildiklerim bu kadar.
    _Thread__stop()
    _is_stopped
    _stop()

    Bu üçünü denedim, farklı farklı hatalar çıkarıyorlar ancak thread çalışmaya devam ediyor, durmuyor. "ah.running_event.set()" denediğimde ise no attribute hatası veriyor. Sanırım ben de son iki gündür thread işinden nefret etmeye başladım..


    Edit:

    Linkteki yöntemle threadi'i sonlandırabildim sonunda. Bunun için de tüm .py dosyalarını tek bir modül haline getirdim ve bi tane global değişkeni referans aldım. Benzer sorunu yaşayan olursa kendine göre uyarlayıp sorunu aşabilir. Yardımcı olmaya çalışan tüm hocalarıma teşekkürler...

    https://www.youtube.com/watch?v=XndHx3EaDgA