static void Main(string[] args) { ChromeDriverSingleton.eskiAyaAitDosyalariSil(1); ChromeDriverSingleton.ePostaArrayiOlustur(); if (args.Length == 0) { //Argüman yoksa menu ekranına yönlendirir. Menu.MenuEkrani(); } else if (args[0].Equals("hepsi")) { Fonksiyonlar.argumanIleTestEt(""); ChromeDriverSingleton.getDriverInstance().Quit(); return; } else if (args[0].Contains(".com")) { Fonksiyonlar.argumanIleTestEt(args[0]); ChromeDriverSingleton.getDriverInstance().Quit(); return; } else { Fonksiyonlar.argumanIleTestEt(args[0]); ChromeDriverSingleton.getDriverInstance().Quit(); return; } }
//Menu ekranından alınan değerin kullanıldığı fonksiyon. public static void islemEkrani(string alinanDeger) { try { if (alinanDeger.Equals("1")) { //Var olan siteleri görüntüler.. Console.WriteLine(); //Fonksiyonlar.ds.getDriverInstance().Manage().Window.Minimize(); //ChromeDriverSingleton.getDriverInstance().Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(50); //Web sitesi değerlerini sqlite'dan alan fonksiyon.. Fonksiyonlar.sqliteVeritabanim.veritabaniDegerleriniListeyeAta(); varOlanSiteleriGoruntule(); Fonksiyonlar.sqliteVeritabanim.veritabaniDegerleriniListeyeAta(); MenuEkrani(); } else if (alinanDeger.Equals("2")) { //Fonksiyonlar.ds.getDriverInstance().Manage().Window.Minimize(); //ChromeDriverSingleton.getDriverInstance().Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(50); //Web sitesi değerlerini sqlite'dan alan fonksiyon.. Fonksiyonlar.sqliteVeritabanim.veritabaniDegerleriniListeyeAta(); // Yeni site eklemesi yapar.. yeniSiteEklemeEkrani(); Fonksiyonlar.sqliteVeritabanim.veritabaniDegerleriniListeyeAta(); MenuEkrani(); } else if (alinanDeger.Equals("3")) { //Fonksiyonlar.ds.getDriverInstance().Manage().Window.Minimize(); //ChromeDriverSingleton.getDriverInstance().Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(50); //Web sitesi değerlerini sqlite'dan alan fonksiyon.. Fonksiyonlar.sqliteVeritabanim.veritabaniDegerleriniListeyeAta(); //Var olan siteyi siler.. varOlanSiteyiSil(); Fonksiyonlar.sqliteVeritabanim.veritabaniDegerleriniListeyeAta(); MenuEkrani(); } else if (alinanDeger.Equals("4")) { //Fonksiyonlar.ds.getDriverInstance().Manage().Window.Minimize(); //ChromeDriverSingleton.getDriverInstance().Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(50); //Web sitesi değerlerini sqlite'dan alan fonksiyon.. Fonksiyonlar.sqliteVeritabanim.veritabaniDegerleriniListeyeAta(); //Var olan sitenin bilgilerini günceller.. VarOlanSiteninBilgileriniGuncelle(); Fonksiyonlar.sqliteVeritabanim.veritabaniDegerleriniListeyeAta(); MenuEkrani(); } else if (alinanDeger.Equals("5")) { //Fonksiyonlar.ds.getDriverInstance().Manage().Window.Minimize(); ChromeDriverSingleton.getDriverInstance().Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(50); //Web sitesi değerlerini sqlite'dan alan fonksiyon.. Fonksiyonlar.sqliteVeritabanim.veritabaniDegerleriniListeyeAta(); Fonksiyonlar.GirisEkrani(); } else if (alinanDeger.Equals("6")) { ChromeDriverSingleton.getDriverInstance().Quit(); return; } else { Console.WriteLine("Hatali giris yaptiniz lutfen tekrar giris yapiniz.."); MenuEkrani(); } } catch (Exception ex) { ChromeDriverSingleton.dosyayaCumleYaz(ChromeDriverSingleton.logDosyasiPath, "Menu ekranında hata meydana geldi.. Hata:" + ex.ToString()); } }
//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.."); } }
//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); } } }