测试过程中,会弹出一些子窗口,并且有可能在多个窗口之间切换
必须要获取每个窗口的唯一标识符切换到该窗口,才能对该窗口的元素进行操作
首先,获取每个窗口的唯一标识符,然后以及和的形式返回
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 ]); // 回到主窗口