手把手教你,Selenium 遇见伪元素该如何处理?

Selenium 遇见伪元素该如何处理?

问题发生

在很多前端页面中,大家会见到很多::before、::after 元素,比如【百度流量研究院】:

图片

比如【百度疫情大数据平台】:

图片

以【百度疫情大数据平台】为例,“累计确诊”文本并没有显示在 HTML 源代码中,如果通过常规的 xpath 元素定位方式是没办法的,因为“累计确诊”文本并不存在当前页面 dom 树中。

如何处理?

我们要弄清楚的是该元素的特殊之处,文本究竟存放在哪?

其实很简单,通过 Chrome 的 F12,我们将 style 选项展示出来:

图片

可以看到元素的文本保存在 CSS 样式里面,通过 content 属性进行设置。

这里还有个小问题:文本根本对不上呢?

因为这里使用了 Unicode 编码,使用在线的 Unicode 编码转换工具即可看到

图片

::after 元素也是同理,这种性质的元素我们称之为伪元素:

之所以被称为伪元素,是因为他们不是真正的页面元素,HTML 没有对应的元素,但是其所有用法和表现行为与真正的页面元素一样,可以对其使用诸如页面元素一样的 CSS 样式,表面上看上去貌似是页面的某些元素来展现,实际上是 CSS 样式展现的行为,因此被称为伪元素。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

一、伪元素的定位

由于伪元素是通过 CSS 样式展现的行为,所以我们可以通过 CSS 样式选择器来进行定位,以“百度疫情大数据为例”:

  1. 先定位伪元素的父元素:div.Virus_1-1-318_3W7bs_

  2. 再定位到伪元素本身:div.Virus_1-1-318_3W7bs_>label

图片

二、伪元素文本的获取

有些情况下我们需要获取到文本信息,其中伪元素的文本主要是通过 content 属性设置,我们可以通过 JavaScript 可以进行提取:

window.getComputedStyle(document.querySelector('.样式'),':before').getPropertyValue('content')
window.getComputedStyle(document.querySelector('.样式'),':after').getPropertyValue('content')

图片

Selenium 中调用 JavaScript:

JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;jsExecutor.executeScript("window.getComputedStyle(document.querySelector(

END今天的分享就到此结束了!点赞关注不迷路!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Prometheus-AlertManager 邮件告警

环境,软件准备 本次演示环境,我是在虚拟机上安装 Linux 系统来执行操作,以下是安装的软件及版本: System: CentOS Linux release 7.6Docker: 24.0.5Prometheus: v2.37.6Consul: 1.6.1 docker 安装prometheus,alertmanage,说明一下这里直接将…

数据结构与算法——第一次大作业【考点罗列//错题修正//题解】

目录 一、选择题 ——绪论—— 1.【单选题】——数据结构的研究方向 2.【单选题】 ——数据结构的研究问题 3.【单选题】——数据结构的基本术语及概念 4.【单选题】 ——数据结构与算法 5.【单选题】 ——时间复杂度计算 ——顺序表与链表—— 6.【单选题】——顺序表…

Python爬虫之使用代理IP池维护虚拟用户

文章目录 前言一、什么是代理IP池?二、爬取代理IP三、验证代理IP的可用性四、维护代理IP池五、使用代理IP池进行爬取六、总结关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具…

玻色量子与北京师范大学在光量子计算领域持续突破,《Quantum》发表SNN-CIM

​2023年10月,北京玻色量子科技有限公司(以下简称“玻色量子”)联合北京师范大学研究团队在知名科技期刊Quantum发表了以《Combinatorial optimization solving by coherent Ising machines based on spiking neural networks(基于…

知识图谱与云计算

内容来自B站视频 复旦 肖仰华 老师的讲座,记在这里,不然一会就忘了。 https://www.bilibili.com/video/BV1HG4y1h7zK/?p5&spm_id_frompageDriver 智能的发展是由感知到认知,当下需要发展机器的认知能力。 实现认知智能需要人工智能的很…

中国国际光伏展

中国国际光伏展(China International Solar Photovoltaic Exhibition)是中国规模最大、最具影响力的光伏领域展览会之一。该展会是由中国光伏行业协会主办,每年在中国的不同城市举办。 中国国际光伏展吸引了来自全球各地的光伏企业、专业机构…

揭秘Python的运算符:从加减乘除到幂次开方,一网打尽!

文章目录 一、python运算符二、运算符1.算术运算符1.1 加1.2 减1.3 乘1.4 除1.5 取模1.6 幂1.7 取整除 2.比较运算符2.1 等于2.2 不等于2.3 大于2.4 小于2.5 大于等于2.6 小于等于 3.赋值运算符3.1 加法赋值运算符3.2 减法赋值运算符3.3 乘法赋值运算符3.4 除法赋值运算符3.5 取…

开启物联网的魔法之门 - 深入探索发布/订阅模式

文章目录 MQTT 发布/订阅模式MQTT 发布/订阅中的消息路由MQTT 与 HTTP 请求响应MQTT 与消息队列Paho Java 使用示例结语 MQTT 发布/订阅模式 发布订阅模式(Publish-Subscribe Pattern)是一种消息传递模式,它将发送消息的客户端(发…

leetcode13 罗马数字转整数

题目描述:罗马数字由七种字符组成,分别为 I、V、X、L、C、D 和 M,对应的数值分别为 1、5、10、50、100、500 和 1000。在一般情况下,小的数字位于大的数字右边,但有特殊情况,如 IV 表示 4,IX 表…

构建健康游戏环境:DFA算法在敏感词过滤的应用

现在的游戏有敏感词检测这一点,相信大家也不陌生了,不管是聊天,起名,签名还是简介,只要是能让玩家手动输入的地方,一定少不了敏感词识别,至于识别之后是拒绝修改还是星号替换,这个就各有各的做法了,但是绕不开的一定是需要高效的敏感词检测机制。 相信大家对于游戏里聊…

25. 数组作为函数参数

写代码时,我们会将数组作为参数传给函数 冒泡排序: 两两相邻的元素进行比较,可能的话进行交换 一趟冒泡排序会将一个元素放在其最后应该在的位置 10个数字只需9趟,第一趟10个数字待排序,9对比较;第二趟…

Hotspot源码解析-第十二章-线程栈保护页

了解保护页,先从几个问题开始吧 1、为什么线程栈有栈帧了,还要有保护页? 答:在操作系统中内存可以看成是一个大数组,这就有一个问题,线程之间可能会互相踩了别人的内存空间,所以栈空间也存在这…

OPENGL,GPU图形库Skia在Windows下编译多种VS版本的DLL

这几天刚改了改Duilib,之前为了让Duilib更好的支持透明异形窗体所以把Duilib改为Gdi和Gdi的双渲染引擎。于是想到了有时间就把渲染引擎完全独立为渲染接口,可以增加更多的渲染引擎。现在来说Skia是个很不错的渲染,之前我只是单独编译了VS2013…

集群部署篇--Redis 集群动态伸缩

文章目录 前言一、redis 节点的添加1.1 redis 的实例部署:1.2 redis 节点添加:1.3 槽位分配:1.4 添加从节点: 二、redis 节点的减少2.1 移除主节点2.1.1 迁移槽位2.1.1 删除节点: 三、redis 删除节点的重新加入3.1 加入…

Android Studio新手实战——深入学习Activity组件

目录 前言 一、Activity简介 二、任务栈相关概念 三、常用Flag 四、结束当前Activity 五、Intent跳转Activity 六、更多资源 前言 Android是目前全球最流行的移动操作系统之一,而Activity作为Android应用程序的四大组件之一,是Android应用程序的核…

一文讲透怎样用SPSS做二项Logistic回归分析?结果如何解释?

推荐采用《SPSS统计分析入门与应用精解(视频教学版)》 杨维忠、张甜 清华大学出版社“7.4 二元Logistic回归分析” 的解答。 本节内容选自《SPSS统计分析入门与应用精解(视频教学版)》 杨维忠、张甜 清华大学出版社“7.4 二元Logi…

对象克隆学习

假如说你想复制一个简单变量。很简单: int apples 5; int pears apples; 不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short,float,double.long)同样适用于该类情况。 但是如果你复制的是一个对象,情况就有些复杂了。 …

VMware Workstation虚拟机CentOS 7.9 配置固定ip的步骤

VMware Workstation虚拟机CentOS7.9配置固定ip的步骤 编辑虚拟机 打开VMware Workstation。 选择要配置的虚拟机,但不要启动它。 点击“编辑虚拟机设置”(Edit virtual machine settings)。 选择“网络适配器”(Network Adapter&…

Mybatis源码基本原理--XML版

文章目录 mybatis是什么架构设计首先建立起Mapper的代理工程和代理映射器的注册和使用XML文件解析数据源解析、创建和使用SQL执行器(Executor)的定义与实现SQL解析参数处理器:策略模式实现封装处理结果注解 mybatis 是什么 MyBatis 是一款优…

光掩膜基板,到2024年全球市场规模将超过30亿美元

光掩膜基板是一种用于微电子加工的关键材料,其特点是具有高透光性和高平整度,能够提升微电子元器件的成品率和品质。全球市场分析 从全球市场来看,光掩膜基板市场规模持续增长。据分析,到2024年,全球光掩膜基板市场规模…