zoukankan      html  css  js  c++  java
  • 关于selenium2(webdriver)自动化测试过程中标签页面或者窗口切换的处理解决方案

    1.  通过页面或者window 的name切换:

    • switch_to_frame(name)
    • switch_to_window(name)

    那么问题来了,出现2个或者以上窗口时候,新打开的window一般都是没有name,此时可用driver.switchTo().window(windowHandleId)来进行切换

     //获取当前窗口handleId

    String  thisHandleId = driver.getWindowHandle();  

     

    //切换到新window

    for(String tempHandleId: driver.getWindowHandles())

    {     

           //如果不是当前窗口的thisHandleId,那么我们就用它取切换到新窗口

            if(!tempHandleId.equals(thisHandleId))

           {

               driver.switchTo().window(tempHandleId);  

          }

    }  

    亲,你是不是要问我如果超过2个测试窗口怎么办? 告诉你,没有现成的办法,但是我有一秘诀,就是:

    每次遍历一个handleId去切换到一个不知道是哪个页面的页面,然后接着去断言下该页面下是否有你设置的那些元素或者文字或网页标题等等,不就可以区分是哪个新页面了?

    for(String tempHandleId: driver.getWindowHandles())

    {     

                   driver.switchTo().window(tempHandleId);  

                    ...接着去获取当前窗口的html进行分析、或者断言网页标题、内容元素等,肯定可以区分是哪个新页面,除非是相同的响应页面那我无语了

                    不要再问哥,哥就说个传说! 不过我要告诉你每个网页都有一个HandleId,就好比每个人都有一个身份证号码进行唯一识别身份。

    }  

    sea  2015  中国:广州:VIP

    本着资源共享的原则,欢迎各位朋友在此基础上完善,并进一步分享,让我们的实现更加优雅。如果有任何疑问和需要进一步交流可以留言沟通 Testner创始人(testner.club) Sea
  • 相关阅读:
    深入Spring Security魔幻山谷-获取认证机制核心原理讲解
    灵魂拷问:你真的理解System.out.println()打印原理吗?
    解决分布式React前端在开发环境的跨域问题
    “我以为”与“实际上”
    前端:如何让background背景图片进行CSS自适应
    VSCode如何设置Vue前端的debug调试
    【JDBC】总结
    【JDBC第9章】Apache-DBUtils实现CRUD操作
    【JDBC第8章】数据库连接池
    【JDBC第7章】DAO及相关实现类
  • 原文地址:https://www.cnblogs.com/sea520/p/4572681.html
Copyright © 2011-2022 走看看