Python3.x:selenium获取iframe内嵌页面的源码

前言

在一些网页中经常会看到ifrmae/frame标签,iframe是嵌入式框架一般用来在已有的页面中嵌入另一个页面,当一个元素在iframe里时我们应该先切换到iframe里面。

语法

1.进入iframe

iframe = self.driver.find_element_by_xpath("//iframe[contains(@src,'https://************/auth?e_p=1&response_type=token')]")

self.driver.switch_to.frame(iframe)

2.释放/退出iframe

driver.switch_to_default_content()

实例代码

# python3
# author lizm
# datetime 2018-01-27 10:00:00
'''
Demo;selenium获取iframe内嵌页面源码
获取select下拉选项
'''
from selenium import webdriver #打开浏览器(不弹出浏览器页面)
driver = webdriver.PhantomJS()
#打开浏览器
#driver = webdriver.Chrome()
#最大化浏览器
#driver.maximize_window()
#打开页面
driver.get("http://*************/center_tjbg.shtml")
#通过contains函数,提取匹配特定文本的所有元素
frame = driver.find_element_by_xpath("//iframe[contains(@src,'http://**************/cms-search/monthview.action?action=china&channelFidStr=e990411f19544e46be84333c25b63de6')]")
#进入iframe页面
driver.switch_to.frame(frame)
#获取select标签
select = driver.find_element_by_id("channelFidStr")
# 获取select里面的option标签,注意使用find_elements
options_list=select.find_elements_by_tag_name('option')
# 遍历option
for option in options_list:
#获取下拉框的value和text
print ("Value is:%s Text is:%s" %(option.get_attribute("value"),option.text)) #点击查询按钮事件
#driver.find_element_by_css_selector("input[class = 'btn']").click()
#退出iframe
driver.switch_to_default_content()
driver.quit()

作者:整合侠
链接:http://www.cnblogs.com/lizm166/p/8367499.html
来源:博客园
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Python3.x:selenium获取iframe内嵌页面的源码的更多相关文章

  1. 如何根据iframe内嵌页面调整iframe高宽续篇

    接着昨天的工作 如何根据iframe内嵌页面调整iframe高宽 来说,按照文章中说的第二种方法实现代码如下: 实现 A.com/detail/view 页面的iframe代码如下: <ifra ...

  2. 如何根据iframe内嵌页面调整iframe高宽

    问题来自于工作的实例,我的一个域名A的页面,有个iframe,它可能内嵌了另一个域名B的页面,也可能内嵌域名C的页面,但是呢,B和C的页面大小是不一样的,特别是高是不一样的高,那么我如何设置ifram ...

  3. 弹出iframe内嵌页面元素到父页面并全屏化

    (注册博客好久了,一直没舍得添砖加瓦,主要是每次想写点东西的时候,随便搜一搜发现都比我总结的都要好,甚感尴尬,但是总是要开始的,所以这就是我的第一篇博客,也绝不会是最后一篇,废话不多说,直接入正题) ...

  4. iframe内嵌页面——跨域通讯

      <template> <div class="act-form"> <iframe :src="src" ref=" ...

  5. [转]内嵌页面iframe以及和其兄弟iframe的相互传值

    原文出处 iframe的调用包括以下几个方面:(调用包含html dom,js全局变量,js方法) 主页面调用iframe: iframe页面调用主页面: 主页面的包含的iframe之间相互调用: 主 ...

  6. 关于selenium自动化对iframe内嵌元素的处理

    今天上班闲来无聊,于是来练练自动化,结果碰上了可恶的iframe,楼主,以前也遇到过,但是一直也没搞懂怎么处理的,都是抄别人的代码,今天决定独立解决试试.首先先来认识什么是iframe,它就长下图这样 ...

  7. MetaBase使用iframe内嵌到Vue页面样式优化

    Matebase是一个开源,易上手的BI工具,这里不做太多介绍了. 官网地址:https://www.metabase.com/ 解决问题描述: 使用iframe内嵌Metabase公开链接之后,页面 ...

  8. selenium - switch_to.frame()- 内嵌表单的切换

    表单嵌套frame/iframe webDriver只能在一个页面上对元素识别和定位,对于frame/iframe表单内嵌页面上的元素无法直接定位,此时就需要通过switch_to.frame()方法 ...

  9. react页面内嵌微信二维码 和 自定义样式 以及 微信网页共用unionId问题

    在react页面内嵌“微信二维码”,实现PC端通过微信扫码进行登录.首先去微信开放平台注册一个账号,创建一个网站应用,提交网站备案审核,获取appid和appsecret:其他开发流程根据微信文档来进 ...

随机推荐

  1. 【黑金原创教程】【TimeQuest】【第三章】TimeQuest 扫盲文

    声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/al ...

  2. Android 全局异常处理(一)

    from:http://onewayonelife.iteye.com/blog/1147533 from:http://blog.csdn.net/liuhe688/article/details/ ...

  3. react-native 学习(三)

    上一次讲到了react-native 的配置环境 和 如何去进行调试,这一次我们说一说,关于react-native的 样式兼容问题. 由于iphonex的发售,在兼容的时候,我门也需要去考虑ipho ...

  4. js对用户信息加密传输 java后端解密

    1.加密采用服务端随机生成加密因子放入session中,传入登录或注册界面(每次进入都刷新) 2.页面中引入jquery.aes.js(这个js从网上下的坑比较多,引入先后顺序不一致都会报错,所以最后 ...

  5. java7(2)——使用mutilcatch注意事项

    从java7推出mutilcatch后,到现在都少有看到人使用,可能是这个功能真正用起来,比起多个catch并不快多少,而且现在的工IDE具太厉害了,什么都有快捷键!说是这么说,我们还是得了解一下如何 ...

  6. python web框架 Django 登录页面

    在django 项目下 创建一个templates 放模板的文件夹 html文件都放在这里 在里面写一个login.html 登录页面 urls.py 加上 login 对应关系 from djang ...

  7. HDFS集中式的缓存管理原理与代码剖析

    转载自:http://www.infoq.com/cn/articles/hdfs-centralized-cache/ HDFS集中式的缓存管理原理与代码剖析 Hadoop 2.3.0已经发布了,其 ...

  8. JSP页面实现自动跳转!

    JSP页面实现自动跳转!一.页面自动刷新: 把如下代码加入<head>区域中<meta http-equiv=”refresh” content=”5″>注:content=” ...

  9. Java CodeFormatter

    设置Formatter模板的入口: Window->Preference->Java->Code Style->Code Formatter <?xml version= ...

  10. SpringMVC-SimpleDEMO

    本博文主要将如何配置一个简单的SpringMVC的DEMO,由上一讲的SpringMVC工作流程来看,配置一个SpringMVC的步骤是简单而清晰的. 一.引入SpringMVC所需依赖   < ...