Exemplo n.º 1
0
        public static void Main(string[] args)
        {
            string currentUser = string.Empty;

            try
            {
                new DriverManager().SetUpDriver(new OperaConfig(), "Latest", Architecture.Auto);
                string       OperaProfilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Opera Software\\Opera Stable");
                var          jsonText         = File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "accounts.json"));
                var          jsonAccounts     = JsonConvert.DeserializeObject <List <Account> >(jsonText);
                OperaOptions opt = new OperaOptions();
                opt.PageLoadStrategy = PageLoadStrategy.Eager;
                opt.AddArgument($"user-data-dir={OperaProfilePath}");
                opt.AddArguments(new[] { "--incognito" });
                opt.AddAdditionalCapability("useAutomationExtension", false);
                opt.AddExcludedArgument("enable-automation");

                OperaDriverService driverService = OperaDriverService.CreateDefaultService();
                driverService.HideCommandPromptWindow = true;

                for (int i = 0; i <= jsonAccounts.Count; i++)
                {
                    currentUser = jsonAccounts[i].name;
                    KillAllDrivers();
                    IWebDriver driver = new OperaDriver(driverService, opt);
                    try
                    {
                        driver.Url = "https://giris.hepsiburada.com";

                        driver.WaitForPageLoad();

                        IWebElement elMail     = driver.IsElementPresent(By.XPath("//input[@id='txtUserName']"));
                        IWebElement elPass     = driver.IsElementPresent(By.XPath("//input[@id='txtPassword']"));
                        IWebElement elBtnLogin = driver.IsElementPresent(By.XPath("//button[contains(text(),'Giriş')]"));

                        if (elMail == null && elPass == null && elBtnLogin == null)
                        {
                            throw new Exception("CANNOT_FIND_LOGINPAGE");
                        }
                        elMail.Click();
                        elMail?.Clear();
                        elMail?.SendKeys(jsonAccounts[i].name);
                        WaitSomeSecond(1);
                        elPass?.Clear();
                        elPass?.SendKeys(jsonAccounts[i].pass);
                        WaitSomeSecond(1);
                        var touchActions = new Actions(driver);
                        touchActions.MoveToElement(elBtnLogin).Perform();
                        touchActions.SendKeys(Keys.Enter).Perform();
                        WaitSomeSecond(1);

                        driver.WaitForPageLoad();

                        WaitSomeSecond(6);

                        if (!CheckIsLoggedorRegistered(driver, true))
                        {
                            throw new Exception("CANNOT_LOGIN");
                        }

                        driver.Navigate().GoToUrl("https://hesabim.hepsiburada.com/iletisim-tercihlerim");

                        driver.WaitForPageLoad();

                        WaitSomeSecond(5);

                        var mailNotify = driver.RunJsCommand("return document.querySelector('div.x0LYwM_8u4ipmQOzUpbEM:nth-child(2) > div:nth-child(2) > div:nth-child(1) > label:nth-child(1) > input');");

                        if (mailNotify != null)
                        {
                            var checkState = (bool)driver.RunJsCommand("return arguments[0].checked", new[] { mailNotify });
                            if (checkState)
                            {
                                driver.RunJsCommand("arguments[0].click()", new[] { mailNotify });
                                Console.WriteLine($"{jsonAccounts[i].name} başarılı");
                                WaitSomeSecond(3);
                            }
                            else
                            {
                                Console.WriteLine($"{jsonAccounts[i].name} zaten kapatılmış");
                            }
                        }
                        else
                        {
                            throw new Exception("CANNOT_FOUND_MAIL_NOTIFY");
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine($"Hesap Adı : {jsonAccounts[i].name}");
                        Console.WriteLine(e);
                        Thread.Sleep(TimeSpan.FromSeconds(new Random().Next(5, 10)));
                    }
                    driver.Quit();
                    Thread.Sleep(TimeSpan.FromSeconds(new Random().Next(30, 70)));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Exemplo n.º 2
0
        private void button1_Click(object sender, EventArgs e)
        {
            //IWebDriver Browser = new OperaDriver();
            try
            {
                if ((textGroup.Text.Length != 0) || (textURL.Text.Length != 0))
                {
                    using (IWebDriver Browser = new OperaDriver())
                    {
                        //Ожидание
                        // WebDriverWait wait = new WebDriverWait(Browser, TimeSpan.FromSeconds(5));

                        Browser.Manage().Window.Maximize();

                        Browser.Navigate().GoToUrl(@"http://ltsu.ru/login/index.php");
                        Browser.FindElement(By.Id("username")).SendKeys("admin");
                        Browser.FindElement(By.Id("password")).SendKeys("ULT@015um");
                        Browser.FindElement(By.Id("loginbtn")).Click();
                        Browser.Navigate().GoToUrl(textURL.Text);

                        System.Threading.Thread.Sleep(int.Parse(textTime.Text));

                        Browser.FindElement(By.CssSelector(".course-listing-actions div:nth-child(3) .dropdown a:first-child")).Click();

                        System.Threading.Thread.Sleep(int.Parse(textTime.Text));

                        Browser.FindElement(By.CssSelector(".dropdown-menu.dropdown-menu-right.menu.align-tr-br.show > a:nth-child(6)")).Click();
                        System.Threading.Thread.Sleep(2000);

                        List <IWebElement> items    = Browser.FindElements(By.CssSelector("#course-category-listings #course-listing .listitem .coursename")).ToList();
                        List <string>      new_item = new List <string>();

                        for (int i = 0; i < items.Count; i++)
                        {
                            new_item.Add(items[i].GetAttribute("href"));
                        }

                        for (int i = 0; i < new_item.Count; i++)
                        {
                            Browser.Navigate().GoToUrl(new_item[i].ToString());

                            // wait.Until(item => item.FindElement(By.CssSelector(".listing-actions.course-detail-listing-actions > a:nth-child(3)")).Displayed);
                            System.Threading.Thread.Sleep(1000);

                            Browser.FindElement(By.CssSelector(".listing-actions.course-detail-listing-actions > a:nth-child(3)")).Click();
                            System.Threading.Thread.Sleep(1000);
                            //папап
                            Browser.FindElement(By.CssSelector(".pull-right input")).Click();
                            System.Threading.Thread.Sleep(2000);
                            Browser.FindElement(By.CssSelector(".fcontainer.clearfix > #fitem_id_cohortlist > .felement > input")).SendKeys(textGroup.Text.Trim());
                            System.Threading.Thread.Sleep(2000);
                            Browser.FindElement(By.CssSelector(".fcontainer.clearfix > #fitem_id_cohortlist > .felement > ul > li:first-child")).Click();
                            //Может быть Здесь еще нужно поставить Sleep
                            Browser.FindElement(By.CssSelector(".modal-body > form")).Submit();
                            System.Threading.Thread.Sleep(int.Parse(textTime.Text));
                        }
                    }
                }

                else
                {
                    MessageBox.Show("Введите текст");
                }
            }
            catch (NoSuchElementException element)
            {
                MessageBox.Show("Не найден элемент на сайте!!!!" + "\n" + element.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            // finally { Browser.Dispose(); }
        }