51Testing软件测试论坛

标题: selenium2实现窗口跳转 [打印本页]

作者: AT懒汉    时间: 2015-8-11 21:20
标题: selenium2实现窗口跳转
本帖最后由 AT懒汉 于 2015-8-11 21:21 编辑

在AT过程中,不可避免的要经常进行窗口的跳转。下面是笔者在对多窗口(2个)进行操作时封装的2个方法
public static WebDriver driver ;(具体的看使用的浏览器的种类再进行具体的实例化)public static  String currentWindow = null;
//跳转至弹出窗口        public static void switchToSecWindow()
        {
                currentWindow = driver.getWindowHandle();
                Set<String> handles = driver.getWindowHandles();

                Iterator<String> it = handles.iterator();

                while (it.hasNext())
                {
                        if (currentWindow == it.next())
                        {
                                continue;
                        }
                        driver.switchTo().window(it.next());
                }
        }
//跳回主窗口
        public static void switchToMainWindow()
        {
             driver.switchTo().window(currentWindow);
        }



作者: testingid135    时间: 2015-8-12 09:28
请问下 Iterator<String> it = handles.iterator();这句 是什么意思么
作者: jingzizx    时间: 2015-8-12 10:52
selenium2实现窗口跳转主要是通过获取窗口的句柄实现窗口之间的切换,handles.iterator();
支持分享
作者: xiaolijust5    时间: 2015-8-12 13:56
Set<String> handles = driver.getWindowHandles(); 将获得的窗口句柄放在set 集合内
Iterator<String> it = handles.iterator(); 迭代器,一般在集合里面的东西,都用这个来读取数据
作者: krush008    时间: 2015-8-21 16:28
我原来也用的这段代码,不过不太严谨。

我在这优化了一下:
http://bbs.51testing.com/thread-1054628-1-1.html
作者: Wei测试    时间: 2015-8-22 15:06
使用ie浏览器时,打开新窗口时,第一个窗口已经关闭了,这个时候selenium无法激活到新窗口了。请楼主有什么好办法吗?
作者: AT懒汉    时间: 2015-12-3 11:25
testingid135 发表于 2015-8-12 09:28
请问下 Iterator it = handles.iterator();这句 是什么意思么

http://blog.tianya.cn/post-5217390-85126663-1.shtml
作者: AT懒汉    时间: 2015-12-3 11:27
jingzizx 发表于 2015-8-12 10:52
selenium2实现窗口跳转主要是通过获取窗口的句柄实现窗口之间的切换,handles.iterator();
支持分享

咨询个问题,如果我这个弹出窗口是用layer实现的,我该怎么处理
作者: AT懒汉    时间: 2015-12-3 11:29
Wei测试 发表于 2015-8-22 15:06
使用ie浏览器时,打开新窗口时,第一个窗口已经关闭了,这个时候selenium无法激活到新窗口了。请楼主有什么 ...

没有遇到过,这样你贴一下代码




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2