前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >web自动化03-xpath定位

web自动化03-xpath定位

作者头像
似小陈吖
发布2023-10-17 09:29:34
2620
发布2023-10-17 09:29:34
举报
文章被收录于专栏:测试那些事测试那些事

   目标: Xpath方法

1、定位一组元素的方法

element = driver.find_elements_by_*("*")      * 可以是name,tag_name,

注意:元素定位方法如果带有s,则执行结果返回的是列表类型数据,里边的数据是多个元素对象

可以通过列表的下标(索引)获取对应的目标对象元素,再执行操作

   依据:

  • 没有s和带有s的定位方法的相互依据:
  •     1.如果调用元素定位方法后,再点语法,提示的均为列表方法,则方法带s 
  •     2.如果调完元素定位方法后,在点语法,提示的均为元素方法,则方法不带s

2、元素定位—XPath方法

XPath是XML Path的简称,是一门在XML文档中查找元素信息的语言

XML:一种标记语言,用于数据的存储的传递

XPath定位策略

注意:使用XPath策略,需要在浏览器工具中根据策略语法,验证成功后再放入代码中使用

1、路径-定位

2、利用元素属性-定位

3、属性与逻辑-定位

4、层级与属性结合

无论使用哪一种XPath策略,定位方法都是同一个,不同策略只决定方法的参数的写法

   方法:find_element_by_xpath("XPath策略")                

路径预习:

绝对路径:最外层元素到指定元素之间所有经过元素层级的路径

 以/html,使用/来分割元素层级

对页面结构要求比较严格,不建议使用

相对路径:匹配任意层级的元素,不限制元素的位置

1、相对路径以//开始

2、格式 //input  或者 // *

使用开发者工具XPath快速定位元素:

1、目标元素上鼠标邮件——检查

2、元素对应代码上鼠标邮件——copy

3、copy XPath     copy full  XPath

注意:使用相对路径时,要注意方法参数的内外引号嵌套问题

xpath 利用元素属性-定位

说明:通过元素的属性信息来定位元素

语法1: //标签名[@属性名 = "属性值"]            //input[@id = "username"]   

语法2: //*[@属性名= "属性值"]                     //*[@id = "username"]

注意事项:1、目标元素的有些属性和属性值,可能存在多个相同特征的元素,需要注意唯一性

                  2、与class_name 方法不同的是,如果使用具有多个值的class属性,则需要传入全部的属性值

xpath 利用属性与逻辑结合

说明:解决元素之间个相同属性重名问题

格式://*[@属性1= '属性值1' and @属性2 = '属性值2']                          //*[@name = 'tel' and @class = 'tel']

xpath 利用层级与属性结合

如果通过元素自身的信息不方便直接定位到该元素,则可以先定位到父元素,然后再找到该元素

格式 : 父层级定位策略 / 目标元素定位策略

XPath延伸:

    //*[text()  = ""]                  通过文本信息来定位元素(要求全部文本内容)

    //*[contains(@attribute,"xxx")]       属性中含有xxx 的元素

    //*[starts-with(@atttibut,"xxx")]        属性以xxx 开头的元素

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •    目标: Xpath方法
相关产品与服务
云开发 CLI 工具
云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档