1. iframe 的处理浏览器
查找元素必须在对应的 ifarme 中查找,不然是找不到的编辑器
1 // 传入参数为 frame 的序号,从0开始 2 driver.switchTo().frame(Int index); 3 // 传入参数为 frame 的 ID 或者 Name 属性 4 driver.switchTo().frame(String nameOrId); 5 // 传入参数为 frameElement 6 driver.switchTo().frame(WebElement frameElement); 7 // 切换回父级 8 driver.switchTo().defaultContent();
2. 弹出窗口的处理url
1 // 只弹出一个窗口的状况 , 不须要传入任何参数 , 直接切换到下一个窗口 2 // 获得当前窗口的句柄 3 String currentWindow = driver.getWindowHandle(); 4 // 获得全部窗口的句柄 5 Set<String> handles = driver.getWindowHandles(); 6 Iterator<String> it = handles.iterator(); 7 while (it.hasNext()) { 8 String handle = it.next(); 9 if (currentWindow.equals(handle)) 10 continue; 11 WebDriver window = driver.switchTo().window(handle); 12 log.info("title,url = " + window.getTitle() + "," + window.getCurrentUrl()); 13 }
1 // 切换到指定的窗口, 遍历最多 10 次, 循环是为了提升稳定性, 个别浏览器下有的时候一次遍历找不到 ( String windowTitle ) 2 for (int a = 0; a < =9; a++) { 3 Set<String> windowHandles = driver.getWindowHandles(); 4 for (String handler : windowHandles) { 5 driver.switchTo().window(handler); 6 String title = driver.getTitle(); 7 if (windowTitle.equals(title)) { 8 a = 10; 9 break; 10 } 11 } 12 }
3. 处理对话框 alert\confirm\promptspa
driver.switchTo().alert()能够获得alert\confirm\prompt 对话框的对象,而后运用其方法对它进行操做。对话框操做的主要方法有:code
4. 富文本编辑器对象
1 // 富文本编辑框的处理 2 driver.switchTo().frame("nameOrId"); // 定位到富文本输入框所在的 frame 3 JavascriptExecutor js = (JavascriptExecutor) driver; 4 js.executeScript("document.body.innerHTML='ABCDEFG'"); // 经过 js 赋值进去