Selenium浏览器之间转换

通过句柄转换浏览器 driver.switchTo().window(句柄字符串)

首先要获得当前浏览器,也就是主页面的句柄:

String currenthandle = driver.getWindowHandle();

然后,会通过某个操作触发打开新页面,此时新页面的句柄未知,需要获得新页面的句柄,来定位浏览器,再进行后续操作,定位新浏览器句柄:

方法一思路:打开新浏览器前,获取主浏览器句柄,如上代码。触发操作弹出新的浏览器之后,将所有一打开的浏览器句柄,放在一个集合里,遍历集合,如果句柄不等于主浏览器句柄,则定位该浏览器。


    //将所有浏览器句柄保存在集合allhandles中
         Set<String> allhandles;
         allhandels=driver.getWindowHandles();

    //遍历集合,每次遍历的值放在windowsid里面,比较是否与主浏览器句柄一致,不一致则获得新浏览器句柄,换到新的浏览器上

    for(String windowid:allhandels){
        if(currenthandle.equals(windowid)){}
        else{
            driver.switchTo().window(windowid);
            }
        }
    //返回主浏览器
    driver.switchTo().window(currenthandle);

方法二思路:打开新浏览器前,获取主浏览器句柄,如最上面代码。触发操作弹出新的浏览器之后,将所有一打开的浏览器句柄,放在一个迭代器里,访问迭代器的序列,第一个值是主页面,第二个值就是新打开页面的句柄。

//将所有句柄放在迭代器it中

Iterator<String> it = driver.getWindowHandles().iterator();

//访问迭代序列中的第一个值

it.next();

//访问迭代序列中的第二个值,作为句柄,定位浏览器

driver.switchTo().window(it.next());

//返回主浏览器

driver.switchTo().window(currenthandle);

没有搞懂迭代器的存储顺序为什么是先保存第一个浏览器句柄,之后是第二个,而且迭代器是单向访问的,个人不习惯用这个,但是也可以实现切换浏览器。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值