窗口分类:iframe
弹窗
对话框
对弹窗进行操作:
当在当前页面点击链接,页面跳转到一个新的弹窗,对新弹窗里的元素进行定位需要先进行 窗口句柄切换
实现代码如下:
String winhandleBefore = driver.getWindowHandle();//获得跳转前窗口的句柄
driver.findElement(By.linkText("wiki")).click();//点击链接
this.thread(1000);//线程睡眠1秒
driver.findElement(By.linkText("创建词条")).click();//点击链接,窗口发生跳转,即产生新的弹窗
Set<String> winhandles = driver.getWindowHandles();//获得全部的窗口句柄
/*
*循环获得所有窗口句柄,并判断所有的句柄是否与跳转前窗口的句柄winhandleBefore 相等,如果相等,程序继续执行,不进
*行窗口句柄切换;如果不等,则将跳转后窗口的句柄设置为当前句柄
*/
for ( String winhandleAfter:winhandles ) {if ( winhandleBefore.equals(winhandleAfter)) {
continue;
}
driver.switchTo().window(winhandleAfter);
}
WebElement iframe = driver.findElement(By.id("ueditor_0"));//获得iframe
driver.switchTo().frame(iframe);//相对iframe里的内容进行操作,需要先切换到iframedriver.findElement(By.tagName("body")).sendKeys("123");//给iframe里的body传数据