爬虫之switch_to切换frame标签
爬虫之switch_to切换frame标签
iframe是html中常用的一种技术,即一个页面中嵌套了另一个网页,selenium默认是访问不了frame中的内容的,对应的解决思路是
driver.switch_to.frame(frame_element)
。接下来我们通过qq邮箱模拟登陆来学习这个知识点
代码展示:
from selenium import webdriverurl = 'https://qzone.qq.com'driver = webdriver.Chrome()
driver.get(url)driver.find_element_by_id('switcher_plogin').click()
driver.find_element_by_id('u').send_keys('535646343')
driver.find_element_by_id('p').send_keys('*********') #这儿有可能会有验证报错,可先用自己的QQ在浏览器上登录一次
driver.find_element_by_id('login_button').click()
运行结果:
出现这个错误是正常的,下面来解决这个错误
示例代码如下:
import timefrom selenium import webdriverurl = 'https://qzone.qq.com'driver = webdriver.Chrome()
driver.get(url)# 切换标签
# driver.switch_to.frame('login_frame') # 这儿默认写的id,有时候通过id是登录不上的
el_frame = driver.find_element_by_xpath('//*[@id="login_frame"]')
driver.switch_to.frame(el_frame)# switcher_plogin
# 无法定位问题,浏览器页面加载的内容比较多加载比较慢,这种情况我们可以做一个简单休眠保证页面加载完成
driver.find_element_by_id('switcher_plogin').click()
driver.find_element_by_id('u').send_keys('535646343')
driver.find_element_by_id('p').send_keys('*********')
driver.find_element_by_id('login_button').click()time.sleep(100)
参考代码:
import time from selenium import webdriverdriver = webdriver.Chrome()url = 'https://mail.qq.com/cgi-bin/loginpage' driver.get(url) time.sleep(2)login_frame = driver.find_element_by_id('login_frame') # 根据id定位 frame元素 driver.switch_to.frame(login_frame) # 转向到该frame中driver.find_element_by_xpath('//*[@id="u"]').send_keys('1******6@qq.com') time.sleep(2)driver.find_element_by_xpath('//*[@id="p"]').send_keys('******') time.sleep(2)driver.find_element_by_xpath('//*[@id="login_button"]').click() time.sleep(2)"""操作frame外边的元素需要切换出去""" windows = driver.window_handles driver.switch_to.window(windows[0])content = driver.find_element_by_class_name('login_pictures_title').text print(content)driver.quit()
总结:
切换到定位的frame标签嵌套的页面中
driver.switch_to.frame(通过find_element_by函数定位的frame、iframe标签对象)
利用切换标签页的方式切出frame标签
windows = driver.window_handles driver.switch_to.window(windows[0])
爬虫之switch_to切换frame标签相关推荐
- Python爬虫之selenium对标签页切换、切换frame标签、cookie处理、执行js代码、开启无界面、以及使用代理ip和替换user-agent等方法
一.selenium对标签页切换.切换frame标签.cookie处理.执行js代码.开启无界面.以及使用代理ip和替换user-agent等方法 (一).selenium标签页的切换 当seleni ...
- Selenium之定位及切换frame(iframe)
总有人看不明白,以防万一,先在开头大写加粗说明一下: frameset不用切,frame需层层切! 很多人在用selenium定位页面元素的时候会遇到定位不到的问题,明明元素就在那儿,用firebug ...
- selenium之定位以及切换frame
总有人看不明白,以防万一,先在开头大写加粗说明一下: frameset不用切,frame需层层切! 很多人在用selenium定位页面元素的时候会遇到定位不到的问题,明明元素就在那儿,用firebug ...
- 自动化测试——多窗口切换和切换frame
这里写目录标题 一.多窗口切换 1.base.py:公共代码 2.切换句柄的方式1,通过for循环 3.切换句柄的方式2,通过索引切换 4.源代码 二.frame窗口 1.什么是frame? 2.Fr ...
- 获取frame 标签里#documents里面的内容
最近几天在爬一个网站,里面有frame标签. 今天有想获取frame标签下面#documents里面的内容,查了一晚上的资料,幸好找到,明天可以交差了... 一个有frame标签的网站,http:// ...
- python+selenium+new——窗口——网页——切换窗口——切换frame——alert弹窗
from selenium import webdriver driver = webdriver.Firefox() # 指定浏览器驱动 #对象实例化 ----------------------- ...
- python爬虫提取a标签_Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
一.Tag(标签)对象 1.Tag对象与XML或HTML原生文档中的tag相同. from bs4 import BeautifulSoup soup = BeautifulSoup('Extreme ...
- html frame跳转实例,HTML frame标签怎么用?frame标签的具体使用实例
本篇文章主要为大家讲述的是关于HTML frame标签的用法,还有关于frame标签中的属性介绍.还有关于frame标签的使用实例,下面就让我们一起来看看这篇文章吧 首先我们先看看HTML frame ...
- html5点击切换选项卡,简单纯js实现点击切换TAB标签实例
一个不需要jQuery实现的tab选项卡切换效果,代码简洁易用. 默认是鼠标悬停显示tab效果,可将其中的onmouseover 修改为 onclick 点击效果 使用方法: 1.将附件中的index ...
最新文章
- windows7安装django并创建第一个应用
- git cherry-pick改写提交
- 编程用的记事本软件_数控常用编程软件那么多,你用哪一种?
- 修改Visual Stdio 2010界面,以及添加一些其它VS2010的插件
- codeforces 486A-C语言解题报告
- IDEA怎么开启终端Terminal
- intrinsicContentSize和Content Hugging Priority
- linux第五周微职位
- 蓝桥杯官网 试题 PREV-278 历届真题 双向排序【第十二届】【省赛】【研究生组】【C++】【C】【Java】【Python】四种解法
- 软件分享 | 第十三期 全球最牛的资源下载神器IDM
- WIFI信道频率对应
- 如何理解 图像傅里叶变换的频谱图
- Oracle安装之后电脑变慢
- 日本知名汽车零部件公司巡礼系列之株式会社70
- HTML5期末大作业:旅游网页设计与实现——旅游风景区网站HTML+CSS+JavaScript 景点静态网页设计 学生DW静态网页设计
- C++ 统计n个学生三门课的平均成绩,统计各学生三门课的平均成绩。
- cuda编译错误 ptxas fatal : Unresolved extern function xxxx
- 深度解析Istio系列之策略与遥测篇
- siteservercms 缺点_Siteserver CMS 远程模板下载Getshell漏洞
- 自动控制原理是计算机学科吗,自动控制原理是自动化学科的重要理论基础(基本概念).doc...
热门文章
- 超越Google,快手落地业界首个万亿参数推荐精排模型
- 中科大“九章”历史性突破,但实现真正的量子霸权还有多远?
- 百度「AI战疫」:首次开源肺炎CT影像分析AI模型,让诊断从分钟到秒
- 程序员请收好:10个非常有用的Visual Studio Code插件
- 20行Python代码说清“量子霸权”
- 学点基本功:机器学习常用损失函数小结
- 新一届最强预训练模型上榜,出于BERT而胜于BERT
- 技术详解 | 如何用GAN实现阴影检测和阴影去除?
- 必读 | 在转行AI之前,先了解下2018年人工智能发展的八大趋势
- 面试官问:大量的 TIME_WAIT 状态 TCP 连接,对业务有什么影响?怎么处理?