Selenium 定位伪元素,获取伪元素中的文本

这篇具有很好参考价值的文章主要介绍了Selenium 定位伪元素,获取伪元素中的文本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

伪元素的定义:

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

前端有些页面,可能会见到::before、::after元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>::before 和 ::after 示例</title>
    <style>
        .container {
            position: relative;
        }

        .container::before {
            content: "前置文本 ";
            font-weight: bold;
            color: blue;
        }

        .container::after {
            content: " 后置文本";
            font-weight: bold;
            color: red;
        }

        /* 可以根据需要添加其他样式 */
    </style>
</head>
<body>
    <div class="container">
        这是一个带有伪元素的示例。
    </div>
</body>
</html>

像上面的页面,打开之后显示的是这样的

selenium ::before这种元素怎么定位,Selenium,selenium,测试工具

使用8种定位元素方式,是无法定位并获取到“前置文本”、“后置文本”的值的

selenium ::before这种元素怎么定位,Selenium,selenium,测试工具

可以看到,页面元素只展示了::before、::after 伪元素,并没有显示文本值

文本值是放在CSS样式中的,通过content属性进行设置

我们可以通过JavaScript可以进行提取content的值

若是想获取其他属性的值,将content改为其他属性即可

window.getComputedStyle(document.querySelector('CSS表达式'),':before').getPropertyValue('content')
window.getComputedStyle(document.querySelector('CSS表达式'),':after').getPropertyValue('content')

代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service

chrome_option = Options()
chrome_option.add_experimental_option("debuggerAddress", "127.0.0.1:9222")

chrome_service = Service()
chrome_service.executable_path = r'../chromedriver.exe'

driver = webdriver.Chrome(options=chrome_option, service=chrome_service)


# 需要加上return,否则无法获取元素文本 
js_before = "return window.getComputedStyle(document.querySelector('.container'),':before').getPropertyValue('content')"
js_after = "return window.getComputedStyle(document.querySelector('.container'),':after').getPropertyValue('content')"

print(driver.execute_script(js_before))
print(driver.execute_script(js_after))

结果截图:

selenium ::before这种元素怎么定位,Selenium,selenium,测试工具文章来源地址https://www.toymoban.com/news/detail-851260.html

到了这里,关于Selenium 定位伪元素,获取伪元素中的文本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Selenium教程__获取元素文本、属性值、尺寸(8)

    本文将介绍如何使用Selenium来获取元素的文本内容、属性值和尺寸,并展示一些实际应用场景。 学习本文内容将能够轻松地获取并利用元素的相关信息,从而更好地进行元素的验证、操作和断言。  -事必有法,然后有成-  最后祝大家早日达到测试的天花板! 以下是我收集到

    2024年02月11日
    浏览(34)
  • 从0开始python学习-31.selenium 文本输入框、下拉选择框、文件上传、时间插件选择元素定位

    目录 1. 纯文本输入框 2. 存在默认值的文本输入  3. 下拉选择框 4. 输入后下拉选择框 5. 文件上传 6. 时间插件 注意: 1. 这种存在默认值的情况在做自动化测试的时候可以选择不做处理,直接略过该元素,也可以先将默认值清除后再进行输入的方式进行测试 2.如果是下图这种

    2024年02月06日
    浏览(47)
  • selenium自动化:定位到的元素本身有值,但是打印出来的文本值为空。【已解决】

    问题描述: 部分代码段如下:  元素定位是存在文本的【4174】 结果运行代码 输出为空 解决方法: 1. 判断元素是否被隐藏  print ( driver.find_element(xxxx).is_displayed() ) 若返回值为False或者空白,那就说明原因被隐藏了 2. 用get_attribute()方法获取 driver.find_element(xxxx).get_attribute(“

    2024年02月13日
    浏览(51)
  • python之selenium库安装及用法(定位法、获取文本、文本框输入、鼠标点击、滑动滚动条)

    谷歌浏览器驱动下载地址:https://chromedriver.storage.googleapis.com/index.html 根据你电脑的谷歌浏览器版本,下载相应的就行。我下载的是110.0.5481.XX中的chromedriver_win32.zip 下载完成,解压将里面的chromedriver.exe放到你python安装路径的scripts文件夹中。 能打开百度网页说明安装成功 (一

    2023年04月27日
    浏览(42)
  • python中selenium如何定位shadow-root中的元素

    最近遇到了这个问题,找了好久,终于找到了,参考的是下面这篇文章,但是这篇文章写的比较简单并且有点小问题,对此进行补充,和记录关于shadow-root的查找_#shadow-root_Redamancy又在写BUG的博客-CSDN博客 是以下面这个图片为例,要定位到里面的input需要这么写: 后面如果有多

    2024年02月03日
    浏览(27)
  • 用selenium和xpath定位元素并获取属性值以及str字符型转json型

    页面html如图所示: 要使用xpath定位这个div元素,并且获取其属性data-config的内容值。  结果如图:  蓝色的为str类型,红色的为json类型。 那么先得到的是str类型,如何转换为json类型呢?使用如下代码即可。 import json json_attr=json.loads(str_attr) 读取json数据用json_attr[\\\'video\\\'][\\\'url\\\'

    2024年02月08日
    浏览(31)
  • 自学Python 69 Selenium八大元素定位方法(新版BY方法)_selenium定位元素的方法和优缺点

    文章目录 Python Selenium八大元素定位方法(新版BY方法) 前言 一、常用的八种定位方法(新旧对比) 二、查看网页元素 三、八大元素定位示例 1、id定位 2、name定位 3、class定位 4、tag定位 5、link定位 6、partial_link定位 7、xpath定位 8、CSS定位 在学习使用Selenium对网页元素进行定位时

    2024年04月22日
    浏览(35)
  • selenium定位元素方法

    1、通过id定位元素 写法1: element = driver.find_element_by_id(\\\"kw\\\") 写法2: from selenium.webdriver.common.by import By element = driver.find_element(by=By.ID, value=\\\"kw\\\") Tips: by=By.ID表示以id的方式定位web元素,下面的例子有类似的写法以此类推 2、通过class定位元素 写法1: cheeses = driver.find_elements_by_clas

    2023年04月25日
    浏览(42)
  • selenium无法定位元素问题

    问题起因是这样的,我用 selenium 完成一些网页的浏览和操作,通过id索引某个元素的时候提示找不到该元素,报错如下: selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [id=“tsn_inner”] 我用的是火狐浏览器(Firefox),不是谷歌浏览器(Chrome),因为今天来写

    2024年01月18日
    浏览(30)
  • Selenium(一):八大元素定位

    find_element() 中 类型为空,默认为By.ID

    2024年04月23日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包