AT懒汉 发表于 2015-8-11 21:20:27

selenium2实现窗口跳转

本帖最后由 AT懒汉 于 2015-8-11 21:21 编辑

在AT过程中,不可避免的要经常进行窗口的跳转。下面是笔者在对多窗口(2个)进行操作时封装的2个方法
public static WebDriver driver ;(具体的看使用的浏览器的种类再进行具体的实例化)public staticString 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:55

请问下 Iterator<String> it = handles.iterator();这句 是什么意思么

jingzizx 发表于 2015-8-12 10:52:13

selenium2实现窗口跳转主要是通过获取窗口的句柄实现窗口之间的切换,handles.iterator();
支持分享

xiaolijust5 发表于 2015-8-12 13:56:21

Set<String> handles = driver.getWindowHandles(); 将获得的窗口句柄放在set 集合内
Iterator<String> it = handles.iterator(); 迭代器,一般在集合里面的东西,都用这个来读取数据

krush008 发表于 2015-8-21 16:28:57

我原来也用的这段代码,不过不太严谨。

我在这优化了一下:
http://bbs.51testing.com/thread-1054628-1-1.html

Wei测试 发表于 2015-8-22 15:06:04

使用ie浏览器时,打开新窗口时,第一个窗口已经关闭了,这个时候selenium无法激活到新窗口了。请楼主有什么好办法吗?

AT懒汉 发表于 2015-12-3 11:25:56

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:42

jingzizx 发表于 2015-8-12 10:52
selenium2实现窗口跳转主要是通过获取窗口的句柄实现窗口之间的切换,handles.iterator();
支持分享

咨询个问题,如果我这个弹出窗口是用layer实现的,我该怎么处理

AT懒汉 发表于 2015-12-3 11:29:21

Wei测试 发表于 2015-8-22 15:06
使用ie浏览器时,打开新窗口时,第一个窗口已经关闭了,这个时候selenium无法激活到新窗口了。请楼主有什么 ...

没有遇到过,这样你贴一下代码
页: [1]
查看完整版本: selenium2实现窗口跳转