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中拼接字符串,其用法詳情如下圖:
在這裏插入圖片描述

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