首页 > 其他分享 >selenium---八大定位学习笔记

selenium---八大定位学习笔记

时间:2024-04-07 16:11:07浏览次数:15  
标签:定位 text 元素 selenium 笔记 element --- driver find

selenium算是比较主流的。
appium,是基于selenium继承实现的。
selenium 是基于JS Core来实现的。

元素的定位:先获取webElement的对象,然后在考虑元素如何操作
所有的UI层的自动化,都是基于元素定位来实现的
所有的被操作的元素都是webElement对象
元素=html标签
实际系统中,元素标签类型不是由表象来决定的,是通过css样式表来决定的。
自动化时,就是基于标签的属性来定位标签。

如何定位精准你需要操作的元素?
(一)八大元素定位
1.id:基于元素属性id值进行定位
driver.find_element_by_id('')

2.name:基于元素属性name值进行定位
driver.find_element_by_name('')

3.link text:主要用于超链接进行定位
driver.find_element_by_link_text('')

4.partial link text:link text的模糊查询操作,类似数据库的 like %,当模糊查询匹配到多个符合条件的元素,匹配第一个
driver.find_element_by_partial_link_text('')
5.class name:基于元素样式进行定位,非常容易遇到重复的
driver.find_element_by_class_name('')
6.tag name:标签名进行定位,重复度最高,只有在需要定位后进行二次筛选的情况下使用
driver.find_element_by_tag_name('')
7.css selector:应用相对较多的行为,最初IE浏览器不支持xpath,完全基于class属性来实现的定位
driver.find_element_by_css_selector('')
8.xpath:目前应用最多的一种行为,基于页面结构来进行的定位
8.1 绝对路径:从html根路径下一层一层往下数,找到对应的层级,从而找到元素。(尽量不要使用)
8.2 相对路径:基于匹配制度来查找元素,依照xpath语法
例如://*[@id="kw"]
//表示从根路径下开始查找元素
*表示任意元素
[]表示筛选条件(查找函数)
@表示基于属性来筛选,例如@id="kw"表示基于id属性值为kw的条件来进行筛选。
8.3 确认xpath路径是否正确:
1.在开发者工具elements页面使用ctrl+f查找,进行判断
2.在console中输入$x('')进行校验
8.4 如果要基于text来定位元素
在[]中添加text()="文本内容"进行查找,例如//a[text()='登录']
8.5 driver.find_element_by_xpath('')
当定位元素无法直接定位时,可以通过定位子级元素返回父级来获取元素。
/.. :返回父级
//input[contains(@id,'kw')]
//input[contains(text(),'kw')]
contains表示进一步查找,匹配项模糊查询。

标签:定位,text,元素,selenium,笔记,element,---,driver,find
From: https://www.cnblogs.com/shaguomizhou/p/18119274

相关文章

  • 11.java openCV4.x 入门- Imgcodecs之图像读写
    专栏简介......
  • 【论文笔记-1】Multi-lingual Knowledge Graph Embeddings for Cross-lingual Knowled
    论文结构摘要:为了实现跨语言的知识对齐,提出了MTransE,一个基于翻译的多语言知识图谱嵌入模型。通过在分离的嵌入空间中编码每种语言的实体和关系,MTransE为每个嵌入向量提供了过渡到其他空间中跨语言对应物的功能,同时保留了单语种嵌入的功能。动机(待解决的问题):嵌入能够帮助提......
  • Android音视频开发 - MediaMetadataRetriever 相关
    Android音视频开发-MediaMetadataRetriever相关MediaMetadataRetriever是android中用于从媒体文件中提取元数据新的类.可以获取音频,视频和图像文件的各种信息,如时长,标题,封面等.1:初始化对象privateMediaMetadataRetrievermediaMetadataRetriever=newMediaMetadat......
  • 【文化课学习笔记】【数学】统计与概率
    【数学】统计与概率统计定义为了实现某种调查目的,进行收集数据,整理数据,分析数据。收集数据方法:全面调查和抽样调查。全面调查:调查所有对象。优点:全面。缺点:工作量大。抽样调查:从全体中抽取一部分样本调查。抽样调查必须保证每个个体有相同的几率被抽到。高中阶段介绍了三......
  • 前端【VUE】02-vue指令【v-html 、v-show、 v-if 、v-else、v-on、v-bind、v-for、v-m
    Vue指令①v-html1<!DOCTYPEhtml>2<htmllang="en">3<head>4<metacharset="UTF-8">5<metahttp-equiv="X-UA-Compatible"content="IE=edge">6<metaname="view......
  • PHP imap 远程命令执行漏洞(CVE-2018-19518)漏洞复现
    phpimap扩展用于在PHP中执行邮件收发操作。其imap_open函数会调用rsh来连接远程shell,而debian/ubuntu中默认使用ssh来代替rsh的功能(也就是说,在debian系列系统中,执行rsh命令实际执行的是ssh命令)。因为ssh命令中可以通过设置-oProxyCommand=来调用第三方命令,攻击者通过注入注入这......
  • 洛谷题单指南-数学基础问题-P1017 [NOIP2000 提高组] 进制转换
    原题链接:https://www.luogu.com.cn/problem/P1017题意解读:负进制数的转换。解题思路:下面给出两种思路1、枚举法从数据范围来看,∣n∣≤37336,因此,可以对该r进制的数进行枚举,每一次枚举,都计算r进制数对应的十进制数是否和n相等,相等则输出该r进制数。主要问题就是要解决r进制......
  • HOW - Typescript 类型声明文件
    目录一、背景二、如何添加类型定义支持智能提示方法一:使用JSDoc注释方法二:使用TypeScript编写类型声明文件.d.ts方法三:JSDoc注释转Typescript类型声明文件总结二、使用TypeScript编写类型声明文件1.创建类型声明文件2.编写类型声明2.1dec......
  • python UTF-8解码及脚本头的标注
    在Python中,如果你需要将编码为UTF-8的字节串解码为Unicode字符串,你可以使用内置的str类型的decode方法,或者使用bytes.decode()方法。但通常情况下,如果你已经在Python3中处理字符串,你可以直接将字节串(类型bytes)转换为字符串(类型str)。例如:python#假设我们有以下UTF-8编码的......
  • 组合数学——Min-Max容斥
    Min-Max容斥,即$$\max(S)=\sum_{T\inS,T\neq\emptyset}(-1)^{|T|-1}\min(T)$$接下来证明上面那个式子是对的。定义\(S\)中共有\(N\)个元素,由大到小分别为\(s_1,s_2,\dots,s_N\),\(T_i\)为所有\(S\)大小为\(i\)的子集。所有元素都大于\(s_i\)且大小为\(j\)的子集......