selenium做自动化测试时,新打开了窗口后,如果想在新窗口进行操作,直接定位元素操作会查找元素失败,因为selenium不会自动切换到新窗口。那么如果打开了新窗口或者有多个窗口如何切换呢?
基本方法是获取当前所有窗口的句柄,根据句柄切换到我们期望的窗口上。
以下是百度注册时打开新窗口的场景的例子:
WebDriver driver= new FirefoxDriver();
driver.navigate().to(http://www.baidu.com);
driver.findElement(By.name("tj_reg")).click();
String[] handles=new String[driver.getWindowHandles().size()];
driver.getWindowHandles().toArray(handles);
WebDriver childWindow = driver.switchTo().window(handles[1]);
WebElement tbxInchildWindow = childWindow.findElement(By.id("pass_reg_email_0"));
tbxInchildWindow.sendKeys("12345");
http://www.51testing.com/html/88/n-851588-3.html