当前位置: 首页 > news >正文

Java的Selenium元素定位-xpath

xpath其实就是一个path(路径),一个描述页面元素位置信息的路径,相当于元素的坐标xpath基于XML文档树状结构,是XML路径语言,用来查询xml文档中的节点。

  • 绝对定位
    • 从根开始找--/(根目录)
    • /html/body/div[2]/div/form/div[5]/button
    • 缺点:一旦页面结构发生变化(比如重新设计时,路径少了两节),该路径也随之失效,必须重新写
  • xpath相对路径
  • 只要不是/开始的,就是相对路径
  • //*[@name='phone']
  • 路径解释:
    • //匹配指定节点,不考虑它们位置(/则表示绝对路径,从根下开始)
    • *通配符,匹配任意元素节点。
    • @ 选取属性
    • []属性判断条件表达式
  • 相对定位优点:
    • 灵活,方便,耦合性低
//通过元素的属性定位 这会定位到所有<input>标签中name属性为username的第一个元素。
driver.findElement(By.xpath("//input[@name='username']"));
//多属性定位 这将定位到所有name属性为user且class属性为login的<input>元素的第一个
driver.findElement(By.xpath("//input[@name='user' and @class='login']"));
//多属性定位 这将定位到所有name属性为user或class属性为login的<input>元素的第一个
driver.findElement(By.xpath("//input[@name='user' or @class='login']"));
//通过元素的文本内容定位 这会定位到所有<a>标签中文本内容为Login的第一个元素。
driver.findElement(By.xpath("//a[text()='Login']"));
//部分文本定位 这将定位到所有文本中包含“Login”的<a>标签的第一个元素。
driver.findElement(By.xpath("//a[contains(text(), 'Login')]"));
//通过元素的位置定位:这会定位到页面上第二个<div>元素。
driver.findElement(By.xpath("//div/a[@href='#']"));

http://www.mrgr.cn/news/97198.html

相关文章:

  • 【深度学习】通过colab将本地的数据集上传到drive
  • AI比人脑更强,因为被植入思维模型【44】成长破圈思维
  • 【FPGA开发】利用状态机思想点亮流水灯/初学hdlbitsFPGA教程网站
  • C++学习之LINUX网络编程-套接字通信基础
  • 【51单片机】3-3【定时器/计数器/中断】超声波测距模块测距
  • Spring Cloud 框架为什么能处理高并发
  • 25.4 GLM-4+RAG智能标注实战:标注成本暴降60%,检索准确率飙升40%!
  • 【蓝桥杯】十五届省赛B组c++
  • 3-Visual Studio 2022打包NET开发项目为安装包
  • Android使用OpenGL和MediaCodec录制
  • 走进未来的交互世界:下一代HMI设计趋势解析
  • 力扣刷题-热题100题-第31题(c++、python)
  • mysql and redis简化版
  • 虚幻5学习笔记,疑点
  • 八、重学C++—动态多态(运行期)
  • MySQL-SQL-DDL语句、表结构创建语句语法、表约束、表数据类型,表结构-查询SQL、修改SQL、删除SQL
  • 【Android】界面布局-线性布局LinearLayout-例子
  • Linux常用基础命令应用
  • 理解OSPF 特殊区域Stub和各类LSA特点
  • Android学习总结之算法篇四(排序)