我们知道网页中有一种节点叫作 iframe ,也就是子 Frame ,相当于页面的子页面,它的结构和外部网页的结构完全一致。

Selenium 打开页面后,它默认是在父级 Frame 里面操作,而此时如果页面中还有子 Frame ,它是不能获取到子 Frame 里面的节点的。

这时就需要使用 switch_to.frame() 方法来切换 Frame,然后再进行下一步操作,如下,我们来获取 “请放置到这里!” 这段文本内容:

from selenium import webdriver

browser = webdriver.Chrome()
browser.get("http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable")
browser.switch_to.frame("iframeResult") # 先通过id切换到子Frame页面
content = browser.find_element_by_id("droppable").text # 再获取子Frame页面中想要的数据
print(content)

Selenium 切换 Frame的更多相关文章

  1. selenium切换frame(iframe)

    例如网页代码为: <!DOCTYPE html><html lang="en"><head> <meta charset="UT ...

  2. selenium之 定位以及切换frame(iframe)

    Set<String> windows = driver.getWindowHandles();        int count = 0;        for(String handl ...

  3. 【转】selenium之 定位以及切换frame

    转载自:http://www.voidcn.com/blog/huilan_same/article/p-6155896.html 很多人在用selenium定位页面元素的时候会遇到定位不到的问题,明 ...

  4. 【Selenium2】【selenium之 定位以及切换frame(iframe)】

    参考:http://blog.csdn.net/huilan_same/article/details/52200586 总有人看不明白,以防万一,先在开头大写加粗说明一下: frameset不用切, ...

  5. 【转载】selenium之 定位以及切换frame(iframe)

    更多关于python selenium的文章,请关注我的专栏:Python Selenium自动化测试详解 总有人看不明白,以防万一,先在开头大写加粗说明一下: frameset不用切,frame需层 ...

  6. selenium之定位以及切换frame

    总有人看不明白,以防万一,先在开头大写加粗说明一下: frameset不用切,frame需层层切! 很多人在用selenium定位页面元素的时候会遇到定位不到的问题,明明元素就在那儿,用firebug ...

  7. python+selenium的frame表单切换

    switch_to.frame()                               切换frame switch_to.default_content()                切 ...

  8. selenium之 定位以及切换frame(iframe)(转)

    frame标签有frameset.frame.iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位,而frame与iframe对selenium定位而言是一样的,seleni ...

  9. switch_to_frame,切换frame框架

    页面包含frame/iframe标签,需要先切换到该frame标签,再去定位属于这个frame的元素.   如果要再去定位其他frame的元素,需要回到该frame的上级,定位到要选择的frame,不 ...

随机推荐

  1. [hbase] HBase内置过滤器的一些总结

    http://blog.csdn.net/cnweike/article/details/42920547

  2. 1、QT分析之QApplication的初始化

    原文地址:http://blog.163.com/net_worm/blog/static/1277024192010097430321/ 在开始分析之前交代一下,一是分析的QT在Window平台实现 ...

  3. 【3】JVM-OutOfMemory异常重现

    JVM中常见的OOM,那么如何通过自己编写代码产生这些OOM异常呢?通过写代码重现异常,是为了避免在工作中写出有OOM BUG的代码.之前虽然看过相关文章,但是没自己写过这些代码,这次在编写的实际过程 ...

  4. Linux网络的设置

    一.介绍 目的:使Linux可以正常上网,前提是物理机可以上网 软件环境: 虚拟机版本: VMware Workstation 12, Linux系统版本:CentOS 7.3 二.设置网络 1,在登 ...

  5. Json---Linux下使用Jsoncpp

    一.安装 scons 下载地址:http://sourceforge.net/projects/scons/files/scons/2.1.0/scons-2.1.0.tar.gz/download ...

  6. Java如何显示不同语言的时间?

    在Java中,如何显示不同语言的时间? 此示例使用DateFormat类以中文语言显示时间. package com.yiibai; import java.text.DateFormat; impo ...

  7. Android Jsoup 爬取网页数据

    一不小心一个月又过去了,事实上近期还是小忙小忙的,废话不多说.直接进入今天的主题吧. Jsoup – Java HTML Parser, with best of DOM, CSS, and jque ...

  8. 使用VS2017新建的Web项目报错:Package Microsoft.Composition 1.0.27 is not compatible with netcoreapp1.1

    使用VS2017新建的Web项目报错: 看到这样的错误提示,毫无意义.赶脚这应该是VS2017的BUG,没有显示错误的位置.于是用dotnet restore手动还原,结果在控制台中终于显示了详细的错 ...

  9. iText中输出中文

    原文链接 http://hintcnuie.iteye.com/blog/183690 转载内容 iText中输出中文,有三种方式: 1.使用iTextAsian.jar中的字体 BaseFont.c ...

  10. LigerUI编辑表格组件单元格校验问题

    这几天在使用LigerUI(版本为1.2.2)编辑表格组件的时候,遇到几个小问题,从官方demo和api中没有找到解决的办法 问题1.从数据库查询出来的主键单元格不可编辑问题 主键单元格已经保存之前编 ...