zoukankan      html  css  js  c++  java
  • Web自动化窗口切换的2种形式(window&Iframe)

    切换分为1)windows切换 2)iframe切换

    drivere.switch_to.window/frame

    1.什么情况下需要窗口切换?

    1)页面的操作,打开了一个新的窗口,你需要在新的窗口当中,去进行下一步操作  2) 页面当中又iframe,并且要进入iframe去进行下一个操作                                                                                   2.怎么知道要切换到 哪个窗口?代码如何知道哪个窗口时新的窗口?

    1)得到目前打开的所有窗口--句柄 每一个窗口都又一个句柄  列表 ----欠货出现  先出现的,先追加到刘表,最新的窗口,在列表的最后,最先打开的窗口,在列表的第一个

    获取所有句柄:wins=driver_handles

    2)切换到新窗口  driver.switch_to.window(wins[-1])  

    等待新的窗口出现   

      iframe:

    1)定位iframe:下标/name属性/webElement对象

    2)切换:driver.switch_to.frame()

    等待iframe可见 time.sleep(1)

     

    二.iframe切换

    什么情况需要iframe切换?

    需要操作的元素在iframe种

    1.识别元素是否在iframe,F12

    2.切换:1)切换到哪个iframe?  iframe时标签对,是当前默认html的一个元素

    腾讯课堂的QQ登录页面为例  //iframe[@name="login_frame_qq"]

    driver.switch_to.frame()

    支持3种方式来确定切换到哪一个iframe

    1)从iframe下标 ,从0开始,driver.switch_to.frame(3)

    2)iframe元素的name属性 driver.switch_to.frame("login_frame_qq")

    3)iframe这个webelement元素,driver.swich_to.frame(driver.find_element_by_xpath('//iframe[@name="login_frame_qq"])

    from selenium import webdriver
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    import time
    driver=webdriver.Chrome()
    driver.get("http://www.baidu.com")
    #element=driver.find_element_by_id("kw")
    #1)进入又iframe的页面
    #操作到又iframe的页面当中,并接下来的步骤,是在iframe中找到元素并操作
    #2)切换
    driver.switch_to.frame("login_frame_qq")
    #3)在iframe当中的html了
    #4)回到默认的hrml页面内中,退出iframe
    driver.switch_to.default_content()
    #5)回到上一级的iframe
    driver.switch_to.parent_frame()

       

  • 相关阅读:
    第01组 Alpha冲刺 (4/4)
    第01组 Alpha冲刺 (3/4)
    发布 学习进度条 博客要求
    0302思考并回答一些问题
    13商软 《软件工程》课程设计 评分
    13商软 《软件工程》课程设计
    数独游戏的设计与实现 13商软《软件工程》补考题目
    期未总评分
    《软件工程》 团队项目展示
    20150616 最后一次冲刺
  • 原文地址:https://www.cnblogs.com/JacquelineQA/p/14287626.html
Copyright © 2011-2022 走看看