zoukankan      html  css  js  c++  java
  • py+selenium切换到新弹出窗口通用方法

    from selenium import webdriver
    import time
    '''
    本案例主要来说明新老窗口的切换
    '''
     
    driver = webdriver.Firefox()
    driver.maximize_window()
    driver.get("https://www.baidu.com/")
     
    # 打印当前操作界面的句柄
    current_handle = driver.current_window_handle
    print('current_handle', current_handle)
    driver.implicitly_wait(2) # 如果找到了就继续,否则2秒等待
    driver.find_element_by_id("kw").send_keys("selenium") # 在搜索框中输入‘selenium’关键字
    time.sleep(2) # 强制等待2秒
     
    # 获取当前打开页的所有句柄并打印,应该只有一个
    all_handles = driver.window_handles
    print('all_handles', all_handles)
    # 找到百度一下的按钮,点击
    driver.find_element_by_id("su").click()
    time.sleep(5)
    # 点击后进入新窗口,新窗口有自己的句柄
    # 找到百度翻译,点击
    #driver.find_element_by_link_text("百度翻译").click()
    #driver.find_element_by_link_text(str(u"百度翻译".encode('utf-8'))).click()
    #driver.find_element_by_link_text("百度百科").click()
    driver.find_element_by_xpath(".//*[@id='4']/h3[1]/a[1]").click()
    time.sleep(20)
     
    # 获取进入新窗口后所有的句柄,并打印当前所有的句柄,此次应该有两个了
    all_handles2 = driver.window_handles
    print('all_handles2', all_handles2)
    driver.implicitly_wait(2)
     
    # 拿到新窗口句柄
    newhandle = [handle for handle in all_handles2 if handle not in all_handles]
    # 打印新窗口
    print('newhandle', newhandle[0])
    # 切换到新窗口
    driver.switch_to.window(newhandle[0])
    time.sleep(2)
    # 打印新窗口的title
    print('新窗口的title:', driver.title)
    # 关闭当前窗口
    driver.close()
     
    driver.implicitly_wait(5)
    time.sleep(1)
    # 切换到原窗口
    driver.switch_to.window(all_handles[0])
    # 打印原窗口的title和切换后的句柄
    print('原有老窗口的title:', driver.title)
    print(driver.current_window_handle)
    # 退出关闭浏览器
    driver.quit()

  • 相关阅读:
    sharepoint2010无法连接到配置数据库。
    多选框加和单选框一样的控制,只能选一个
    Windows Server 2008 网站访问PHP响应慢的解决方法
    Windows下的PHP安装文件线程安全和非线程安全的区别
    Apache+PHP 环境上传文件配置
    出现 HTTP Error 503. The service is unavailable 错误
    IIS7 上传 下载文件大小限制的设置
    php 错误信息配置
    新篇章
    面向对象
  • 原文地址:https://www.cnblogs.com/jie-2019/p/11970386.html
Copyright © 2011-2022 走看看