9.切换 iframe

  • 定义:iframe 元素会创建包含另外一个文档的内联框架(即行内框架)
  • 以163邮箱为例:
    • 如图可知道iframe区域时整个登录框显示区
      • iframe 属性  id="x-URS-iframe1562841898808.443",name=" "
    • 切换iframe
      • 方法switch_to_frame
        • 可通过其父元素定位到iframe
        • # coding:utf-8
          from selenium  import webdriver
          import time
          driver=webdriver.Firefox()
          driver.get("https://mail.163.com/")
          time.sleep(10)
           #切换到账号密码登录页面
          driver.find_element_by_id('lbNormal').click() 
          time.sleep(10)
          #切换到iframe
          driver.switch_to.frame(driver.find_element_by_xpath('//div[@id="loginDiv"]/iframe'))  
          #输入用户名和密码,并点击登录
          driver.find_element_by_name("email").send_keys("用户名")
          driver.find_element_by_name("password").send_keys("密码")
          driver.find_element_by_id("dologin").click()
          time.sleep(10)
          driver.quit()


           

    • 其他定位iframe的方法:
      • 有id,并且值唯一,可以直接写明id
      • driver.switch_to_frame("x-URS-iframe")
        driver.switch_to.frame("x-URS-iframe")
        
      • 有name,并且值唯一,可以直接写明name
        • driver.switch_to_frame("xxxx")
          driver.switch_to.frame("xxxx")
          
      • 无id和name,可通过8中元素定位到iframe
    • 释放iframe:switch_to_default_content()
      • driver.switch_to.default_content()
        

         

posted on 2019-07-11 20:04  Arcy  阅读(173)  评论(0编辑  收藏  举报

导航