• selenium自动化多窗口切换


    在页面操作时,有时需要打开新的窗口链接,需要切换到新的窗口进行操作,

    webdriver提供了switch_to.window()方法,可以实现不同窗口间的切换

    多窗口切换

    switch_to.window()方法可以实现不同的窗口间的切换

    current_window_handle:获得当前窗口句柄

    window_handles:返回所有窗口的句柄到当前会话

    switch_to.window():切换对应的窗口

    以百度首页和账号注册页为例:

    import time
    from selenium import webdriver
    
    driver = webdriver.Chrome()
    driver.implicitly_wait(10)  # 隐式等待10s
    driver.get("http://www.baidu.com")
    
    # 获得百度搜索窗口句柄
    search_windows = driver.current_window_handle
    
    driver.find_element_by_link_text("登录").click()
    driver.find_element_by_link_text("立即注册").click()
    # 获取当前所有打开的窗口句柄
    all_handles = driver.window_handles
    # 进入注册窗口
    for handle in all_handles:
        if handle != search_windows:
            driver.switch_to.window(handle)  # 切换到注册窗口
            print(driver.title)  # 打印标题
            driver.find_element_by_name("userName").send_keys("username_4578")
            driver.find_element_by_name("phone").send_keys("13811111111")
            time.sleep(2)
            # driver.find_element_by_name("password").send_keys("123456")
            # driver.find_element_by_name("verifyCode").send_keys("xxxx")
            # 关闭当前窗口
            driver.close()

    
    # 回到搜索窗口
    driver.switch_to.window(search_windows)
    print(driver.title)
    
    driver.quit()

     方法二:获取所有句柄,利用列表索引

    all_handle=driver.window_handles()

    driver.switch_to.window(all_handle[1])

     
     
  • 相关阅读:
    关于sifari兼容性的一个问题
    HTML标签的应用(新手)
    HTML标签的应用(新手)
    未完成的开锁动画演示
    HTML标签的应用(新手)
    HTML新手向
    C++
    STL之set
    C++输入输出
    提升一下逼格
  • 原文地址:https://www.cnblogs.com/zhifeiji822/p/13066205.html
Copyright © 2020-2023  润新知