一.基础元素定位

1.id定位:根据元素的id定位

By.id("id")
webDriver.findElement(By.id("tab-account")).click();

2.Classname定位:根据classname定位

By.className("classname")
webDriver.findElement(By.className("elinput__inner")).sendKeys("13851998024");

3.Linktext定位:根据linktext定位

By.partialLinkText("超链接文本值")
webDriver.findElement(By.partialLinkText("地图")).click();

4.Partiallinktext定位

By.partialLinkText("超链接部分文本值")
webDriver.findElement(By.partialLinkText("图")).click();

5.name定位:不常用

6.Tagname定位:一般不唯一,几乎不用

二.css定位

1.根据Id

By.cssSelector("#id")
By.cssSelector("标签名#id")
webDriver.findElement(By.cssSelector("#tab-account")).click();

2.根据Classname

By.cssSelector(".classname")
By.cssSelector("标签名.classname")
webDriver.findElement(By.cssSelector(".comp-smscode_sendbtn")).click();

3.根据tagname

4.根据元素属性

By.cssSelector("标签名[属性名='属性值']")

(1)单属性

webDriver.findElement(By.cssSelector("input[placeholder='输入验证码']")).sendKeys("pwd");

(2)多属性

webDriver.findElement(By.cssSelector("input[type='text'][placeholder='输入验证码']")).sendKeys("pwd");

三.xpath定位

1. xpath绝对路径

从根目录开始找:html/body...

2. Xpath相对路径

//标签名[@属性名=”属性值”]

//匹配指定节点,不考虑他们的位置;

标签名:可以是具体的标签名,也可以是*通配符,表示任意标签名;

@选取属性

(1)元素标签名定位

By.xpath("//iframe")

(2)元素名+索引定位

By.xpath("//div[4]//input")

(3)属性

By.xpath("//*[@class='gloable-upload']/i")

(4)元素标签+属性

By.xpath("//input[@placeholder='请输入标题']")

(5)包含属性部分值

By.xpath("//div[contains(@class,'btn-submit')]")

(6)元素文本内容

By.xpath("//span[text()='新建']")

(7)包含元素文本部分值

By.xpath("//div[contains(text(),'登 录')]")

3.Xpath轴定位

轴名称

释义

ancestor

选取当前节点的所有祖先节点(包括父节点) --找所有的祖先

parent

选取当前节点的父节点 -- 找爸爸

preceding

选取当前节点之前的所有节点

preceding-sibling

选取当前节点之前的所有兄弟节点 --找哥哥

following

选取当前节点之后的所有节点

following-sibling

选取当前节点之后的所有兄弟节点 --找弟弟

/轴名称::节点名称[@属性=值]

By.xpath("//*[text()='资讯平台']//preceding-sibling::div/img")

