• WebDriver 多表单和多窗口切换---(虫师《selenium3自动化测试实战--基于Python语言笔记19》)


    1.多表单切换

    driver.switch_to.frame(login_frame)# switch_to.frame()默认可以直接对表单的id或name属性传参
    driver.switch_to.default_content()  # 回到最外层页面

    2.多窗口切换

    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()
  • 相关阅读:
    Tomcat
    DOM/SAX/PULL解析XML
    Android网络编程 知识框架
    Chapter 10 Networking/JSON Services
    Chapter 10 Networking/Web Service Using HTTP
    Android-Universal-Image-Loader
    8.Media and Camera/Media Camera
    PAT乙级1007.素数对猜想(20)
    筛法求素数详解
    PAT乙级1006.换个格式输出整数(15)
  • 原文地址:https://www.cnblogs.com/kite123/p/11511004.html
Copyright © 2020-2023  润新知