RobotFrameWork_web测试元素定位

定位方式id、name、class、xpath、css

id、name定位

这两个都简单直接就是id=或者name=
但是我在使用中好多都没有id和name所以直接用xpath和css了

例class中有空格:

<div class="el-dialog__footer">
    <dv class="clearfix">
        <button type="button" class="el-button fl el-button--default">
            <!---->
            <!---->
            <span>取消</span>
        </button>
        <button type="button" class="el-button el-button--success">
            <!---->
            <!---->
            <span>保存</span>
        </button>
        <button type="button" class="el-button el-button--primary">
            <!---->
            <!---->
            <span>发布</span>
        </button>
    </dv>
</div>

选择其中一个或多个同时定位,只要唯一就行

class定位

如果有多个类名,只能使用其中一个

    class=el-button #不唯一,定位出来有多个
    class=el-button--success
    class=el-button el-button--success #这种无法使用

xpath定位

绝对路径:

    xpath=/html/div/dv/button[@class="el-button el-button--success"]

如果属性都一样可以用下标,但是感觉不怎么靠谱,有可能你打开一个页面后再关闭了,可能动态插入一个未显示的元素使顺序变了就会定位失败

    xpath=/html/div/dv/button[2]

相对路径,button标签下的元素:

    #下面这中写法必须要对应属性完全相等且属性值不能打乱
    xpath=//button[@class="el-button el-button--success"]
    xpath=//button[@class="el-button--success el-button"] #定位不到,因为顺序错误
    xpath=//button[@class="el-button"]  #定位不到元素,例子中没有class属性只包含el-button的元素
    xpath=//button[@class="el-button--success"] #定位不到元素
    xpath=//button[contains(@class,"el-button--success")] #这中可以不完全包含,但顺序也不能错

可以越级

    xpath=//div//button[@class="el-button el-button--success"]

任意标签下的元素:

    xpath=//*[@class="el-button el-button--success"]

通过文本定位:

    xpath=//button[text()="保存"]
    xpath=//button[contains(text(),"保")]

多个属性

    xpath=//button[text()="保存" and @class="el-button el-button--success"]
    xpath=//button[text()="保存" or @class="el-button el-button--success"]

xpath轴

轴名称描述
ancestor选取当前节点的所有先辈(父、祖父等)
ancestor-or-self选取当前节点的所有先辈(父、祖父等)以及当前节点本身
attribute选取当前节点的所有属性
child选区当前节点的所有子元素
descendant选取当前节点的所有后代元素(子、孙等)
descendant-or-self选取当前节点的所有后代元素(子、孙等)以及当前节点本身
following选取当前节点的结束标签之后的所有节点
namespace选取当前节点的所有命名空间节点
parent选取当前节点的父节点
preceding选取文档中当前节点的开始标签之前的所有节点
preceding-sibling选取当前节点之前的所有同级节点
self选取当前节点

例:

    #定位取消按钮
    xpath=//button[text()="保存"]/ancestor::div/dv/button[1]
    xpath=//button[text()="保存"]/ancestor::dv/button[1]
    xpath=//button[text()="保存"]/parent::dv/button[1]

css定位

选择器例子例子描述
.class.intro选择 class=“intro” 的所有元素。
#id#firstname选择 id=“firstname” 的所有元素。
**选择所有元素。
elementp选择所有 <p> 元素。
element,elementdiv,p选择所有 <div> 元素和所有 <p> 元素。
element elementdiv p选择 <div> 元素内部的所有 <p> 元素。
element>elementdiv>p选择父元素为 <div> 元素的所有 <p> 元素。
element+elementdiv+p选择紧接在 <div> 元素之后的所有 <p> 元素。
[attribute][target]选择带有 target 属性所有元素。
[attribute=value][target=_blank]选择 target="_blank" 的所有元素。
[attribute~=value][title~=flower]选择 title 属性包含单词 “flower” 的所有元素。
[attribute|=value][lang|=en]选择 lang 属性值以 “en” 开头的所有元素。

类名有空格的可将空格换成.,也可以只取一个,唯一就行

    css=.el-button.el-button--success #这种可以打乱属性值的顺序
    css=.el-button--success.el-button #这种也能正常定位
    #上面这个可能出问题,页面搜索是绝对匹配可能唯一,使用时只要同时包含这两个类名就会匹配出来,例如下面这个元素也能找到
    “el-button tree-btn-plus el-tooltip el-button--success el-button--mini is-plain is-circle”
    css=.el-button #会定位到多个
    css=.el-button--success

获取属性
获取文本:

    ${page}	Get Element Attribute	xpath=//*[@class="el-button el-button--success"]	textContent

获取class:

    ${activepage}	Get Element Attribute	xpath=//*[@class="el-button el-button--success"]	class
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值