zoukankan      html  css  js  c++  java
  • selenium多窗口之间切换

    1、多窗口的切换

      在自动化测试过程中有时候会出现多窗口的情况,脚本打开的窗口光标默认在第一个窗口上,此时需要定位第二个或者其他窗口就需要先切换窗口再定位(依据窗口的句柄切换,句柄是窗口唯一标识,相当于人的身份证)

      获取多窗口方法:driver.window_handles(此方法返回的是一个句柄列表)

    # 导入包
    from selenium import webdriver
    import time
    # 创建一个浏览器对象,访问百度
    driver = webdriver.Firefox()
    driver.get('http://www.baidu.com')
    
    # 打印当前句柄、标题、网址
    print('当前句柄:',driver.window_handles,'
    当前网址:',driver.current_url,'
    浏览器标题:',driver.title)
    # 定位hao123
    hao = driver.find_element_by_css_selector('a.mnav:nth-child(2)')
    # 点击
    hao.click()
    
    # 保存当前打开的网页句柄
    handles_list = driver.window_handles
    
    # 打开浏览器后自动默认光标在第一个页面,若不做切换动作,会一直默认在第一个打开的窗口上
    # 打印当前句柄、标题、网址(可见结果与上面结果相同)
    print('当前句柄:',driver.window_handles,'
    当前网址:',driver.current_url,'
    浏览器标题:',driver.title)
    
    # 切换窗口后再打印句柄等
    driver.switch_to.window(handles_list[1])
    print('当前句柄:',driver.window_handles,'
    当前网址:',driver.current_url,'
    浏览器标题:',driver.title)
    
    # 定位新窗口的元素,若成功定位,则在新窗口上,否则在旧窗口上
    try:
        # 定位新窗口的元素
        driver.find_element_by_css_selector('a.g-gc:nth-child(2)')
        print('在新窗口','
    浏览器标题:',driver.title,'
    网址:',driver.current_url)
    except:
        print('旧窗口旧旧旧旧','
    浏览器标题:',driver.title,'
    网址:',driver.current_url)
    # 关闭浏览器
    driver.quit()

    运行结果:

    当前句柄: ['{12f1218e-8701-4e92-8d1b-e91de3c06654}']
    当前网址: https://www.baidu.com/
    浏览器标题: 百度一下,你就知道
    当前句柄: ['{12f1218e-8701-4e92-8d1b-e91de3c06654}', '{10b3404c-4fc5-4014-90fe-a82a83efa39c}']
    当前网址: https://www.baidu.com/
    浏览器标题: 百度一下,你就知道
    当前句柄: ['{12f1218e-8701-4e92-8d1b-e91de3c06654}', '{10b3404c-4fc5-4014-90fe-a82a83efa39c}']
    当前网址: https://www.hao123.com/
    浏览器标题: hao123_上网从这里开始
    在新窗口
    浏览器标题: hao123_上网从这里开始
    网址: https://www.hao123.com/

    结论:脚本打开浏览器多个页面时,会自动默认光标在第一个窗口上,若需要操作其他窗口,需要依靠句柄切换到窗口再操作页面

  • 相关阅读:
    TensorFlow 基础 (04)
    面向对象编程思想的介绍
    B2B、B2C、C2C、O2O的概念
    为什么我们需要域
    如何在阿里云服务器上搭建wordpress个人网站
    Ghost手动备份、还原系统详细图文教程
    IE浏览器下载文件保存时提示:“你没有权限在此位置中保存文件”解决办法
    电脑经常自动重启的一些解决办法
    ERP系统到底能做什么?
    SQL实用技巧:如何分割字符串
  • 原文地址:https://www.cnblogs.com/will-wu/p/13466043.html
Copyright © 2011-2022 走看看