当前位置: 首页 > 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.dtcms.com/a/113317.html

相关文章:

  • LeetCode热题100记录-【二叉树】
  • 【Deep Reinforcement Learning Hands-On Third Edition】【第1章:什么是强化学习】
  • 《海空重力测量理论方法及应用》之一重力仪系统组成及工作原理(下)
  • qt designer 软件主题程序设计
  • Python精进系列:从 __name__ 开始了解 python 常见内置变量
  • synchronized 锁升级机制详解
  • ROS2 多机时间同步(Chrony配置简明指南)
  • docker本地部署anythingllm
  • C++重载运算符的本质
  • 将 DataFrame 中某一列的列表拆分成多个独立的列的方式
  • Linux上位机开发实践(做一专多能的方案提供者)
  • 从情感分析到朴素贝叶斯法:基于朴素贝叶斯的情感分析如何让DeepSeek赋能你的工作?
  • 【Kubernetes】RBAC(基于角色的访问控制)如何设置?如何管理 Kubernetes 的权限?
  • MCP 极简入门 - 三分钟 Cline + Smithery 运行 time 服务
  • HTTP/2:新一代网络协议的变革与优势
  • 借 DCMM 东风,提升数据管理价值生产力
  • BugKu Simple_SSTI_2
  • 【UE5 C++课程系列笔记】31——创建Json并保存为文件
  • 横扫SQL面试——TopN问题
  • 团体设计程序天梯赛L2-025 # 分而治之
  • Maven使用
  • 3535 数组分割
  • Python 数据库选型指南(架构师视角)
  • BUUCTF-web刷题篇(12)
  • 智能体和RPA都需要程序思维,如何使用影刀的变量?
  • HarmonyOS-ArkUI Ability进阶系列-UIAbility与各类Context
  • Python解决“数字插入”问题
  • 英语听力4.5
  • 6547网:蓝桥STEMA考试 Scratch 试卷(2025年3月)
  • Python作业3 字符田字格绘制