• selenium——iframe切换、alert弹框切换、窗口切换


    1、iframe切换

    切换到对应的iframe标签中可以进行定位

    切换方法:driver.switch_to.frame
    driver.switch_to.frame(名称)
    driver.switch_to.frame(索引)
    driver.switch_to.frame(elements节点)

    driver = webdriver.Chrome()
    
    
    
    driver.get('https://mail.qq.com/')
    
    time.sleep(2)
    
    # 方式一:切换iframe:通过iframe的名字(name属性)进行切换
    driver.switch_to.frame('login_frame')
    driver.find_element_by_xpath("//a[text()='帐号密码登录']").click()
    
    # 方式二:通过索引去切换iframe标签
    time.sleep(2)
    driver.switch_to.frame(0)
    
    driver.find_element_by_xpath('//div[@id="wxLoginTab"]').click()
    driver.find_element_by_xpath('//p[@id="auto_login"]/a').click()
    
    
    # 方式三:通过element节点去进行切换
    ele_iframe = driver.find_element_by_xpath('//iframe[@id="login_frame"]')
    driver.switch_to.frame(ele_iframe)
    driver.find_element_by_xpath("//a[text()='帐号密码登录']").click()

    # 方式四:使用显示等待的方式,等待iframe处于可以的状态,然后切换进行
    WebDriverWait(driver, 20, 1).until(
        EC.frame_to_be_available_and_switch_to_it((By.XPATH, '//iframe[@id="login_frame"]'))
    )
    driver.find_element_by_xpath("//a[text()='帐号密码登录']").click()
    
    #  关于iframe切换回 默认的HTML页面
    driver.switch_to.default_content()
    
    # 切换回父级的iframe中
    driver.switch_to.parent_frame()

    2、alert弹框切换

    # 关于alert弹框的切换
    alert = driver.switch_to.alert
    # 点击确认
    alert.accept()
    # 点击取消
    alert.dismiss()
    # 输入内容
    alert.send_keys("python34567890")

    3、窗口切换

    获取所有窗口的句柄

    ws = driver.window_handles

    print(ws)

    切换窗口的方法(窗口名),-1表示最新打开的窗口,1表示第一个窗口,2,3以此类推
    driver.switch_to.window(ws[-1])

    # 等待新窗口打开
    ws = driver.window_handles
    WebDriverWait(driver,5,0.5).until(EC.new_window_is_opened(ws)

  • 相关阅读:
    JAVA SSH 框架介绍
    Web开发者不可不知的15条编码原则
    全选,反选,全不选
    Python函数
    Python变量解析
    Python输入/输出语句
    Python程序基本架构
    Python开发环境安装
    java事件
    测试博客
  • 原文地址:https://www.cnblogs.com/erchun/p/12906110.html
Copyright © 2020-2023  润新知