RPA流程开发之XPath用法总结(基础)

       大家好,相信大家在开发网页端系统的业务流程时遇到过用组件获取的元素是以当前元素的id定位的,但该id偏偏是个动态的id,每一次打开页面都会有变化,在这种情况下,我们就需要手动修改定位元素的方式,那么常用的方式为XPath定位。所以,这节课我们就来讲讲有关XPath的用法。

    一般Google Chrome开发者工具(按F12)的Elements面板中,使用箭头工具点击相关元素,鼠标右键菜单中选择【Copy】->【Copy XPath】就可以看到XPath,针对比较简单的网页可以使用此方法,但对于上述提到的动态id,比如阿里云国际站,如下图所示:

RPA流程开发之XPath用法总结(基础)插图当然,在很多实际项目中,比如企查查网站,针对不同的企业类型,相同的元素使用上述方法获取XPath是不同的;BOSS直聘,针对不同账号,相同的元素使用上述方法获取XPath也不同,那么怎么样才能更精确的定位元素或者避免定位元素出错呢?请看下面的详细讲解。

准备工作:

    1)准备开发流程的电脑,请打开云扩学院链接查看云扩RPA编辑器运行的硬件&软件要求(https://academy.encoo.com/wiki/Studio/quickStart/HarewareAndSoftwareRequirements.md?)

     2)打开云扩官网(https://www.encoo.com/)下载编辑器并安装

什么是XPath

XPath是XML的路径语言,通俗一点讲就是通过元素的路径来查找到这个标签元素。

工具

查找Xpath推荐使用Google Chrome浏览器,Chrome打开网页,在空白处右击,点击检查,可以调出开发者工具面板

RPA流程开发之XPath用法总结(基础)插图(1)

RPA流程开发之XPath用法总结(基础)插图(2)

初级获取XPath方法及调试方法

1. 初级获取XPath方法

Google Chrome中Elements面板,使用箭头工具点击元素

RPA流程开发之XPath用法总结(基础)插图(3)

Elements面板中悬停在查找到的位置,然后鼠标右键菜单中选择【Copy】->【Copy XPath】

例如BOSS直聘,推荐牛人按钮的XPath为://*[@id="main"]/div[1]/div/dl[2]/dt/a

RPA流程开发之XPath用法总结(基础)插图(4)

2. XPath调试方法


Elements面板中按Ctrl + F调出查找框,输入XPath,若看到高亮黄色并且只能查找出1个(
1 of 1 代表只能查找出1个)时说明此XPath可以被使用。

RPA流程开发之XPath用法总结(基础)插图(5)

XPath建议使用方法

上面我们看到了初级获取XPath方法及调试方法,针对实际项目中,由于账号变化、id动态变化等因素,可能导致网站结构变化,XPath即变动了,上述方法存在一定的失败率。下面介绍几种建议的方法。

XPath最有用的路径表达式:

RPA流程开发之XPath用法总结(基础)插图(6)

实例

1. 标签+属性定位(XPath= "//标签名[@属性='属性值']")

XPath支持id、Class、Name等定位功能,可将 * 换位任意标签名,例如,百度首页的输入框的XPath

  • 通过ID定位

//*[@id='kw'] 或者 //input[@id='kw'] 

RPA流程开发之XPath用法总结(基础)插图(7)

  • 通过Class定位

//*[@class='s_ipt'] 或者 //input[@class='s_ipt']

RPA流程开发之XPath用法总结(基础)插图(8)

  • 通过Name定位

//*[@name='wd'] 或者 //input[@name='wd']

RPA流程开发之XPath用法总结(基础)插图(9)

2. XPath文本、模糊、逻辑定位

  • 文本定位(使用
    text()文本函数

文本定位通常建议在没有多语言的环境中,文本不会由于其他原因变动。

例如,百度首页的新闻超链接的XPath可以表示为//a[text()='新闻']

RPA流程开发之XPath用法总结(基础)插图(10)

  • 模糊定位(使用contains() 包含函数

文本模糊定位例如,百度首页的新闻超链接的XPath可以表示为//a[contains(text(),'新')]

RPA流程开发之XPath用法总结(基础)插图(11)

属性模糊定位:例如,百度首页的新闻超链接的XPath可以表示为//input[contains(@class,"ipt")]

RPA流程开发之XPath用法总结(基础)插图(12)

  • 使用逻辑运算符

当单一的属性无法确定到一个元素时,可以使用逻辑运算符
例如,百度首页的输入框可以表示为
//*[@id="kw" and @name="wd"] 

RPA流程开发之XPath用法总结(基础)插图(13)

附XPath在RPA组件定位器中的写入方式:

RPA流程开发之XPath用法总结(基础)插图(14)

       好啦各位,今天就讲这么多XPath的基础课程,但是仅仅通过标签+属性定位 & XPath文本、模糊、逻辑定位这2种方法不足以覆盖到大部分场景,下次课程我们讲解何通过XPath层级及指定节点索引定位XPath轴定位,敬请期待~

 

XPath详细教程参考:

https://www.w3school.com.cn/xpath/index.asp

https://www.runoob.com/xpath/xpath-tutorial.html

本文由 RPA Club 作者:admin 发表,其版权均为 RPA Club 所有,文章内容系作者个人观点,不代表 RPA Club 对观点赞同或支持。如需转载,请注明文章来源。

发表评论