首页 > 编程语言 >python+playwright 学习-56 svg 元素定位

python+playwright 学习-56 svg 元素定位

时间:2023-04-29 20:33:14浏览次数:41  
标签:定位 playwright name python svg 元素 标签 id

前言

SVG英文全称为Scalable vector Graphics,意思为可缩放的矢量图,这种元素比较特殊,需要通过 name() 函数来进行定位。

svg 元素定位

如下看到的svg 标签,就是svg元素

python+playwright 学习-56 svg 元素定位_ci

用普通的标签定位,是无法定位的,如xpath的//svg

python+playwright 学习-56 svg 元素定位_python+playwright_02

只能通过 name() 函数来定位 //*[name()="svg"]

python+playwright 学习-56 svg 元素定位_python+playwright_03

页面上用多个svg元素

如果页面上用多个svg元素,通过//*[name()="svg"] 会定位全部的svg元素,为了区分定位具体的哪个,可以通过父元素的区分

//*[@id="box1"]//*[name()="svg"]

python+playwright 学习-56 svg 元素定位_python+playwright_04

除了用父元素区分,也可以用其它属性组合,svg属性加其它属性,用 and 组合

//*[name()="svg" and @width="500"]

python+playwright 学习-56 svg 元素定位_元素定位_05

定位svg 上的子元素

如果需要定位svg 下的子元素,如下图的text属性

python+playwright 学习-56 svg 元素定位_python+playwright_06

跟前面定位方式一样,还是通过name() 函数来定位子元素的标签

//*[@id="box1"]//*[name()="svg"]/*[name()="text"]

python+playwright 学习-56 svg 元素定位_ci_07

再举个例子,定位circle 标签

//*[@id="box1"]//*[name()="svg"]/*[name()="circle"]

python+playwright 学习-56 svg 元素定位_元素定位_08


python+playwright 学习-56 svg 元素定位_元素定位_09




标签:定位,playwright,name,python,svg,元素,标签,id
From: https://blog.51cto.com/u_15249893/6236880

相关文章

  • python+playwright 学习-55 在docker 容器中运行playwright脚本
    前言Dockerfile.focal可用于在Docker环境中运行Playwright脚本。这些镜像包括在Docker容器中运行浏览器所需的所有依赖项,还包括浏览器本身。playwright在linux系统上目前只支持Ubuntu系统的部分版本,centos和debian系统上是没法运行的。镜像查看所有可用的图像标签https:......
  • 长度最小的子数组--Python解法
    给定一个含有 n 个正整数的数组和一个正整数target。找出该数组中满足其和≥target的长度最小的连续子数组 [numsl,numsl+1,...,numsr-1,numsr],并返回其长度。如果不存在符合条件的子数组,返回0。defminSubArrayLen(self,s:int,nums:List[int])->int:......
  • Python之路【第十九篇】:爬虫
    网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 1.RequestsPython标准库中提供了:urllib、urllib2、httplib等模块......
  • python将pdf转为txt
    #encoding=utf8#-*-coding:utf-8-*-#pipinstallpypdf2-ihttps://pypi.tuna.tsinghua.edu.cn/simpleimportPyPDF2fromioimportStringIOcontent_all_list=[]#打开PDF文件并创建一个PyPDF2对象withopen('Scrum-Guide-Chinese-Simplified.pdf','r......
  • #yyds干货盘点#python包
    包是一种用“点式模块名”构造Python模块命名空间的方法。例如,模块名 A.B 表示包 A 中名为 B 的子模块。正如模块可以区分不同模块之间的全局变量名称一样,点式模块名可以区分NumPy或Pillow等不同多模块包之间的模块名称。假设要为统一处理声音文件与声音数据设计一个模......
  • Python之路【第十八篇】:Web框架们
    Python的WEB框架1.BottleBottle是一个快速、简洁、轻量级的基于WSIG的微型Web框架,此框架只由一个.py文件,除了Python的标准库外,其不依赖任何其他模块。 pipinstallbottleeasy_installbottleapt-getinstallpython-bottlewgethttp://bottlepy.org/bottle.py......
  • Python 与 Pycharm 安装
    推荐到官网下载,不推荐使用各种电脑管家如果没有强烈的版本要求,建议使用最新版Python安装到Python官网下载页面下载安装包,官网会自动根据当前系统推荐适合的安装包笔者此时最新版为Windows版本下的3.11.3,如果官网进不去,可以从笔者提供的备用地址下载下载完安装包后打......
  • Python 希尔排序(Shell Sort)原理以及应用
    希尔排序的原理:希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。希尔排序的原理是将待排序的序列按照一定间隔分成若干个子序列,对每个子序列使用插入排序进......
  • Python之路【第十七篇】:Django【进阶篇】
    原博客笔记链接:https://www.cnblogs.com/wupeiqi/articles/5246483.html 1.Model到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞:创建数据库,设计表结构和字段使用MySQLdb来连接数据库,并编写数据访问层代码业务逻辑层去调用数据访问层执行数......
  • [oeasy]python0143_主控程序_main
    主控程序回忆上次内容上次把apple.py拆分成了输入主函数引用模块中变量的时候要带上包(module)名get_fruits.aget_fruits.b最终拆分代码成功!可以将程序再拆分成输入输出然后再由主函数调用吗?......