【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

posted @ 2015-11-09 22:28  炒豆芽儿  阅读(1016)  评论(0编辑  收藏  举报