适用于我们自己的公司,Data-nick和data-name一般不会动,是留给自动化的字段,优先使用这两个属性,这两个字段是我们和前端开发协商增加的字段,专门用于自动化。
1.相对路径各个符号的意义. //等
# 斜杠(/)作为路径内部的分割符。
# "."表示当前节点。
# ".."表示当前节点的父节点
# "/":表示选择根节点
# "//":表示选择任意位置的某个节点
# "@": 表示选择某个属性
2.定位的几种方式text、class、id、索引通过父级一层层定位
text:
示例 //span[text()="评论管理"]
讲解 根据元素的文案定位
class:
示例 //span[@class="jsx-74784106"]
讲解 根据元素的class属性定位
id:
示例 //input[@id="share-form_shareTitle"]
讲解 根据元素的id属性定位
索引:
示例 (//div[@class="jsx-74784106 btn-upload-box"])[2] -打开挂件弹窗
讲解 根据元素的@class属性定位出多个值,取第二个(备注:非索引取值)
取最后一条数据:
示例 (//tbody[@class="ant-table-tbody"])/tr[last()]/td[1]/p/span[1]/a
讲解 当前页全部的“tbody元素”中查找“class="ant-table-tbody属性","子节点tr"中查找最后一个元素
同级向后获取节点:
示例 //td[text()="直播自动化-猎小测-创建中-pyh01"]/following-sibling::td[4]/div/div[1]
其他同级命令:
3.踩坑解决
对应不同的简历,目前状态可能不确定,可能为离职正在找工作,也可能为在职看看新机会,而且同一账号跑多次的话,状态也会发生变化,怎么定位 | 因为这几个选项都有一个“在”字,所以可以通过“在”字定位语法 ("//span[contains(text(),\"在\")]") | |
xpath 属性+索引定位元素 | 语法: (相对路径)[索引] | 示例:(//span[@class="action-edit"])[3] |
规避选中态选择 | 思路: 1.查看选中态和非选中态 属性区别 2.定位非选中态标签+索引 | 示例 元素 //期望职位_编辑页.期望职位组件 public static String ExpectedPosition = "//div[@class=\"search-component-drop-icon-wrapper\"]"; //期望职位_编辑页.期望职位组件.左侧职位类别选项(选中未选中类别) public static String PositionCategoryOptions = "(//li[@class=\"ant-menu-item ant-menu-item-only-child\"])[3]"; //期望职位_编辑页.期望职位组件.右侧职位选项 public static String PositionOptions = "(//span[@class=\"ant-tag ant-tag-checkable\"])[1]"; |
举例:简历基本信息编辑页,日期选择为相同的class,用索引定位时,第二次元素会找不到 | 用鼠标点击和代码点击显示的元素会不一样,使用xpath定位时,点击不到,停在当前页面去定位 |