Пример #1
0
 void Update()
 {
     if (nowStatus == NowStatus.Push)
     {
         // 设定好当前要进行的操作并开始进行
         nowOperate++;
         if (nowOperate < NowElement.List.list.Count)
         {
             nowStatus = NowStatus.Do;
         }
         else
         {
             // 操作结束,回调
             nowStatus  = NowStatus.None;
             nowOperate = -1;
             NowElement.Finish();
             cameraControl.BackToNormal();
         }
     }
     else if (nowStatus == NowStatus.Do)
     {
         DoSth(NowElement.List.list[nowOperate]);
     }
 }
Пример #2
0
        static public void Zadanie1()
        {
            int TarifNow,
                NumIsStrong    = 0,
                NumIsNotStrong = 0;

            MyMozila.Navigate().GoToUrl(UrlSite[0]);
            var wait = new WebDriverWait(MyMozila, TimeSpan.FromSeconds(15));

            wait.Until(ExpectedConditions.PresenceOfAllElementsLocatedBy(By.ClassName("hit-image")));
            //MyMozila.get(UrlSite[0]);
            Console.WriteLine("Выполняю - Проверить «жирный» текст в любом тарифе или обычный");
            //поиск тарифов
            var TarifArray = MyMozila.FindElements(By.CssSelector(".ssc-tariffs-wrap .ssc-tariff-box"));

            Console.WriteLine("На странице найдено " + TarifArray.Count + " тарифов. Какой выбрать? ");
            TarifNow = Convert.ToInt32(Console.ReadLine());
            //узнаем есть ли в блоке тарифа тег strong
            Console.WriteLine("На странице найдено 'жирного'(strong) текста " +
                              TarifArray[TarifNow - 1].FindElements(By.TagName("strong")).Count);
            //узнаем есть ли в блоке тарифа текстовые блоки со стилем жирный или без

            var TextElementArray = TarifArray[TarifNow - 1].FindElements(By.TagName("span"));

            foreach (var NowElement in TextElementArray)
            {
                if (NowElement.FindElements(By.TagName("span")).Count > 0)
                {
                    continue;
                }
                Int32 NowWeight = 0;
                try
                {
                    NowWeight = Convert.ToInt32(NowElement.GetCssValue("font-weight"));
                }
                catch (FormatException)
                {
                    NowWeight = 400;
                }

                if (NowWeight > 400 || NowElement.GetCssValue("font-weight") == "bold")
                {
                    NumIsStrong++;
                    //Console.WriteLine("Жир - " + NowElement.Text);
                }
                else
                {
                    NumIsNotStrong++;
                    //Console.WriteLine("Норм - " + NowElement.Text);
                }
            }
            Console.WriteLine("Жирных блоков текста (css свойство) - " + NumIsStrong + " обычных блоков текста - " + NumIsNotStrong);

            Console.WriteLine("Выполняю - 2.Проверить тарифы на наличие стикера «ХИТ продаж»");
            foreach (var item in TarifArray)
            {
                try
                {
                    if (item.FindElement(By.ClassName("hit-image")).GetAttribute("src").Length > 0)
                    {
                        Console.WriteLine("тариф хит - " + item.FindElement(By.ClassName("tariff-title")).Text);
                        break;
                    }
                }
                catch (NoSuchElementException)
                {
                    //Console.WriteLine("тариф не наш - " + item.FindElement(By.ClassName("tariff-title")).Text);
                }
            }

            Console.WriteLine("Выполняю - 3.	Проверить стоимости тарифов на главной странице и на странице тарифа");
            String BuferString = "";

            for (int i = 1; i <= TarifArray.Count; i++)
            {
                wait.Until(ExpectedConditions.PresenceOfAllElementsLocatedBy(By.CssSelector(".ssc-tariffs-wrap .ssc-tariff-box")));
                var TarifNowElement = MyMozila.FindElement(By.CssSelector(".ssc-tariffs-wrap .ssc-tariff-box:nth-child(" + i.ToString() + ")"));
                BuferString = TarifNowElement.FindElement(By.ClassName("tariff-title")).Text +
                              " на главной " + TarifNowElement.FindElement(By.ClassName("price")).Text + ". На странице тарифа ";
                TarifNowElement.Click();// переход на страницу тарифа.
                wait.Until(ExpectedConditions.PresenceOfAllElementsLocatedBy(By.CssSelector(".btn-col .price")));
                //Thread.Sleep(2000); //костыль. если опять будет при первом запуске гдето показывать не правильную стоимость на странице тарифа
                Console.WriteLine(BuferString + MyMozila.FindElement(By.CssSelector(".btn-col .price")).Text);
                MyMozila.Navigate().Back();
            }

            Console.WriteLine("Выполняю - 4.	Проверить стоимости тарифов на 2х любых под сайтах ТЕЛЕ2, например в Москве (https://msk.tele2.ru/) и Ростове-на-Дону (https://rostov.tele2.ru/)");
            // тут MyMozila созданим новую вкладку (окно)
            IWebDriver MyMozila2 = new FirefoxDriver();

            MyMozila2.Navigate().GoToUrl(UrlSite[1]);
            TarifArray = MyMozila.FindElements(By.CssSelector(".ssc-tariffs-wrap .ssc-tariff-box"));
            var    TarifArray2 = MyMozila2.FindElements(By.CssSelector(".ssc-tariffs-wrap .ssc-tariff-box"));
            String TarifNowName,
                   TarifNowPrice;

            //сравним тарифы на подсайтах
            foreach (var item1 in TarifArray)
            {
                TarifNowName  = item1.FindElement(By.ClassName("tariff-title")).Text;
                TarifNowPrice = item1.FindElement(By.ClassName("price")).Text;
                Console.WriteLine("тариф для сравнения (msk) - " + TarifNowName);
                foreach (var item2 in TarifArray2)
                {
                    if (item2.FindElement(By.ClassName("tariff-title")).Text == TarifNowName)
                    {
                        Console.WriteLine("Стоимость в (msk) - " + TarifNowPrice + " в (rostov) " + item2.FindElement(By.ClassName("price")).Text);
                        break;
                    }
                }
            }
            MyMozila2.Close();

            Console.WriteLine("5.	Проверить – можно ли настраивать каждый из тарифов или нет");
            TarifArray = MyMozila.FindElements(By.CssSelector(".ssc-tariffs-wrap .ssc-tariff-box"));
            foreach (var ItemTarif in TarifArray)
            {
                TarifNowName = ItemTarif.FindElement(By.ClassName("tariff-title")).Text;
                try
                {
                    if (ItemTarif.FindElement(By.CssSelector("a[href^='/nastroy']")).Text.Length > 0)
                    {
                        Console.WriteLine(TarifNowName + " можно настроить");
                    }
                    else
                    {
                        Console.WriteLine(TarifNowName + " нельзя настроить");
                    }
                }
                catch (NoSuchElementException)
                {//FormatException
                    Console.WriteLine(TarifNowName + " нельзя настроить");
                }
            }

            Console.WriteLine("6.	Вывести в консоль все ссылки на картинки с страницы https://more.tele2.ru/ (огнетушитель, самолет и т.д.)");
            MyMozila.Navigate().GoToUrl(UrlSite[2]);
            wait.Until(ExpectedConditions.PresenceOfAllElementsLocatedBy(By.CssSelector("img")));
            var ImgAllObj = MyMozila.FindElements(By.CssSelector("img"));

            foreach (var ItemImg in ImgAllObj)
            {
                Console.WriteLine(ItemImg.GetAttribute("src"));
            }
        }