程序清单5-67 Java代码
WebDriver mainWindow = new FirefoxDriver(); Navigation navigation = mainWindow.navigate(); navigation.to(http://www.baidu.com); WebElement btnInMainWindow = mainWindow.findElement(By.name("tj_reg")); btnInMainWindow.click(); String[] handles=new String[mainWindow.getWindowHandles().size()]; mainWindow.getWindowHandles().toArray(handles); for (int i = 0; i < handles.length; i++) { System.out.println(handles[i]); } |
执行结果如图5-67所示。
图5-67 执行结果
5.9.2 Window(windowName)
新窗口弹出后,可以通过它的标识符(句柄)切换到该窗口,再对该窗口的元素进行操作。
例如,先打开百度首页,单击“注册”以弹出注册窗口,然后切换到注册窗口,在邮箱文本框中输入“12345@qq.com”,代码如程序清单5-68或程序清单所示。
程序清单5-68 C#代码
IWebDriver mainWindow = new FirefoxDriver(); INavigation navigation = mainWindow.Navigate(); navigation.GoToUrl(http://www.baidu.com); IWebElement btnInMainWindow = mainWindow.FindElement(By.Name("tj_reg")); btnInMainWindow.Click(); System.Collections.Generic.IList<string> handles= mainWindow.WindowHandles; IWebDriver childWindow = mainWindow.SwitchTo().Window(handles[1]); IWebElement tbxInchildWindow = childWindow.FindElement(By.Id("pass_reg_email_0")); tbxInchildWindow.SendKeys("12345"); |
程序清单5-69 Java代码
WebDriver mainWindow = new FirefoxDriver(); Navigation navigation = mainWindow.navigate(); navigation.to(http://www.baidu.com); WebElement btnInMainWindow = mainWindow.findElement(By.name("tj_reg")); btnInMainWindow.click(); String[] handles=new String[mainWindow.getWindowHandles().size()]; mainWindow.getWindowHandles().toArray(handles); WebDriver childWindow = mainWindow.switchTo().window(handles[1]); WebElement tbxInchildWindow = childWindow.findElement(By.id("pass_reg_email_0")); tbxInchildWindow.sendKeys("12345"); |