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

 

转载于:https://www.cnblogs.com/bestwei/p/11317247.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Robot Framework是一种自动化测试框架,它支持多种元素定位方式,包括ID、名称、类名、标签名、CSS选择器和XPath等。使用这些定位方式,可以轻松地定位页面上的元素,从而实现自动化测试的目的。同时,Robot Framework还提供了丰富的关键字库,可以帮助测试人员编写更加简洁、高效的测试脚本。 ### 回答2: Robot Framework 是一个基于 Python 简单易用的自动化测试框架。在自动化测试中,元素定位是一项非常重要的任务,因为测试中的所有动作都是基于元素完成的,如果不能准确地定位元素,就会导致测试失败。需要掌握 Robot Framework 的元素定位方式,才能编写出稳定可靠的测试用例。 在 Robot Framework 中,元素定位是通过使用 Selenium2Library 来完成的,此库提供了很多用于元素定位的关键词,如 Find Element、Find Elements、Element Should Be Visible、Element Should Contain 等。 下面列出几种常见的元素定位方式: 1.通过元素 ID 定位 在 HTML 标签中,每个元素都应该有唯一的 ID,可以使用 Find Element 这个关键词来通过 ID 定位元素: ``` *** Test Cases *** Search Google Open Browser https://www.google.com chrome Input Text id=search_box robot framework Click Button name=search_button ``` 2.通过元素名称定位 Name 是另一种常见的元素属性,通过 Find Element 关键词来通过 Name 定位元素: ``` *** Test Cases *** Search Google Open Browser https://www.google.com chrome Input Text name=q robot framework Click Button name=btnK ``` 3.通过 CSS 选择器定位 在 CSS 中,通过选择器来定义 HTML 元素,同样适用于元素定位。可以使用 Find Element 关键词来通过 CSS 选择器来定位元素: ``` *** Test Cases *** Search Google Open Browser https://www.google.com chrome Input Text css=input[name=q] robot framework Click Button css=input[name=btnK] ``` 4.通过 XPath 定位 XPath 是 XML Path Language 的缩写,是通过路径表达式来选择 xml 文档中的节点或元素,同样适用于 HTML 元素定位。可以使用 Find Element 关键词来通过 XPath定位元素: ``` *** Test Cases *** Search Google Open Browser https://www.google.com chrome Input Text xpath=//input[@name='q'] robot framework Click Button xpath=//input[@name='btnK'] ``` 以上只是几种常见的元素定位方式,在实际工作中可能还会有其他方式。需要我们根据具体情况选择最合适的定位方式。另外,元素定位不只是定位一个元素,更重要的是保证定位到的元素是唯一的、稳定的、高效的。 ### 回答3: Robot Framework是一种开源的自动化测试框架,支持多种引擎和库,包括Selenium WebDriver。在使用Selenium WebDriver进行网页自动化测试时,元素定位是非常重要的一步。 Robot Framework中有多种元素定位方法,包括xpath、CSS选择器、ID、名称、标签名、链接文本等。在使用这些定位方法时,需要使用Selenium2Library或者其他相关库进行支持。 具体的定位方法如下: 1. XPath定位 XPath是XML路径语言(XML Path Language)的缩写,是一种在XML文档中进行想复杂查询的语言。在Selenium中,可以使用XPath语法来快速定位元素。 例如,在Robot Framework中执行以下关键字可以通过XPath定位元素: `Click Element xpath=//div[@id='element-id']` 在这个例子中,`xpath=`表示使用XPath定位方法,`//div[@id='element-id']`是XPath的表达式,这个XPath表达式会匹配ID为`element-id`的`<div>`元素。 2. CSS选择器定位 CSS选择器是一种用于选择HTML元素的语言,它可以根据元素的类名、ID、属性等进行精确定位。 例如,使用以下关键字可以通过CSS选择器定位元素: `Click Element css=#element-id` 在这个例子中,`css=`表示使用CSS选择器定位方法,`#element-id`是选择器表达式,表示匹配`id`属性为`element-id`的元素。 3. ID定位 ID是HTML元素的唯一标识符,可以通过它来快速定位元素。 例如,使用以下关键字可以通过ID定位元素: `Click Element id=element-id` 在这个例子中,`id=`表示使用ID定位方法,`element-id`是元素的ID属性值。 4. 名称定位 有些元素可能没有ID属性,可以使用`name`属性来定位元素。 例如,使用以下关键字可以通过名称定位元素: `Click Element name=element-name` 在这个例子中,`name=`表示使用名称定位方法,`element-name`是元素的名称属性值。 5. 标签名定位 标签名定位方法是通过元素的标签名来进行定位。 例如,使用以下关键字可以通过标签名定位元素: `Click Element tag=div` 在这个例子中,`tag=`表示使用标签名定位方法,`div`是元素的标签名。 除了以上提到的定位方法,还有类名定位、链接文本定位等方法,都可以在Robot Framework中使用。根据实际情况,选择合适的定位方法来定位元素将能提高测试效率和查找问题的准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值