public void WhenIAddThatProductToMyCartWithTheFollowingDetails(Table table)
        {
            site_wide_objects site_wide  = new site_wide_objects();
            quick_view_page   quick_view = new quick_view_page();
            var         dictionary       = site_wide_objects.ToDictionary(table);
            String      quantity         = dictionary["quantity"];
            String      size             = dictionary["size"];
            IWebElement iframeSwitch     = driver.FindElement(By.XPath("//iframe[@class='fancybox-iframe']"));

            driver.SwitchTo().Frame(iframeSwitch.GetAttribute("name"));

            PageFactory.InitElements(driver, quick_view);

            Thread.Sleep(1000);
            IWebElement quantity_option = quick_view.quantity;

            quantity_option.Clear();
            quantity_option.SendKeys(quantity);

            Thread.Sleep(1000);
            IWebElement size_dropdown  = quick_view.size;
            var         select_element = new SelectElement(size_dropdown);

            select_element.SelectByText(size);

            IWebElement add_to_cart_button = quick_view.add_to_cart_button;

            add_to_cart_button.Click();
        }
예제 #2
0
        public void NewWindows()
        {
            // зайти в админку
            Login();

            // открыть пункт меню Countries(или страницу http://localhost/litecart/admin/?app=countries&doc=countries)
            driver.Url = "http://localhost/litecart/admin/?app=countries&doc=countries";

            // открыть на редактирование какую-нибудь страну или начать создание новой
            driver.FindElement(By.LinkText("Add New Country")).Click();
            string countriesWindow = driver.CurrentWindowHandle;

            IList <string> handles = driver.WindowHandles;

            /* возле некоторых полей есть ссылки с иконкой в виде квадратика со стрелкой --
             * они ведут на внешние страницы и открываются в новом окне, именно это и нужно проверить.
             * Конечно, можно просто убедиться в том, что у ссылки есть атрибут target = "_blank".
             */

            ReadOnlyCollection <IWebElement> externalLinks = driver.FindElements(By.CssSelector(".fa-external-link"));

            // повторить эти действия для всех таких ссылок.
            for (int i = 0; i < externalLinks.Count; i++)
            {
                IWebElement externalLink = externalLinks[i];

                // Но в этом упражнении требуется именно кликнуть по ссылке, чтобы она открылась в новом окне,
                externalLink.Click();

                // новое окно открывается не мгновенно, поэтому требуется ожидание открытия окна.
                Func <IWebDriver, string> ThereIsWindowOtherThan = new Func <IWebDriver, string>((IWebDriver Web) =>
                {
                    IList <string> curHandles = driver.WindowHandles.ToList();
                    for (int j = 0; j < handles.Count; j++)
                    {
                        curHandles.Remove(handles[j]);
                    }
                    if (curHandles.Count != 0)
                    {
                        return(curHandles[0]);
                    }
                    return(null);
                });

                WebDriverWait wait           = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
                string        externalWindow = wait.Until(ThereIsWindowOtherThan);

                // потом переключиться в новое окно,
                driver.SwitchTo().Window(externalWindow);

                //закрыть его,
                driver.Close();

                //вернуться обратно
                driver.SwitchTo().Window(countriesWindow);
            }
        }
예제 #3
0
 // 경고창과 클릭 예외 처리가 된 클릭 이벤트
 public void Click(EventFiringWebDriver pDriver, By by)
 {
     while (true)
     {
         try
         {
             pDriver.FindElement(by).Click();
             break;
         }
         catch (UnhandledAlertException e)
         {
             Console.WriteLine($": '{e}'");
             try
             {
                 IAlert alert = pDriver.SwitchTo().Alert();
                 Console.WriteLine(alert.Text);
                 alert.Dismiss();
             }
             catch (Exception)
             {
                 //Console.WriteLine($": '{e}'");
             }
         }
         catch (ElementClickInterceptedException e)
         {
             Console.WriteLine($": '{e}'");
         }
         catch (Exception e)
         {
             Console.WriteLine($": '{e}'");
         }
         Thread.Sleep(1000);
     }
 }
        public void TheBaiduSwitchWindowTest()
        {
            //IWebDriver driver = new ChromeDriver();//谷歌浏览器
            IWebDriver driver = new EventFiringWebDriver(new ChromeDriver());



            driver.Navigate().GoToUrl("http://tieba.baidu.com/f/search/adv");

            //找到注册元素
            IWebElement register = driver.FindElement(By.CssSelector("#com_userbar>ul>li:nth-child(5)>div>a"));

            register.Click();

            //显示所有标识
            IList <string> listHand = driver.WindowHandles;//拿到所有标识

            //切换到注册窗口再输入12345
            driver.SwitchTo().Window(listHand[1]);
            driver.FindElement(By.Name("userName")).SendKeys("12345");
        }
예제 #5
0
 public static void SelecionarBrowser(int index)
 {
     driver.SwitchTo().Window(driver.WindowHandles[index]);
 }