selenium--获取页面信息和截图

news2025/2/27 9:35:14

  • 获取页面信息
    • name
    • current_url
    • title
    • current_window_handle
    • window_handles
    • page_source
    • 简单用法—— 判断页面
  • 截图
    • 1.get_screenshot_as_png
    • 2.get_screenshot_as_file

获取页面信息

主要方法如下图:
driver.get_screenshot_as_png
介绍一下常用的方法:

name

获取浏览器名字
在这里插入图片描述

current_url

获得当前的url
在这里插入图片描述

title

获得这个页面的title,也就是这个:
在这里插入图片描述
在这里插入图片描述

current_window_handle

获得当前窗口id
在这里插入图片描述

window_handles

获得所有窗口的id

page_source

获得这个页面的html源码
在这里插入图片描述

简单用法—— 判断页面

现在要判断打开的页面是否是百度页面,可以用到上面的几个方法:
1.title

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
title = driver.title

if title == '百度一下,你就知道':
    print("是百度的网站")
else:
    print("不是百度的网站")

在这里插入图片描述
2.page_source

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
page = driver.page_source
driver.quit()

# 1.如果源代码中包含百度,认为是百度页面(仅举例)
if page.__contains__("百度"):
    print("是百度的网站1")
else:
    print("不是百度的网站1")

# 2.如果软代码中 百度 出现了3次以上,就认为是百度页面:
if page.count("百度") >= 3:
    print("是百度网站2")
else:
    print("不是百度网站2")

在这里插入图片描述

截图

1.get_screenshot_as_png

获得二进制内容

在这里插入图片描述
这只是获得内容,并没有保存,要想保存可以用第二种方法或者使用代码:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")

# 获得二进制内容
content = driver.get_screenshot_as_png()
print(content)

# 保存
with open("a.jpg", "wb") as f:
    f.write(content)

在这里插入图片描述
可以看到,运行后左边目录就有了一个 a.jpgd 文件,里面是页面截图

2.get_screenshot_as_file

获得二进制内容***并保存***


from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")

driver.get_screenshot_as_file("b.jpg")

在这里插入图片描述
可以看到,左边目录下多了一个文件名为 b.jpg 的文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/39252.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Packet Tracer 实验 - 排除多区域 OSPFv3 故障

地址分配表 设备 接口 IPv6 全局单播地址 IPv6 本地链路地址 默认网关 ISP GigabitEthernet0/0 2001:DB8:C1:1::1/64 FE80::C1 不适用 ASBR GigabitEthernet0/0 2001:DB8:C1:1::2/64 FE80::7 不适用 Serial0/0/0 2001:DB8:A8EA:F0A::1 FE80::7 不适用 S…

如何通过 kubectl 进入 node shell

概述 假设这样一个场景: 生产环境中,Node 都需要通过堡垒机登录,但是 kubectl 是可以直接在个人电脑上登录的。 这种场景下,我想要通过 kubectl 登录到 K8S 集群里的 Node,可以实现吗? 可以的&#xff…

LinkedList与链表

目录 1.链表 2.链表的模拟实现 3.LinkedList的模拟实现 4.LinkedList的使用 4.1 什么是LinkedList 4.2 LinkedList的使用 5.ArrayList和LinkedList的区别 我的GitHub:Powerveil GitHub 我的Gitee:Powercs12 (powercs12) - Gitee.com 皮卡丘每天学…

机器人十大前沿热点领域(2022-2023)

中国电子学会嵌入式系统与机器人分会主任委员、北京航空航天大学机器人研究所名誉所长、中关村智友研究院院长王田苗博士出席大会闭幕式,并现场发布《机器人十大前沿热点领域(2022-2023)》。归纳出2022-2023年机器人十大前沿技术;并结合我国国情和机器人…

自动化项目倍加福测距仪QSM WCS RS485 与西门子S7 200通信

1、程序流程图 2、WCS位置数据处理流程 第一步:设置S7-200的RS485的通讯波特率19.2kbps,通讯格式(8,1,E); 第二步:PLC向WCS发送请求码: A0A1为0,表示读码器地…

现代密码学导论-16-选择明文攻击和CPA安全

