zoukankan      html  css  js  c++  java
  • selenium之内嵌网页iframe切换

    IFRAME是HTML标签,作用是文档中的文档,或者浮动的框架(FRAME)。iframe元素会创建包含另外一个文档的内联框架(即行内框架)       -来自百度百科

    iframe,又叫浮动帧标记,是内嵌的网页元素,可以将一个html文件嵌入到另一个html文件中显示

    一般这种网页元素我们需要进行切入之后才能定位到具体的元素,如何做呢?下面代码是一种方法,并不能执行。

    from selenium import webdriver
    import time
    driver = webdriver.Chrome()
    driver.implicitly_wait(5)  # 隐式等待
    driver.get("http://www.xxx.com") #打开网页
    """
    对iframe进行操作,需要用到以下三种方法:
    switch_to_iframe()                       切换到iframe上(未来会被删除,不建议使用)
    switch_to.frame()                        切换到iframe上
    switch_to.default_content()              切换回原主页面
    """
    iframe = driver.find_element_by_id("f91fsd")  #定位到内嵌的iframe网页
    driver.switch_to.frame(iframe)   #切入到iframe
    driver.find_element_by_id("sw").send_keys("test") #然后对元素进行操作
    driver.switch_to.default_content()   #回到主页面,这一步一定要记得,有很多初学者会忘记写这一步导致无法定位到原页面元素
    time.sleep(5)
    driver.quit()

    看完代码相信你对iframe有一个大概的了解,其实你把里面的iframe当做你的卧室,原来的主页面当做客厅,你从客厅需要进入到卧室,必须打开卧室的门,这一步骤就是切入

    这时候你又想去客厅去拿杯子,就需要从卧室出去,出去这一步骤就是切出(回到主页面)。这样说的话是不是容易理解了。

  • 相关阅读:
    html调用applet
    WindowListener中的windowClosed方法不执行的问题。
    有理数类 Java BigInteger实现
    有理数类 Java
    BigInteger构造函数解析
    求最大公约数(辗转相除法)
    Java 十六进制转十进制
    Java 十进制转十六进制
    ORA-12520: TNS:listener could not find available handler for requested type of server
    关于 error: Operation is not valid due to the current state of the object。
  • 原文地址:https://www.cnblogs.com/king2/p/13657805.html
Copyright © 2011-2022 走看看