• selenium元素定位中的iframe切换问题总结


     1 from selenium import webdriver
     2 from selenium.webdriver.support.wait import WebDriverWait
     3 from selenium.webdriver.support import expected_conditions as EC
     4 from selenium.webdriver.common.by import By
     5 import time
     6 
     7 driver = webdriver.Chrome()
     8 driver.get("https://ke.qq.com/")
     9 driver.maximize_window()
    10 
    11 """
    12 以腾讯课堂登录为例,演示切换iframe
    13 """
    14 #首次登录,点击登录
    15 driver.find_element_by_id("js_login").click()
    16 time.sleep(1)
    17 #选择QQ登录
    18 driver.find_element_by_link_text("QQ登录").click()
    19 
    20 #切换ifarme:
    21 #方式一:switch_to.frame(XXX),该方法支持的入参包含:id,name,webelement。
    22 #注:drive.find_element_by_xxx的返回值是webelement
    23 driver.switch_to.frame("login_frame_qq")
    24 #driver.switch_to.frame(driver.find_element_by_xpath("//iframe[@name='login_frame_qq']"))
    25 #等待iframe存在,可见
    26 time.sleep(1)
    27 #点击账号密码登录
    28 driver.find_element_by_id("switcher_plogin").click()
    29 
    30 #方式二:frame_to_be_available_and_switch_to_it(XXX),该方法支持的入参包含:id,name,webelement。
    31 WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it("login_frame_qq"))
    32 time.sleep(1)
    33 
    34 """-------------------------------------------"""
    35 #当存在iframe嵌套时,必须逐级深入,不能跳级
    36 #从当前的iframe中回到默认的页面中
    37 driver.switch_to.default_content()
    38 
    39 #返回父级的iframe
    40 driver.switch_to.parent_frame()
  • 相关阅读:
    angularjs中ng-repeat-start与ng-repeat-end用法实例
    随笔 javascript-抽象工厂模式
    VMware一些使用心得
    oracle 12c的数据库导进 11g
    架构师基本功:消息队列
    如何提高工作效率
    oracle 12c 13姨
    架构师基本功:SOA
    autofac如何注册静态方法里的接口对象
    发布Java桌面程序
  • 原文地址:https://www.cnblogs.com/xjklmycw/p/14629743.html
Copyright © 2020-2023  润新知