selenium 处理浏览器多窗口

测试过程中,会弹出一些子窗口,并且有可能在多个窗口之间切换

必须要获取每个窗口的唯一标识符切换到该窗口,才能对该窗口的元素进行操作

首先,获取每个窗口的唯一标识符,然后以及和的形式返回

 

            var mainWindow = new FirefoxDriver();

            INavigation navigation = mainWindow.Navigate();

            navigation.GoToUrl("http://www.hao123.com");

            IWebElement btnMainWindow = mainWindow.FindElement(By.XPath("//*[@id='site']/div/ul/li[1]/a"));

            btnMainWindow.Click();

            System.Collections.Generic.IList<string> handles = mainWindow.WindowHandles;//获取窗口的数量

            IWebDriver childWindow = mainWindow.SwitchTo().Window(handles[1]);//定位到第一个子窗口

            IWebElement textchildWindow = childWindow.FindElement(By.Id("kw"));

            textchildWindow.SendKeys("selenium");

            IWebElement buttonElement = childWindow.FindElement(By.Id("su"));

            buttonElement.Click();

            mainWindow.SwitchTo().Window(handles[0]);//回到主窗口

 

你可能感兴趣的:(selenium)