zoukankan      html  css  js  c++  java
  • selenium常用操作之iframe操作

    iframe:一个网页里面嵌套了另一个框架/页面,即在一个HTML页面中还内嵌了另外一个HTML页面,只不过这个内嵌的HTML是放在</frame></iframe>标签对中。

    在python3.8中对应的selenium提供了两种方法来获取iframe中的内容:

    方式一:driver.switvh_to.frame(frame_reference)

    语法:

    driver.switch_to.frame(iframe的name属性或webelement对象或下标)

    示例:

    driver.switch_to.frame(“login_frame_qq”)#切换到name为login_frame_qq的iframe中
    driver.switvh_to.frame(0)#切换到第一个iframe中
    driver.switch_to.frame((By.xpath,"//div[@class="ptlogin_wrap"]))

     方式二:frame_to_be_available_and_switch_to_it(frame_reference)

    在前面的selenium常用操作之等待操作中我们有介绍过,expected_conditons模块中提供的方法。

    此方法会判断iframe是否可用,并且会自动切换到iframe中。

    frame_reference的值与方式一保持一致。

    示例:


    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

    WebDriverWait(driver,20).until(EC.frame_to_be_available_and_switch_to_it(iframe_name))

      

    当页面中iframe中还有iframe时,假如此时我们想进入二级iframe,则需要先进入一级iframe,再进入二级iframe。

    #iframeId为一级iframe的id
    driver.switch_to_frame("iframeId")
    #iframeId下有两个并列的iframe,但是他们没有id和name,此时我们可以通过tag_name获取
    driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[1])

    这样我们就进入了一级iframeId下的iframe了!

    selenium跳出iframe

    ①从二级iframe跳到一级iframe,即跳到父级:

    driver.switchTo().parentFrame();
    #或者
    driver.switch_to.parent_frame()

    ②从iframe跳到主窗口

    driver.switch_to_default_content()
    #或者
    driver.switch_to.default_content()
  • 相关阅读:
    linux下启动和关闭网卡命令及DHCP上网
    python 编码问题
    paddlepaddle
    Convolutional Neural Network Architectures for Matching Natural Language Sentences
    deep learning RNN
    Learning Structured Representation for Text Classification via Reinforcement Learning 学习笔记
    Python IO密集型任务、计算密集型任务,以及多线程、多进程
    EM 算法最好的解释
    tensorflow 调参过程
    tensorflow 学习纪录(持续更新)
  • 原文地址:https://www.cnblogs.com/123blog/p/12481898.html
Copyright © 2011-2022 走看看