网页的切换与嵌套
网页的切换与嵌套
网页的切换
在浏览器窗口中如果点击超链接标签会在当前的浏览器窗口中显示新的数据,但有些超链接标签点击后却会在一个新的窗口显示数据,这种情况下就无法对新的开的窗口页面进行操作了。
基于这种情况,我们就需要使用driver.switch_to.window()进行窗口切换,从而保证能够对打开的新窗口页面进行处理:
# 1. 获取当前所有的窗口
current_windows = driver.window_handles# 2. 根据窗口索引进行切换
driver.switch_to.window(current_windows[1])
程序案例:
import time
from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By
# 1、实例化浏览器
driver = Chrome()# 2、打开对应的网页
driver.get('https://www.baidu.com')# 3、设置浏览器窗口最大化
driver.maximize_window()# 4、通过LINK_TEXT定位新闻的按钮元素(精确搜索)
button_element = driver.find_element(By.LINK_TEXT, '新闻')# 5、对百度新闻的标签进行点击
button_element.click()# 6、获取当前所有的窗口
current_windows = driver.window_handles# 7、根据窗口索引进行切换
driver.switch_to.window(current_windows[1])# 8、对打开的浏览器网页进行截屏,格式为png,否则会有警告
driver.save_screenshot('baidu.png')
time.sleep(10)
网页的嵌套
网页嵌套是HTML中的一种技术,专业名称为iframe(内嵌框架)。它允许在一个网页内嵌入另一个独立的网页。通过使用iframe,可以在当前页面中显示来自不同源或相同源的其他网页、文档或应用程序的内容,从而提升爬虫采集数据的难度。
当使用selenium访问网页时,默认是无法访问frame的内容的,对应的解决思路是通过调用driver.switch_to.frame()来切换嵌套的网页中,从而访问内嵌网页中的元素对象。
网易云歌单案例:
import time
from selenium import webdriver
from selenium.webdriver.common.by import By# 1、创建浏览器对象并打开网易云音乐的网页
driver = webdriver.Chrome()
driver.get('https://music.163.com/')# 2、等待3秒,保证嵌套页面加载完毕
time.sleep(3)# 3、切换到嵌套页面中
driver.switch_to.frame('contentFrame')# 4、定位网页中第一个歌单a标签,并点击a标签进入歌单详情页
element = driver.find_element(By.XPATH, '//*[@id="discover-module"]/div[1]/div/div/div[1]/ul/li[1]/div/a')
element.click()time.sleep(3)
相关文章:
网页的切换与嵌套
网页的切换与嵌套 网页的切换 在浏览器窗口中如果点击超链接标签会在当前的浏览器窗口中显示新的数据,但有些超链接标签点击后却会在一个新的窗口显示数据,这种情况下就无法对新的开的窗口页面进行操作了。 基于这种情况,我们就需要使用dri…...
基于飞桨框架的稀疏计算使用指南
本文作者-是 Yu 欸,华科在读博士生,定期记录并分享所学知识,博客关注者5w。本文将详细介绍如何在 PaddlePaddle 中利用稀疏计算应用稀疏 ResNet,涵盖稀疏数据格式的础知识、如何创建和操作稀疏张量,以及如何开发和训练…...
启明云端WT32C3-S6物联网模块,乐鑫ESP32-C3芯片技术应用
随着物联网技术的飞速发展,智能设备在我们生活中的应用越来越广泛。从智能电网到远程医疗,从楼宇自动化到智能家居,这些技术正在改变我们的生活方式。 在这样的背景下,启明云端推出的WT32C3-S6 WiFi模块以其低功耗、高性价比的特…...
超越流水线,企业研发规范落地新思路
作者:子丑 内容大纲: 1、研发规范≠流程约束 2、自动化工具→研发规范载体 3、研发规范在工具上的落地示例 4、研发规范的选型方法与常见实践 研发规范≠流程约束 这个故事特别适合研发规范的场景,我们要避免成为把猫绑在柱子上的信众…...
财务会计与管理会计(四)
文章目录 月度数据统计分析OFFSET函数在图表分析中的应用 多种费用组合分析图SUMPRODUCT函数 省公司全年数据分析模板INDIRECT、OFFSET函数 多公司分季度数据筛选VLOOKUP、IFERROR函数的应用 淘宝后台数据分析OFFSET函数在跨表取数中的应用 燃气消耗台账数据统计分析图SUMPRODU…...
回归分析系列1-多元线性回归
03 多元线性回归 3.1 简介 多元线性回归是简单线性回归的扩展,允许我们同时研究多个自变量对因变量的影响。多元回归模型可以表示为: 其中,x1,x2,…,xp是 p 个自变量,β0 是截距,β1,β2,…,βp是对应的回归系数&…...
web小游戏开发:拼图——蜂巢拼图
web小游戏开发:拼图——蜂巢拼图 蜂巢拼图游戏规则调整选项切图计算六边形的宽和高铺上背景画出蜂巢制作图块游戏方法打乱排列拖拽图块开始拖拽拖拽移动放置图块小结蜂巢拼图 之前我们已经完成了长方形的拼图代码,包括了三个游戏方式,并讨论了带咬合齿的游戏代码该如何制作…...
springCloud集成activiti5.22.0流程引擎(分支)
springCloud集成activiti5.22.0流程引擎 点关注不迷路,欢迎再访! 精简博客内容,尽量已行业术语来分享。 努力做到对每一位认可自己的读者负责。 帮助别人的同时更是丰富自己的良机。 文章目录 springCloud集成activiti5.22.0流程引擎一.Sprin…...
ppt模板免费网站有哪些?自动美化工具推荐
新的8月,是时候以全新面貌迎接高效办公挑战了! 想要你的PPT演示脱颖而出,却苦于找不到精美又免费的模板? 别担心,今天我来告诉你们:哪个软件有精美免费ppt模板? 今天我为你们精心汇总了6款PPT…...
java实现解析pdf格式发票
为了减少用户工作量及误操作的可能性,需要实现用户上传PDF格式的发票,系统通过解析PDF文件获取发票内容,并直接将其写入表单。以下文章记录了功能实现的代码。 发票样式 发票内容解析 引用Maven 使用pdfbox <dependency><groupI…...
数据结构初阶——算法复杂度超详解
文章目录 1. 数据结构前言1. 1 数据结构1. 2 算法 2. 算法效率2. 1 复杂度的概念 3. 时间复杂度3. 1 大O的渐进表示法3. 2 时间复杂度计算示例3. 2. 1 示例13. 2. 2 示例23. 2. 3 示例33. 2. 4 示例43. 2. 5 示例53. 2. 6 示例63. 2. 7 示例7 4. 空间复杂度4. 1 空间复杂度计算…...
ArcGIS Pro SDK (十二)布局 4 预定义的形状和箭头
ArcGIS Pro SDK (十二)布局 4 预定义的形状和箭头 文章目录 ArcGIS Pro SDK (十二)布局 4 预定义的形状和箭头1 创建预定义的形状图形元素2 创建预定义的形状图形元素3 创建预定义的形状图形元素4 创建线箭头元素环境:Visual Studio 2022 + .NET6 + ArcGIS Pro SDK 3.0 1 …...
在 Ubuntu 14.04 服务器上安装 ISPConfig3 的方法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 虽然命令行是一个强大的工具,可以让您在许多情况下快速轻松地工作,但在某些情况下,可视化界面…...
ELK学习笔记
ElasticStack分布式日志系统概述 Elasticsearch: 一个分布式搜索引擎,能够快速存储、搜索和分析大量数据。核心概念包括索引(Index)、文档(Document)和分片(Shard)。使用 RESTful API 进行数据操…...
Python+Selenium+Pytest+POM自动化测试框架封装详解
1、测试框架简介 1)测试框架的优点 代码复用率高,如果不使用框架的话,代码会显得很冗余。可以组装日志、报告、邮件等一些高级功能。提高元素等数据的可维护性,元素发生变化时,只需要更新一下配置文件。使用更灵活的…...
Hidden Marlov Model(HMM)
一、Model 1、将声学特征设为X,经过语音识别得到的tokens设为Y,目标是找到通过X得到Y的最大概率,可以通过概率公式改变为 分为两个概率 2、将tokens序列Y转化为states序列S,声学特征分得更细 3、从states到声学特征的过程 二、HM…...
mamba的安装及下载速度慢问题解决
同事反馈mamba的安装时网络慢 mamba是conda的加速工具,相比于conda 对包和环境的管理,mamba可以实现并行运算。相比于 conda,mamba 是用C重写了 conda 的部分功能,运行效率显著提高,可以进行并行的下载,使…...
【Linux入门】Linux环境搭建
目录 前言 一、发行版本 二、搭建Linux环境 1.Linux环境搭建方式 2.虚拟机安装Ubuntu 22.02.4 1)安装VMWare 2)下载镜像源 3)添加虚拟机 4)换源 5)安装VM Tools 6)添加快照 总结 前言 Linux是一款自由和开放…...
CPU缓存一致性机制详解
CPU缓存一致性机制详解 在多核处理器中,缓存一致性是保证系统正常运行的重要环节。本文详细介绍了缓存一致性协议、写入策略、总线嗅探、目录协议等相关概念,并通过示例代码解释了这些机制是如何在实际应用中工作的。通过学习本文,读者可以深…...
Android 12系统源码_屏幕设备(一)DisplayManagerService的启动
前言 DisplayManagerService是Android Framework中管理显示屏幕相关的模块,各种Display的连接、配置等,都是通过DMS和来管理控制。 在DMS模块中,对显示屏幕的描述分为物理显示屏(physical display)和逻辑显示屏(logical display),…...
切削液防锈成分消耗机理、三类防锈剂参数与补加管控实测
一、防锈成分消耗核心机理物理消耗:工件表面携带(占比 35%)、切屑比表面积吸附(占比 40%);化学消耗:金属界面化学吸附(15%)、高温裂解(5%)、细菌降…...
CL API实时闭环神经控制技术解析与应用
1. CL API实时闭环神经控制技术概述在生物神经网络(BNN)研究领域,实时闭环控制技术正成为连接计算系统与生物神经元的桥梁。CL API作为这一领域的前沿工具,其设计哲学源于对神经电生理实验的深刻理解——当我们需要在毫秒级时间尺…...
Faster R-CNN PyTorch终极指南:10分钟搭建你的第一个目标检测模型
Faster R-CNN PyTorch终极指南:10分钟搭建你的第一个目标检测模型 【免费下载链接】faster-rcnn-pytorch 这是一个faster-rcnn的pytorch实现的库,可以利用voc数据集格式的数据进行训练。 项目地址: https://gitcode.com/gh_mirrors/fa/faster-rcnn-pyt…...
Projects-from-Scratch学习路径:如何系统性地掌握Web开发全栈技术
Projects-from-Scratch学习路径:如何系统性地掌握Web开发全栈技术 【免费下载链接】Projects-from-Scratch Read and do projects. 项目地址: https://gitcode.com/gh_mirrors/pr/Projects-from-Scratch Projects-from-Scratch是一个精心策划的开源项目列表&…...
LLM从零到英雄:四阶段学习路径与实战指南
1. 项目概述:从零到英雄的LLM学习之旅最近在GitHub上看到一个挺有意思的项目,叫“LLMs-Zero-to-Hero”。光看名字就挺带劲的,直译过来就是“大语言模型:从零到英雄”。这项目定位非常清晰,就是给那些想入门大语言模型&…...
程序员的“黄金5年”:如何快速成为技术骨干
一、认知黄金5年:测试工程师的职业分水岭在软件行业,“黄金5年”是从业者职业发展的关键期,对于软件测试工程师而言更是如此。这5年不仅是技术能力从量变到质变的积累期,更是职业方向从模糊到清晰的定型期。据行业数据显示&#x…...
Dify聊天应用嵌入式集成实战:从iframe通信到安全部署
1. 项目概述与核心价值最近在折腾一个智能对话应用,想把它的核心能力无缝嵌入到自己的网站或者移动端App里,而不是让用户跳转到一个独立的Web页面。这个需求其实挺普遍的,无论是想给自家产品增加一个智能客服入口,还是想打造一个集…...
树莓派5 vs 树莓派4:从硬件架构到应用场景的全面对比与实战指南
1. 项目概述:为什么我们需要重新审视树莓派5?如果你和我一样,从树莓派2、3、4一路用过来,每次新版本发布都像是一次“挤牙膏”式的升级,那么树莓派5的到来,绝对会打破你的固有印象。它不再仅仅是“更快一点…...
告别暴力枚举:用‘换根DP’思想5步拆解GDCPC L题‘启航者’(附O(n)实现代码)
从暴力枚举到换根DP:5步拆解树上路径极值问题 在算法竞赛中,树形结构上的动态规划(DP)问题一直是考察重点,而"换根DP"作为一种高效解决树上路径相关问题的技巧,能帮助我们将O(n)的暴力枚举优化到…...
NoFences:免费开源桌面分区工具,Windows用户必备的效率神器
NoFences:免费开源桌面分区工具,Windows用户必备的效率神器 【免费下载链接】NoFences 🚧 Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences NoFences是一款基于C#开发的开源桌面分区工…...