目录 PCA不可区分实验 DEFINITION 3.21 PCA安全的加密方案 LR预言机实验 DEFINITION 3.22 多明文PCA安全的加密方案 THEOREM 3.23 定义3.21和定义3.22等价 PCA不可区分实验 通过运行G(1^n)获得密钥k敌手A被给定输入1^n并拥有访问预言机Enck()的权利,敌手A输出一…

想要精通算法和SQL的成长之路 - 无重叠区间

想要精通算法和SQL的成长之路 - 无重叠区间前言一. 无重叠区间前言 想要精通算法和SQL的成长之路 - 系列导航 一. 无重叠区间 原题链接 给定一个区间的集合 intervals ,其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互…

神经网络和深度学习-处理多维特征的输入

处理多维特征的输入 前面有两个数据集,一个回归,一个分类。 在回归中输出y属于实数,而在分类中输出y属于一个离散的集合 例如在糖尿病分类的数据集中Diabetes Dataset,每一行作为一个sample(样本)&#x…

Node.js 入门教程 11 Node.js 从命令行接收参数

Node.js 入门教程 Node.js官方入门教程 Node.js中文网 本文仅用于学习记录,不存在任何商业用途,如侵删 文章目录Node.js 入门教程11 Node.js 从命令行接收参数11 Node.js 从命令行接收参数 当使用以下命令调用 Node.js 应用程序时,可以传入任…

Android -- 每日一问:两个 Activity 之间如何传递参数?

经典回答 使用 Intent 的 Bundle 协带参数,就是我们常用的 Intent.putExtra 方法。 除了传递基本类型外,如何传递自定义的对象呢? 这个问题就是想引出 Android 的 Parcelable 。一般很多面试者都有用过传递实现了Serializable接口的自定义对…

JavaWeb学习-监听器

什么是监听器? 类似于前端的事件绑定,java中的监听器用于监听web应用中某些对象、信息的创建、销毁、增加,修改,删除等动作的发生,然后作出相应的响应处理。当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法。…

Flutter高仿微信-第54篇-群聊-邀请好友

Flutter高仿微信系列共59篇,从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图: 实现代码: import package:flutter/material.dart; import package…

【JavaEE】HTML

努力经营当下,直至未来明朗! 文章目录前言一、HTML概述二、【HTML常见标签】1. 注释标签2. 标题标签:h1-h63. 段落标签:p4.换行标签:br5.【格式化标签】5. 图片标签:img 【单标签,没有结束标签】…

HTML+CSS简单漫画网页设计成品 蜡笔小新3页 大学生个人HTML网页制作作品

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 ⚽精彩专栏推荐&#x1…

GreenPlum AOCO列存读IO原理

GreenPlum AOCO列存读IO原理GP自带AOCO列存,它的IO和heap表的IO是分开的。Heap表的脏数据由checkpoint或后台write进程刷写,也就是FlushBuffer函数调用smgrwrite。由magnetic disk storage manager管理IO模块。但是AOCO列存则是由本身进行管理&#xff0…

【信息融合】BP神经网络和DS证据理论不确定性信息融合问题【含Matlab源码 2204期】

⛄一、 D-S证据理论及解释 证据理论由Dempster在1967年最初提出,并由他的学生Shafer改进推广使之成为符合有限离散领域中推理的形式,因此称为D-S理论。证据理论讨论一个“辨识框架”(Frame of Discernment)Θ,它是关于命题的相互独立的可能答案或假设的一个有限集合。按传统方…

基于POI的可快速定制Excel导出脚本设想

基于POI的可快速定制Excel导出脚本设想 背景 年关将至,业务人员提出了好多比较着急但是又不常用的取数需求。所谓不常用,大概了是由于业务人员前期调研产生的临时需求,后续也不会大面积铺开,没必要专门分配人员去开发。所谓比较着…

诊断数据库ODX—数据库框架(基于ISO22901详解)

文章目录 前言一、ODX数据库自身架构是什么?二、ODX数据库架构具体组成部分和含义总结前言 车载诊断现阶段应用的诊断数据库大体分为三种: CDD(Vector私有格式); ODX全球通用诊断数据库格式; DEXT&…

【零基础入门SpringMVC】第四期——RESTFUL专题

一、RESTFul 概述 1、什么是 RESTFul? REST 全称 Representational State Transfer 代表 表现层资源状态转移 视图层 控制层 表现层 百度百科这样说: RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式…