web自动化的元素定位的更多相关文章

  1. web自动化之元素定位篇

    一.web自动化元素定位的方式有8种.------腾讯课堂 1.1 id定位: 1.2 class定位: 1.3 classname定位 1.4 tag_name 1.5

  2. web自动化:元素定位(二)

    一. 实例 如何定位到下图第二个"抢投标",有一种方法是利用xpath定位 //a[@href="/loan/loan_detail/Id/7190.html" ...

  3. Web自动化必会知识:「Web基础、元素定位、元素操作、Selenium运行原理、项目实战+框架」

    1.web 基础-html.dom 对象.js 基本语法 Dom 对象里面涉及元素定位以及对元素的修改.因为对元素操作当中涉及的一些 js 操作,js 基本语法要会用.得要掌握前端的基本用法.为什么要 ...

  4. python3+Appium自动化12-H5元素定位环境搭建

    前言 在混合开发的App中,经常会有内嵌的H5页面.那么这些H5页面元素该如何进行定位操作呢? 针对这种场景直接使用前面所讲的方法来进行定位是行不通的,因为前面的都是基于Andriod原生控件进行元素 ...

  5. 【Selenium03篇】python+selenium实现Web自动化:元素三类等待,多窗口切换,警告框处理,下拉框选择

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第三篇博 ...

  6. App自动化《元素定位方式、元素操作、混合应用、分层设计、代码方式执行Pytest 命令》

    坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 目录 一.App 元素定位方式 二.元素操作 三.测试混合应用 四.以代码的方式执行 Pytest 命 ...

  7. 【python+selenium的web自动化】- 元素的常用操作详解(一)

    如果想从头学起selenium,可以去看看这个系列的文章哦! https://www.cnblogs.com/miki-peng/category/1942527.html ​ 本篇主要内容:1.元素 ...

  8. selenium+python自动化之元素定位

    自动化按步骤拆分的话,可以分为四步操作:定位元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇接下来讲基本的八种元素定位方法.说的通俗一点,就是教大家找对象. ...

  9. UI自动化之元素定位(xpath、css)

    很早之前就已经写过自动化了,不过点着功能久了就会容易忘记元素定位,尤其是xpath和css定位,所以就花点时间做下总结收集. xpath有两种定位: 一.绝对路径(不推荐使用,除非已经使用了所有方式仍 ...

  10. web自动化测试(java)---元素定位

    和python类似,java-selenium也提供了很多种元素定位的方法,具体如下: findElement(By.id()) findElement(By.name()) findElement( ...

随机推荐

  1. win10 linux子系统的一些想法

    什么是linux子系统 具体的概念网上很多,作为个技术人简单粗暴来说就是微软脑子瓦特,突然爱上了linux, 可以在win10安装linux子系统 子系统不同于虚拟机,但是其优点是安装很快,对于新手和 ...

  2. [文件格式/数据存储] Parquet:开源、高效的列式存储文件格式协议

    序:缘起 => 用 java 读取 parquet 文件 生产环境有设备出重大事故,又因一关键功能无法使用,亟需将生产环境的原始MQTT报文(以 parquet 文件格式 + zstd 压缩格式 ...

  3. VXLAN 网络中报文转发过程

    本文分享自天翼云开发者社区<VXLAN 网络中报文转发过程>,作者:刘****林 以同网段的 VM 间互通简单介绍 VXLAN 网络中的报文转发过程. 1.VM1 发送目的地址为 VM2 ...

  4. Flink程序异常--CommunicationsException: The last packet successfully received from the server was

    一.异常截图 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully receive ...

  5. 并发编程 - 线程同步(八)之自旋锁SpinLock

    前面对互斥锁Monitor进行了详细学习,今天我们将继续学习,一种更轻量级的锁--自旋锁SpinLock. 在 C# 中,SpinLock是一个高效的自旋锁实现,用于提供一种轻量级的锁机制.SpinL ...

  6. VSCode Romote SSH连接远程主机经常初始化?10个解决方法!!

    解决方法: 删除远程主机上的 .vscode-server 文件夹:这个文件夹包含 VSCode 的远程服务器组件.如果这个文件夹损坏或配置不正确,会导致连接问题.删除并重新安装可以确保服务器组件是干 ...

  7. JS中的0和php中的0

    请注意:包含 0 的字符串 "0" 是 true 一些编程语言(比如 PHP)视 "0" 为 false.但在 JavaScript 中,非空的字符串总是 tr ...

  8. PDManer 入门教程:超强代码生成工具!

    PDManer 入门教程:超强代码生成工具!https://www.51cto.com/article/753161.html

  9. Linux 通过docker安装nginx,.net core sdk或运行时安装到Linux

    1.Linux docker通过yum安装 https://blog.csdn.net/GMingZhou/article/details/94024453 https://qizhanming.co ...

  10. Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!

    在众多开源项目中,高颜值.功能强大且部署简单的项目往往更能俘获开发者的心.然而,实际部署 Web 应用时,面对数据库.缓存.消息队列等复杂的依赖关系,常常令人头疼.Docker 的开源为我们普及了容器 ...