selenium処理ブラウザマルチウィンドウ

2252 ワード

テスト中に、いくつかのサブウィンドウがポップアップされ、複数のウィンドウを切り替える可能性があります.
ウィンドウの要素を操作するには、各ウィンドウの一意の識別子を取得してウィンドウに切り替える必要があります.
まず、各ウィンドウの一意の識別子を取得し、和の形式で返します.
 
            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]);//