zoukankan      html  css  js  c++  java
  • web自动化测试--iframe切换

    什么是iframe切换,我们在测试web网页过程中,可能会遇到一个网页中嵌套另一个网页的情况,如下图,就是一个ifame嵌套的例子

     我们如何切换呢,别急,webdriver里有方法,可以切换到iframe里面

    1.方法一:driver.switch_to.frame(iframe_name)

    iframe_name:1.可以是name属性

    2.webElement对象(by.xpth表达式)

    3.下标值

    #iframe切换
    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

    driver=webdriver.Chrome()
    driver.get("https://ke.qq.com/")

    driver.implicitly_wait(30)
    driver.find_element_by_id('js_login').click()#找到登录按钮,并点击

    loc=(By.XPATH,'//i[@class="icon-font i-qq"]')
    WebDriverWait(driver,10).until(EC.visibility_of_element_located(loc))
    driver.find_element_by_xpath('//i[@class="icon-font i-qq"]').click()#点击qq登录

    #操作到有iframe的页面当中,接下来在iframe中找元素并操作
    loc=(By.NAME,"login_frame_qq")
    WebDriverWait(driver,10).until(EC.visibility_of_element_located(loc))
    driver.switch_to.frame("login_frame_qq")

    driver.find_element_by_id("switcher_plogin").click()#点击账号密码登录

    方法二:frame_to_be_available_and_switch_to_it(iframe_name)

    WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it('login_frame_qq'))
    

      

      

  • 相关阅读:
    关于异步IO与同步IO的写操作区别
    慢慢开始记录一些技术心得吧
    写了placement new就要写placement delete
    关于针对class自定义new操作符失败的函数处理
    operator->和operator->*
    关于继承中的拷贝构造函数
    关于g++编译模板类的问题
    关于互斥锁,条件变量的内核源码解析
    关于sigwait
    观察者设计模式
  • 原文地址:https://www.cnblogs.com/hherbk/p/12686730.html
Copyright © 2011-2022 走看看