Giriş yapılamayınca hata mesajı vermek

merhaba, bir bot yazıyorum. Kullanıcı bilgilerini giriyor,siteye otomatik giriş yapıyor. İstediğim try-except blogları içerisinde bu işlemleri yapmak. Siteye giriş yapamaz ise hata mesajı verip bilgileri kontrol etmesini istemek. Yalnız except bloguna hangi hatayı yazacağımı bilmiyorum. nasıl yapabilirim

Merhaba, selenium’mu kullanıyorsunuz? Hatayı kim veriyor?

try except bloğunun kullanılması için python programında mevcut olan hata olması gerek diye düşünüyorum. ZeroDivisionError gibi

1 Beğeni

Yakalamak istedigin hata meydana geldiginde konsola bak, oradaki hatayi catch edeceksin.

try:
    #Burada yazdığınız kodlar var.

except:
    print("Giriş yapılamadı.")

Bu kod tum hatalari catch ediyor, tavsiye edilmeyen bir yontem.

1 Beğeni

Hangi fonksiyonun hata yükseltmesini bekliyorsunuz?

Selenium kullandığınızı varsayıyorum;

Bu işi yapan kütüphane için bu cümleyi ‘anlamlandırmalısınız’. “Siteye giriş yapamamak” ne demek?
Örneğin bir login işlemi normal şartlarda 3-5 saniye sürer, biz 10 saniye diyelim. Login tuşuna basıldığında driver’ı 10 saniye (Bkz. Waits) bekletin. Ardından o anki url’i kontrol edin.Eğer login tuşuna basılmadan önceki url ise, login işlemi başarısız olmuştur; bir uyarı mesajı yazdırın.
Yalnız, bazı siteler hata sayfasına yönlendirebiliyorlar. Bahsettiğim işlemleri yapmadan önce bunu deneyip, öğrenin.
Örnek:

onceki_url = "https://xxxxxxx.com"
#login işlemini yapın
driver.implicitly_wait(10)
if driver.current_url != onceki_url:
    driver.execute_script("alert('Uyari mesaji');")

Gayet normal. Çünkü Selenium veya herhangi bir 3rd plugin backend’de post edilen data’nın hangi kriterlere göre kabul edildiğini bilemez. Dolayısıyla hata yükseltemiyor. Ancak yine de bazı siteler hatalı giriş olmadan bile field’ların yanına mesela “6-12 karakter uzunluğunda olmalıdır” gibi ibareler koyuyorlar. Bunları kontrol ederek de istediğinizi yapabilirsiniz ama bu gerçekten zaman kaybı. Yukarıda bahsettiğim yöntem daha sağlıklı.

İstenilen yerlerde kod devam edebilir veya birden fazla kez kullanılabilir.

Evet fakat belirli hatalar yakalanmak istendiğinde farklı yöntemler kullanılır. Denildiği gibi tavsiye edilmeyen bir yöntem

1 Beğeni