zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    关于这个 blog
    P6499 [COCI2016-2017#2] Burza 题解
    CF1172F Nauuo and Bug 题解
    CF1479D Odd Mineral Resource 题解
    CF1442E Black, White and Grey Tree 题解
    CF1442D Sum 题解
    CF1025D Recovering BST 题解
    CF1056E Check Transcription 题解
    CF1025F Disjoint Triangles 题解
    红包算法的PHP实现
  • 原文地址:https://www.cnblogs.com/kite123/p/11511004.html
Copyright © 2011-2022 走看看