首页 > 其他 > 详细

修改robotframework的元素定位方式,使之支持带括号的xpath定位方式

时间:2019-08-07 20:01:50      阅读:102      评论:0      收藏:0      [点我收藏+]

今天困扰我的一个问题终于解决了

robot框架默认的xpth定位方式是不支持带括号运算的xpth表达式的,例如:

(//*[@content-desc="iv_message_icon_2124"])[2]
这种带括号的xpth是不支持的

但是很奇怪的是appium原生是支持这种定位方式的,运行时报的错误也让人比较费解

技术分享图片

不支持此种前缀

这个时候其实已经提示你了,运行的时候,对这种xpath定位表达式进行了拆分,导致定位不到

所以我们需要找到框架代码

技术分享图片

从这里我们可以看出通过字符串里的起始字符串来进行判断分割的,所以我们将startwith替换成__contains__就可以了

elementfinder.py


    def _parse_locator(self, locator):
        prefix = None
        criteria = locator  
        if not locator.__contains__(//):    
            locator_parts = locator.partition(=)
            if len(locator_parts[1]) > 0:
                prefix = locator_parts[0].strip().lower()
                criteria = locator_parts[2].strip()
        return (prefix, criteria)

 但是还需要修改一个地方

 技术分享图片

至此就大功告成,快乐的用xpath进行定位吧

 

修改robotframework的元素定位方式,使之支持带括号的xpath定位方式

原文:https://www.cnblogs.com/bestwei/p/11317247.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!