//Verilen site adına login işlemi yapan fonksiyon. public static void LoginIslemiYap(string SiteAdi) { string KullaniciAdi = "ygtest", Sifre = "test2015"; ChromeDriverSingleton.yeniKopyaYarat(); //Sitenin yüklenme süresini 60 sn olarak ayarlar.. ChromeDriverSingleton.getDriverInstance().Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(ChromeDriverSingleton.timeoutDegeri); //Console.WriteLine(" ------" + ChromeDriverSingleton.getDriverInstance().Manage().Timeouts().PageLoad); //Elementin yüklenme süresini 15 saniye olarak ayarlar.. ChromeDriverSingleton.getDriverInstance().Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(15); //Cookieleri silerek tekrardan login ekranina gelinmesi işlemini yapan fonksiyonlar.. ChromeDriverSingleton.getDriverInstance().Manage().Cookies.DeleteAllCookies(); string[] epostaMesaji = ChromeDriverSingleton.epostaMesaji; if (!ChromeDriverSingleton.parametreIleMiGeldi) { ChromeDriverSingleton.EpostalariSifirla(); epostaMesaji = ChromeDriverSingleton.epostaMesaji; } //Tekrar tekrar chromeDriver yaratılmamaktadır.. IWebDriver driver = ChromeDriverSingleton.getDriverInstance(); bool webSitesiCevapVerdiMi = false; //Chrome driver ekranının minimum olması sağlandı.. //driver.Manage().Window.Minimize(); WebSitesi ilgiliWebSitesi = WebSitesiniGetir(SiteAdi); System.Threading.Thread.Sleep(1000); if (ilgiliWebSitesi != null) { if (SiteAdi.Equals(ilgiliWebSitesi._siteAdi)) { webSitesiCevapVerdiMi = SiteCevapVerdiMi(driver, ilgiliWebSitesi._url, KullaniciAdi, epostaMesaji); } else { webSitesiCevapVerdiMi = SiteCevapVerdiMi(driver, ilgiliWebSitesi._url, KullaniciAdi, epostaMesaji); } driver = ChromeDriverSingleton.getDriverInstance(); ChromeDriverSingleton.exceptionSiteCevapVerdiMiCount = 0; ChromeDriverSingleton.siteCevabiOlumluMu = false; if (webSitesiCevapVerdiMi) { KullaniciGirisiYap(driver, KullaniciAdi, Sifre, ilgiliWebSitesi, epostaMesaji); } else { ChromeDriverSingleton.siteCevabiOlumluMu = false; } ChromeDriverSingleton.exceptionCountWebSiteleriSifirla(); ChromeDriverSingleton.exceptionLoginSonrasiCountSifirla(); servisUrlleriniKontrolEt(ilgiliWebSitesi, epostaMesaji); if (!ChromeDriverSingleton.parametreIleMiGeldi) { EpostaGonder(ChromeDriverSingleton.siteCevabiOlumluMu, KullaniciAdi, SiteAdi, epostaMesaji); ChromeDriverSingleton.siteCevabiOlumluMu = false; } webSitesiCevapVerdiMi = false; } else { ChromeDriverSingleton.griYaz("İlgili web sitesi veritabaninda bulunamadi.."); } }
//Sitenin cevap verip vermediğini sorgulayan fonksiyon. public static bool SiteCevapVerdiMi(IWebDriver driver, string SiteAdi, string KullaniciAdi, string[] epostaMesaji) { try { driver.Url = SiteAdi; ChromeDriverSingleton.siteCevabiOlumluMu = true; return(true); } catch (Exception ex) { if (ex is WebDriverTimeoutException) { ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.logDosyasiPath, SiteAdi + " web sitesi cevap vermemektedir.. Hata: " + ex.ToString()); ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.hataDosyasiPath, SiteAdi + " web sitesi cevap vermemektedir hata kodu: 108 Hata:" + ex.ToString()); ChromeDriverSingleton.kirmiziYaz(SiteAdi + " web sitesi cevap vermemektedir.."); epostaMesaji[ChromeDriverSingleton.ePostaSayisi] = "<font color='red'>" + SiteAdi + " web sitesi CEVAP VERMEMEKTEDİR..</font>"; ChromeDriverSingleton.ePostaSayisi++; ChromeDriverSingleton.siteCevabiOlumluMu = false; return(false); } if (ChromeDriverSingleton.exceptionSiteCevapVerdiMiCount < 3) { ChromeDriverSingleton.yesilYaz(SiteAdi + " sitesi driver'a url yüklenirken exceptiona düştü, giriş deneme sayisi: " + ChromeDriverSingleton.exceptionSiteCevapVerdiMiCount); ChromeDriverSingleton.exceptionSiteCevapVerdiMiCount++; ChromeDriverSingleton.kirmiziYaz("Exception. Bir sonraki deneme için 30 saniye bekliyor.."); System.Threading.Thread.Sleep(30000); ChromeDriverSingleton.driver.Quit(); ChromeDriverSingleton.driver = new ChromeDriver(); ChromeDriverSingleton.yeniKopyaYarat(); ChromeDriverSingleton.siteCevabiOlumluMu = SiteCevapVerdiMi(ChromeDriverSingleton.driver, SiteAdi, KullaniciAdi, epostaMesaji); if (ChromeDriverSingleton.siteCevabiOlumluMu) { return(true); } else { return(false); } } else { ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.logDosyasiPath, SiteAdi + " web sitesine giris yapilamamaktadir.. Hata:" + ex.ToString()); ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.hataDosyasiPath, SiteAdi + " web sitesine giris yapilamamaktadir hata kodu: 109 .. Hata: " + ex.ToString()); ChromeDriverSingleton.kirmiziYaz(SiteAdi + " web sitesine giris yapilamamaktadir.."); epostaMesaji[ChromeDriverSingleton.ePostaSayisi] = "<font color='red'>" + SiteAdi + " web sitesine GIRIS YAPILAMAMAKTADIR..</font>"; ChromeDriverSingleton.ePostaSayisi++; ChromeDriverSingleton.siteCevabiOlumluMu = false; return(false); } } }
//Bir web sitesine kullanıcı girişi yapmaya yarayan fonksiyon. public static bool KullaniciGirisiYap(IWebDriver driver, string KullaniciAdi, string Sifre, WebSitesi ilgiliWebSitesi, string[] epostaMesaji) { //Flash animasyonu olan sitelerde bekleme yapmazsak kullanıcı adı ve sifre bolumlerini bulamamaktadır.. System.Threading.Thread.Sleep(1000); //string[] errorEtiketim = null; try { if (ilgiliWebSitesi._girisEkraniElementiNameMi) { driver.FindElement(By.Name(ilgiliWebSitesi._kullaniciAdiEtiketi)).Clear(); driver.FindElement(By.Name(ilgiliWebSitesi._kullaniciAdiEtiketi)).SendKeys(KullaniciAdi); driver.FindElement(By.Name(ilgiliWebSitesi._sifreEtiketi)).Clear(); driver.FindElement(By.Name(ilgiliWebSitesi._sifreEtiketi)).SendKeys(Sifre + Keys.Enter); } else { driver.FindElement(By.Id(ilgiliWebSitesi._kullaniciAdiEtiketi)).Clear(); driver.FindElement(By.Id(ilgiliWebSitesi._kullaniciAdiEtiketi)).SendKeys(KullaniciAdi); driver.FindElement(By.Id(ilgiliWebSitesi._sifreEtiketi)).Clear(); driver.FindElement(By.Id(ilgiliWebSitesi._sifreEtiketi)).SendKeys(Sifre + Keys.Enter); } SiteCevabi = UrlStatusCodeAl(Convert.ToString(driver.Url)); ChromeDriverSingleton.exceptionCountServisUrlleriSifirla(); if (!(Convert.ToString(SiteCevabi).Equals("OK"))) { ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.logDosyasiPath, ilgiliWebSitesi._siteAdi + " sunucusuna ait server response statu code olarak hata mesaji vermistir.."); ChromeDriverSingleton.kirmiziYaz(ilgiliWebSitesi._siteAdi + " sunucusuna ait server hata mesaji vermistir.."); ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.hataDosyasiPath, ilgiliWebSitesi._siteAdi + " sunucusuna ait server response statu code olarak hata mesaji vermistir ve sunucunun döndürdüğü cevap: " + SiteCevabi + " hata kodu: 101"); epostaMesaji[ChromeDriverSingleton.ePostaSayisi] = "<font color='red'>" + ilgiliWebSitesi._siteAdi + " sunucusuna ait server response statu code olarak HATA mesaji vermistir ve sunucunun döndürdüğü cevap: " + SiteCevabi + "</font>"; ChromeDriverSingleton.ePostaSayisi++; ChromeDriverSingleton.siteCevabiOlumluMu = false; return(false); } } catch (Exception ex) { if (InternetBaglantisiVarMi()) { if (ex is TimeoutException) { ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.logDosyasiPath, ilgiliWebSitesi._siteAdi + " sunucusuna ait server giriş işlemi yapılırken " + ChromeDriverSingleton.timeoutDegeri + " saniye içerisinde kullanıcı adı ve sifre etiketini yükleyemedi.. Hata:" + ex.ToString()); ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.hataDosyasiPath, ilgiliWebSitesi._siteAdi + " sunucusuna ait server giriş işlemi yapılırken" + ChromeDriverSingleton.timeoutDegeri + " saniye içerisinde kullanıcı adı ve sifre etiketini yükleyemedi.. Hata:" + ex.ToString()); ChromeDriverSingleton.kirmiziYaz(ilgiliWebSitesi._siteAdi + " sunucusuna ait server giriş işlemi ypaılırken " + ChromeDriverSingleton.timeoutDegeri + " saniye kullanıcı adı ve sifre etiketini yükleyemedi.."); epostaMesaji[ChromeDriverSingleton.ePostaSayisi] = "<font color='red'>" + ilgiliWebSitesi._siteAdi + " sunucusuna ait server giriş işlemi yapılırken " + ChromeDriverSingleton.timeoutDegeri + " saniye içerisinde Etiketleri yükleyemedi..</font>"; ChromeDriverSingleton.ePostaSayisi++; ChromeDriverSingleton.siteCevabiOlumluMu = false; return(false); } if (ex is WebDriverTimeoutException) { ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.logDosyasiPath, ilgiliWebSitesi._siteAdi + " sunucusuna ait server giriş işlemi yapılırken " + ChromeDriverSingleton.timeoutDegeri + " saniye içerisinde cevap vermedi.. Hata:" + ex.ToString()); ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.hataDosyasiPath, ilgiliWebSitesi._siteAdi + " sunucusuna ait server giriş işlemi yapılırken " + ChromeDriverSingleton.timeoutDegeri + " saniye içerisinde cevap vermedi hata kodu: 102 Hata:" + ex.ToString()); ChromeDriverSingleton.kirmiziYaz(ilgiliWebSitesi._siteAdi + " sunucusuna ait server " + ChromeDriverSingleton.timeoutDegeri + " saniye içerisinde cevap vermedi.."); epostaMesaji[ChromeDriverSingleton.ePostaSayisi] = "<font color='red'>" + ilgiliWebSitesi._siteAdi + " sunucusuna ait server " + ChromeDriverSingleton.timeoutDegeri + " saniye icerisinde CEVAP VERMEDİ..</font>"; ChromeDriverSingleton.ePostaSayisi++; ChromeDriverSingleton.siteCevabiOlumluMu = false; return(false); } else { if (ChromeDriverSingleton.exceptionCountWebSiteleri < 3) { ChromeDriverSingleton.yesilYaz(ilgiliWebSitesi._url + " sitesi exceptiona düştü,giriş deneme sayisi: " + ChromeDriverSingleton.exceptionCountWebSiteleri); ChromeDriverSingleton.exceptionCountWebSiteleri++; ChromeDriverSingleton.kirmiziYaz("Exception. Bir sonraki deneme için 30 saniye bekliyor.."); System.Threading.Thread.Sleep(30000); //ChromeDriverSingleton.driver.Quit(); //ChromeDriverSingleton.driver = new ChromeDriver(); ChromeDriverSingleton.yeniKopyaYarat(); ChromeDriverSingleton.getDriverInstance().Url = ilgiliWebSitesi._url; ChromeDriverSingleton.siteCevabiOlumluMu = KullaniciGirisiYap(ChromeDriverSingleton.driver, KullaniciAdi, Sifre, ilgiliWebSitesi, epostaMesaji); if (ChromeDriverSingleton.siteCevabiOlumluMu) { return(true); } else { return(false); } } else { ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.logDosyasiPath, ilgiliWebSitesi._siteAdi + " sunucusuna ait Server'a ulasilamadi.." + "Deneme sayisi: " + ChromeDriverSingleton.exceptionCountWebSiteleri + " Hata:" + ex.ToString()); ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.hataDosyasiPath, ilgiliWebSitesi._siteAdi + " sunucusuna ait Server'a ulasilamadi hata kodu: 104 " + "Deneme sayisi: " + ChromeDriverSingleton.exceptionCountWebSiteleri + " Hata:" + ex.ToString()); ChromeDriverSingleton.kirmiziYaz(ilgiliWebSitesi._siteAdi + " sunucusuna ait Server'a ulasilamadi.." + " Deneme sayisi: " + ChromeDriverSingleton.exceptionCountWebSiteleri); epostaMesaji[ChromeDriverSingleton.ePostaSayisi] = "<font color='red'>" + ilgiliWebSitesi._siteAdi + " sunucusuna ait SERVER'A ULAŞILAMADI..</font>"; ChromeDriverSingleton.ePostaSayisi++; ChromeDriverSingleton.siteCevabiOlumluMu = false; return(false); } } } else { ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.logDosyasiPath, ilgiliWebSitesi._siteAdi + " sitesine girerken internet baglantısı bulunamadi, Lutfen baglantınızı kontrol edin.. Hata: " + ex.ToString()); ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.hataDosyasiPath, ilgiliWebSitesi._siteAdi + " sitesine girerken internet baglantısı bulunamadi hata kodu: 105 Hata:" + ex.ToString()); ChromeDriverSingleton.kirmiziYaz(ilgiliWebSitesi._siteAdi + " sitesine girerken internet baglantısı bulunamadi, Lutfen baglantınızı kontrol edin.."); epostaMesaji[ChromeDriverSingleton.ePostaSayisi] = "<font color='red'>" + ilgiliWebSitesi._siteAdi + " sitesine girerken INTERNET BAGLANTISI BULUNAMADI, Lutfen baglantınızı kontrol edin..</font>"; ChromeDriverSingleton.ePostaSayisi++; ChromeDriverSingleton.siteCevabiOlumluMu = false; return(false); } } System.Threading.Thread.Sleep(5000); try { driver.FindElement(By.Id(ilgiliWebSitesi._loginOlduktanSonraBakilacakElement)); ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.logDosyasiPath, ilgiliWebSitesi._siteAdi + " sitesine giris basarili bir sekilde yapildi.."); //ChromeDriverSingleton.yesilYaz(ilgiliWebSitesi._siteAdi + " sitesine giris basarili bir sekilde yapildi.."); //Web sitesinin başarılı olduğu mail'e eklenmek istenirse bu yorum satırları silinebilir. // epostaMesaji[ChromeDriverSingleton.ePostaSayisi] = "<font color='green'>" + ilgiliWebSitesi._siteAdi + " sitesine giris basarili bir sekilde yapildi..</font>"; // ChromeDriverSingleton.ePostaSayisi++; ChromeDriverSingleton.siteCevabiOlumluMu = true; return(true); } catch (Exception ex) { if (ex is TimeoutException) { ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.logDosyasiPath, ilgiliWebSitesi._siteAdi + " sunucusuna ait server login olduktan sonra anasayfa elementi aranırken " + ChromeDriverSingleton.timeoutDegeri + " saniye içerisinde cevap vermedi.. Hata:" + ex.ToString()); ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.hataDosyasiPath, ilgiliWebSitesi._siteAdi + " sunucusuna ait server login olduktan sonra anasayfa elementi aranırken " + ChromeDriverSingleton.timeoutDegeri + " saniye içerisinde cevap vermedi.. Hata:" + ex.ToString()); ChromeDriverSingleton.kirmiziYaz(ilgiliWebSitesi._siteAdi + " sunucusuna ait server login olduktan sonra anasayfa elementi aranırken " + ChromeDriverSingleton.timeoutDegeri + " saniye içerisinde cevap vermedi.."); epostaMesaji[ChromeDriverSingleton.ePostaSayisi] = "<font color='red'>" + ilgiliWebSitesi._siteAdi + " sunucusuna ait server login olduktan sonra anasayfa elementi aranırken " + ChromeDriverSingleton.timeoutDegeri + " saniye içerisinde cevap vermedi...</font>"; ChromeDriverSingleton.ePostaSayisi++; ChromeDriverSingleton.siteCevabiOlumluMu = false; return(false); } if (ex is WebDriverTimeoutException) { ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.logDosyasiPath, ilgiliWebSitesi._siteAdi + " sunucusuna ait server " + ChromeDriverSingleton.timeoutDegeri + " saniye içerisinde cevap vermedi.. Hata:" + ex.ToString()); ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.hataDosyasiPath, ilgiliWebSitesi._siteAdi + " sunucusuna ait server " + ChromeDriverSingleton.timeoutDegeri + " saniye içerisinde cevap vermedi hata kodu: 106 Hata:" + ex.ToString()); ChromeDriverSingleton.kirmiziYaz(ilgiliWebSitesi._siteAdi + " sunucusuna ait server " + ChromeDriverSingleton.timeoutDegeri + " saniye içerisinde cevap vermedi.."); epostaMesaji[ChromeDriverSingleton.ePostaSayisi] = "<font color='red'>" + ilgiliWebSitesi._siteAdi + " sunucusuna ait server " + ChromeDriverSingleton.timeoutDegeri + " saniye içerisinde CEVAP VERMEDİ..</font>"; ChromeDriverSingleton.ePostaSayisi++; ChromeDriverSingleton.siteCevabiOlumluMu = false; return(false); } if (ChromeDriverSingleton.exceptionLoginSonrasiKontrolCount < 3) { ChromeDriverSingleton.yesilYaz(ilgiliWebSitesi._url + " sitesi exceptiona düştü,giriş deneme sayisi: " + ChromeDriverSingleton.exceptionLoginSonrasiKontrolCount); ChromeDriverSingleton.exceptionLoginSonrasiKontrolCount++; ChromeDriverSingleton.kirmiziYaz("Exception. Bir sonraki deneme için 30 saniye bekliyor.."); System.Threading.Thread.Sleep(30000); ChromeDriverSingleton.driver.Quit(); ChromeDriverSingleton.driver = new ChromeDriver(); ChromeDriverSingleton.yeniKopyaYarat(); ChromeDriverSingleton.getDriverInstance().Url = ilgiliWebSitesi._url; ChromeDriverSingleton.siteCevabiOlumluMu = KullaniciGirisiYap(ChromeDriverSingleton.driver, KullaniciAdi, Sifre, ilgiliWebSitesi, epostaMesaji); if (ChromeDriverSingleton.siteCevabiOlumluMu) { return(true); } else { return(false); } } else { ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.logDosyasiPath, ilgiliWebSitesi._siteAdi + " sitesine ait server hata mesaji vermistir.. Hata:" + ex.ToString()); ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.hataDosyasiPath, ilgiliWebSitesi._siteAdi + " sitesine ait server hata mesaji vermistir hata kodu: 107 Hata:" + ex.ToString()); ChromeDriverSingleton.kirmiziYaz(ilgiliWebSitesi._siteAdi + " sitesine ait server hata mesaji vermistir.."); epostaMesaji[ChromeDriverSingleton.ePostaSayisi] = "<font color='red'>" + ilgiliWebSitesi._siteAdi + " sitesine ait server HATA mesaji vermistir..</font>"; ChromeDriverSingleton.ePostaSayisi++; ChromeDriverSingleton.siteCevabiOlumluMu = false; return(false); } } }