Robot Framework Selenium Appium如何拼接动态XPath

Robot Framework Selenium Appium如何拼接动态XPath

1.问题背景

在使用Robot Framework的Selenium或者Appium Library时,大家经常会遇到一个问题,就是如何定位一个给定text的控件,例如给定一个人名,我需要去定位这个人在界面上的控件,怎么办?

例如"XPath = //android.view.View[@text=‘刘xx’]",这里的人名是动态参数,需要外部传参进来,因此整个XPath也是动态的。这个问题在编程语言比如Java或者Python中是非常好解决的,拼个字符串就可以了,但是在Robot Framework中咋拼这玩意呢?

2.解决方式

在Robot Framework中,思路也是拼接字符串,只不过我们需要使用 Builtin Library中默认提供的Catenate关键字,如下图:
在这里插入图片描述
图中即为拼接的过程,我把这一过程直接封装成了一个user_keyword,相当于一个方法。
这个方法需要一个传入参数,即${人员姓名}参数,用于接收外部的入参。
一个返回参数,即把方法中拼接好的xpath作为return值传出。
拼接的过程使用了Builtin Library中默认提供的Catenate关键字,SEPERATORE=空,即代表拼接字符串时不需要分隔符。

因此,如果传入的参数${人员姓名} = ‘刘xx’,那么传出的${xpath} = //android.view.View[@text='刘xx’]。

在test case中调用时,就可以按下图中的方式进行调用:
在这里插入图片描述

3.用到的catenate关键字详解

Catenate关键字专门用于Robot Framework中拼接字符串,其用法详情如下图:
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章