webdriver切换窗口
来源:互联网 发布:游戏 独立开发者 知乎 编辑:程序博客网 时间:2024/06/04 18:23
1. 方案一:
当测试页面同时出现2个或者以上窗口时候,而且新打开的window没有namem,可以使用driver.switchTo().window(winHandleID)来进行切换,如下代码已经在IE8中测试通过:
- //Store the current window handle
- String winHandleBefore = driver.getWindowHandle();
- //Switch to new window opened
- for(String winHandle : driver.getWindowHandles()){
- System.out.println("+++" + winHandle);
- driver.switchTo().window(winHandle);
- }
- // Close the original window
- driver.switchTo().window(winHandleBefore);
- driver.close();
- //Switch to new window opened
- for(String winHandle : driver.getWindowHandles()){
- System.out.println("+++" + winHandle);
- driver.switchTo().window(winHandle);
- }
当最后只有一个窗口剩下的时候,应该可以直接使用
driver.switchTo().window(driver.getWindowHandle)
去选中新的窗口
2. 方案二:
在webdriver官方的api中,切换窗口的方法提供的参数是nameOrHandle。
Switch the focus of future commands for this driver to the window with the given name/handle.
但是在实际运用中,更多的可能是需要根据新窗口的title去切换窗口。因此封装了如下方法:
- public boolean switchToWindow(WebDriver driver,String windowTitle){
- boolean flag = false;
- try {
- String currentHandle = driver.getWindowHandle();
- Set<String> handles = driver.getWindowHandles();
- for (String s : handles) {
- if (s.equals(currentHandle))
- continue;
- else {
- driver.switchTo().window(s);
- if (driver.getTitle().contains(windowTitle)) {
- flag = true;
- System.out.println("Switch to window: "
- + windowTitle + " successfully!");
- break;
- } else
- continue;
- }
- }
- } catch (NoSuchWindowException e) {
- System.out.println("Window: " + windowTitle
- + " cound not found!", e.fillInStackTrace());
- flag = false;
- }
- return flag;
- }
首先获取当前driver驱动的所有窗口的handle然后进行比对筛选,如果窗口的title符合预期,则切换,并返回true,反之则返回false。
3. 方案三:
public static WebDriver switchWindows(WebDriver dr) {
WebDriver window;
String currentWindow = dr.getWindowHandle();
Set<String> handles = dr.getWindowHandles();
Iterator<String> it = handles.iterator();
while (it.hasNext()) {
if (currentWindow == it.next())
continue;
window = dr.switchTo().window(it.next());
// dr.manage().window().maximize();
return window;
}
return null;
}
- webdriver实现窗口切换
- WebDriver切换浏览器窗口
- webdriver切换窗口
- WebDriver切换浏览器窗口
- WebDriver切换浏览器窗口
- WebDriver切换浏览器窗口
- WebDriver切换浏览器窗口
- Selenium Webdriver窗口切换
- webdriver 多窗口切换
- WebDriver(Selenium2) 根据新窗口title切换窗口
- WebDriver切换内联框架ifame及多窗口的切换
- Webdriver学习笔记(六)多窗口的切换处理
- WebDriver如何切换到新打开的窗口中
- Selenium自动化:WebDriver切换浏览器窗口(选项卡)方法
- 【转载】WebDriver如何切换到新打开的窗口中
- selenium WebDriver之切换到链接打开的新浏览器窗口
- webdriver实现2个或两个以上窗口间切换的方法
- Java+Selenium3方法篇21-webdriver处理浏览器多窗口切换
- 如何取得打好TAG的代码
- NYOJ 2
- 安装和使用 Intel PIn
- FORM 开发环境设置
- 《算法设计手册》面试题解答 第二章
- webdriver切换窗口
- Javah 常见错误记录
- jQuery 中 $.fn.extend 与$.extend 的区别
- 完美洗牌算法学习
- iOS7 Release Note提到的一些变更
- [混迹IT职场系列]一、转正的那些事儿
- sql server 2008 5120 5123
- Android超炫特效:ListView item拖拽效果(下)
- hibernate二级缓存攻略