Python3.x:selenium获取iframe内嵌页面的源码
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内嵌页面的源码的更多相关文章
- 如何根据iframe内嵌页面调整iframe高宽续篇
接着昨天的工作 如何根据iframe内嵌页面调整iframe高宽 来说,按照文章中说的第二种方法实现代码如下: 实现 A.com/detail/view 页面的iframe代码如下: <ifra ...
- 如何根据iframe内嵌页面调整iframe高宽
问题来自于工作的实例,我的一个域名A的页面,有个iframe,它可能内嵌了另一个域名B的页面,也可能内嵌域名C的页面,但是呢,B和C的页面大小是不一样的,特别是高是不一样的高,那么我如何设置ifram ...
- 弹出iframe内嵌页面元素到父页面并全屏化
(注册博客好久了,一直没舍得添砖加瓦,主要是每次想写点东西的时候,随便搜一搜发现都比我总结的都要好,甚感尴尬,但是总是要开始的,所以这就是我的第一篇博客,也绝不会是最后一篇,废话不多说,直接入正题) ...
- iframe内嵌页面——跨域通讯
<template> <div class="act-form"> <iframe :src="src" ref=" ...
- [转]内嵌页面iframe以及和其兄弟iframe的相互传值
原文出处 iframe的调用包括以下几个方面:(调用包含html dom,js全局变量,js方法) 主页面调用iframe: iframe页面调用主页面: 主页面的包含的iframe之间相互调用: 主 ...
- 关于selenium自动化对iframe内嵌元素的处理
今天上班闲来无聊,于是来练练自动化,结果碰上了可恶的iframe,楼主,以前也遇到过,但是一直也没搞懂怎么处理的,都是抄别人的代码,今天决定独立解决试试.首先先来认识什么是iframe,它就长下图这样 ...
- MetaBase使用iframe内嵌到Vue页面样式优化
Matebase是一个开源,易上手的BI工具,这里不做太多介绍了. 官网地址:https://www.metabase.com/ 解决问题描述: 使用iframe内嵌Metabase公开链接之后,页面 ...
- selenium - switch_to.frame()- 内嵌表单的切换
表单嵌套frame/iframe webDriver只能在一个页面上对元素识别和定位,对于frame/iframe表单内嵌页面上的元素无法直接定位,此时就需要通过switch_to.frame()方法 ...
- react页面内嵌微信二维码 和 自定义样式 以及 微信网页共用unionId问题
在react页面内嵌“微信二维码”,实现PC端通过微信扫码进行登录.首先去微信开放平台注册一个账号,创建一个网站应用,提交网站备案审核,获取appid和appsecret:其他开发流程根据微信文档来进 ...
随机推荐
- 获取jqGrid中选择的行的数据以及 jqGrid获得所有行数据的方法
获取jqGrid中选择的行的数据: 获取选择一行的id,如果你选择多行,那下面的id是最后选择的行的id: 1 var id=$('#gridTable').jqGrid('getGridPara ...
- ipad4没有声音提示消息
打开『设置』-『通用』-侧边开关用于: 1:锁定屏幕旋转 2:静音 √ 把对号去掉 选择1即可
- R中利用SQL语言读取数据框(sqldf库的使用)
熟悉MySQL的朋友可以使用sqldf来操作数据框 # 引入sqldf库(sqldf) library(sqldf) # 释放RMySQL库的加载(针对sqldf报错) #detach("p ...
- Static Import Constant interface
Static Import https://docs.oracle.com/javase/1.5.0/docs/guide/language/static-import.html In order t ...
- golang zlib 压缩,解压缩
package main import ( "bytes" "compress/zlib" "fmt" "io" &qu ...
- python中读取json文件报错,TypeError:the Json object must be str, bytes or bytearray,not ‘TextIOWrapper’
利用python中的json读取json文件时,因为错误使用了相应的方法导致报错:TypeError:the Json object must be str, bytes or bytearray,n ...
- ovn-architecture 摘要
OVN架构图如下所示: 1.OVN Southbound Database由以下三种数据构成: Physical Network(PN)table用于确定如何到达hypervisor以及其他node ...
- python数据分析基础——numpy和matplotlib
numpy库是python的一个著名的科学计算库,本文是一个quickstart. 引入:计算BMI BMI = 体重(kg)/身高(m)^2假如有如下几组体重和身高数据,让求每组数据的BMI值: w ...
- centos7配置IP地址
有关于centos7获取IP地址的方法主要有两种,1:动态获取ip:2:设置静态IP地址 在配置网络之前我们先要知道centos的网卡名称是什么,centos7不再使用ifconfig命令,可通过命令 ...
- Git Extension工具安装及使用
以下界面所示的三个工具,如果没安装过,则勾上让其安装.MsysGit为Git的Windows版本,必须要安装:Kdiff为对比/合并工具,可选安装,可以换为使用其它的相关工具:最后一个Windows ...