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


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

    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进行定位吧

  • 相关阅读:
    15 react ajax 请求 github 用户信息
    14 react fetch
    13 React axios
    12 脚手架编写React项目(评论管理)---
    gitlab init project
    为什么是2MSL而不是MSL?
    mac python install zlib not available
    Laravel 传递数据到视图
    sleep(0)作用
    ping错误详解
  • 原文地址:https://www.cnblogs.com/bestwei/p/11317247.html
Copyright © 2020-2023  润新知