美文网首页
八、Selenium常用方法:Frame操作

八、Selenium常用方法:Frame操作

作者: 叫我松鼠哥哥 | 来源:发表于2019-11-12 21:39 被阅读0次

    Frame有Frame set、Frame、iFrame三种。Frameset可以直接按照正常元素定位。Frame和iFrame定位方法相同,需要把驱动切换到Frame内再进行操作。
    示例:在QQ邮箱中输入用户名

    iframe示例
    用户名和登陆密码都嵌套在iframe标签内,所以再操作iframe中的元素时,需要先进行驱动的切换。当驱动切换到Frame内部后,只能对Frame内部对元素进行操作。如果需要对Frame之外的元素进行操作,则需要返回原有驱动。
    驱动切换方法 说明
    driver.switch_to.frame(reference) 方式1:切换到frame模式(嵌套Frame时,需要一级一级向下切换)
    driver.switch_to.frame(0) 方式2:用frame的index来定位,第一个是0
    driver.switch_to.frame(driver.find_element_by_id("login_frame")) 方式3:通过WebElement对象模式,通过find_element等方法获取元素对象
    switch_to.parent_frame() 嵌套Frame:切换到父级Frame(向上切换、回退)
    driver.switch_to_default_content() 切换到原有模式
    import time
    from selenium import webdriver
    
    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.get("https://mail.qq.com/cgi-bin/loginpage")
    
    # 驱动切换到Frame(三种方式)
    #由于登陆位于第二个frame,所以此处应该是1
    driver.switch_to.frame(1)
    driver.switch_to.frame("login_frame")
    driver.switch_to.frame(driver.find_element_by_id("login_frame"))
    # 通过id属性
    driver.find_element_by_id("u").send_keys("961370624@qq.com")
    # 通过name属性
    driver.find_element_by_name("p").send_keys("123456789")
    
    time.sleep(2)
    driver.quit()
    

    Selenium 3+Python 3 自动化测试项目实战 从菜鸟到高手 田春成 李靖 /著

    相关文章

      网友评论

          本文标题:八、Selenium常用方法:Frame操作

          本文链接:https://www.haomeiwen.com/subject/hgenvctx.html