zoukankan      html  css  js  c++  java
  • 【RobotFromwork + Selenium + Xpath 工作笔记】

    RFS自动化测试心得:

        1、RIDE编辑器,快速注释和取消注释:

            按组合键Ctrl + 3,快速注释,会在代码行前加comment

            按组合键Ctrl + 4,取消注释

        2、log打印日志:有时候日志不会打印变量中间值,不方便定位问题,可使用 log ${temp}打印。

        3、遇到获取attribute(属性)中带有不可知数目空格时,用string.split ${temp} ${SPECE}分割,日志可打印出列表中每一个空格。

        4、字符串截取:用fetch from left/right 关键字,比如:${temp} FetchFromLeft ‘123  ’  ${SPECE}会得到‘123’。

        5、☆有时候获取html元素中title和value值时,会遇到编码不严谨,@value中字符串中有多个空格,比如‘123  ’(123后面2个空格),但是RIDE编辑器中每个表格处理空格可能会合并,如果你get attribute 了value属性,有2个空格,但是Should Be Equal 时输入123空格空格,可能会失败(工作环境用的老版本,不知道新的怎样),空格不匹配,日志不太能看出来。

            解决办法有3个:

                1)用${SPECE}占位表示空格,可乘以number,表示多个空格;

                    Should Be Equal ${temp} 123${SPECE*2}

                2)获取属性后split或fetch去掉空格再对比;

                3)用xpath取属性时,去掉空格

                    fn:normalize-space(string)

                    fn:normalize-space()

                   删除指定字符串的开头和结尾的空白,并把内部的所有空白序列替换为一个,然后返回结果。如果没

                   有string 参数,则处理当前节点。

                   例子:normalize-space(' The   XML ')

                   结果:'The XML'

                4)☆//div[contains(@name,‘123’)]用contains函数,推荐用这个

          6、preceding-sibling搜索当前节点之前的所有同级别节点,类似:following-sibling搜索当前节点之后的所有同级别节点

               用法://button[@value='总容量']/preceding-sibling::tr[text()='硬盘'],自动化大多数情况是定位特定一个节点,注意跟::后面跟具体属性元素定位。

          7、${SPECE}和${EMPTY},空格和空:

          空格前面讲了,${EMPTY}可以用在<tr value="" title="123">这种属性值为空的情况,这时xpath用get attribute取属性//tr[@title='123']@value,Should Be Equal ${temp} ${EMPTY}

          8、列表和字典的关键字

           ${list} Create List

           Append to list、Get From List

           ${dict} Create Dictionary

           Set To Dictionary、Get From Dictionary

          9、☆从GaussDB数据库中Query数据,返回的是tuple,((123L,’admin’), (22L, ’value’))

           取值方式:${tuple[0][1]} = admin    注意和list不一样

         10、RIDE中写Windows路径用双斜杠(\)

         ${path} Set Variable D:\xxx\xxx.tgz

         11、Run Keyword And Return Status 运行关键字返回结果,有些关键字不返回结果,可用这个判断

         ${result} 分割 Run Keyword And Return Status 分割Should Contain ${str} close

          判断str中是否包含close,把结果True或False的Boolean值返回。(注意,用了return status失败后不会中断程序运行,仅仅返回False

          12、Wait Until Page Loaded 等待页面加载,已完成加载再执行会报错,我看最新版的好像没有这个关键字了

          13、 //table[@id=’g1’]//tr[td[@title=’3i’]][1] xpath匹配多个元素,选择其中一个,可以这样写

          14、多重循环

                 :For ${i} IN/IN RANGE 5

                 XXX关键字(内嵌循环)

          15、多条件语句,RUN KEYWORD IF 记得Else If/Else至少首字母E要大写,不然是错的,经常犯这个错。

          16、取值方式:

                1)一种<input>标签,无法从属性中获取值,用Get Value

                2)第二种<div name =’xxx’ value=’123’>用Get Attribute xpath

                   //div[@name=’xxx’]@value

          17、有些特殊界面,需要拖动界面元素用Drag and drop

  • 相关阅读:
    ICE-3.5.1-错误记录
    windows下qtcreator添加ICE库文件
    LINUX下QT与C语言通过网卡名获取网卡IP与MAC
    Apache部署Django+Vue
    三次握手和四次挥手面试常问
    配置mysql时报错
    nosql的介绍以及和关系型数据库的区别
    redis的基本操作
    在Centos安装redis-孙志奇
    git的使用
  • 原文地址:https://www.cnblogs.com/chen-qilin/p/4951430.html
Copyright © 2011-2022 走看看