zoukankan      html  css  js  c++  java
  • RF新手常见问题总结--(基础篇)

    RF新手常见问题总结--(基础篇)

           学RF快一年了,经常碰到一些问题,有些同学也经常问到,这里总结一些,期望有人后续再补充,主要是响应群里--雪霁大神的号召,技术共享。废话少说,直接上干货了。

    1. 经常有人问这个元素找不到,一般先排除这两个地方,再自己找找
    A:是否等待了足够的时间让元素加载 (增加sleep xx, wait Until xxx)
    B:  仔细查查,这个元素是否进入到另一个frame了 (select frame xxx)
    上面两点都确定了还不行,那改变下xpath的方法

    下面的方法掌握了,基本上没有找不到的。
    C:xpath = //div[text()='web上显示的文本']  根据文本匹配
    还有一文本前后可能有空格,特殊字符,可以用部分文本来匹配
    D:xpath = //div[contains(text(),'部分文本')]
    E:还有找父节点的方法: ../ 这个自己去看看,会有收获的。
     
    2. 有同学问:如何判断这个元素disable,或者置灰了
    用F12仔细看看元素灰了和没灰,disable和enable的区别,基本都能看到有的属性发生了改变, class的值多了或者少了checked, 或者disable等
    一般这种我都用到 get element attribute关键字,如下获取class的属性
    ${class_value}  Get Element Attribute xpath=//div[@id=’123’]@class
    你再判断 ${class_value}是否包含 disable,或者 check就可以得到其状态了
     
    3. 有人说:我这个log怎么是乱码
     [ {‘dst': u'u6cb3u5317u77012'}, {"xxx": "bbb"} ]
    取出u'u6cb3u5317u77012', 然后log就是中文了
     
    4. 还有人问,我怎么没这个Get from Dictionary关键字,
    其实是你没加载这些库,我建议:新手必须加载的库
    BuiltIn             RF系统内部的,最基础的Run keyword xxx都在这里
    String              字符串处理的库,文本处理必备
    Collections        字典,列表的库,必备
    Selenium2Library     web测试入门库
    OperatingSystem     操作windows系统命令,处理文件时要用到
    AutoItLibrary     鼠标、键盘操作windows控件用这个
     
     5. 还有人问我的数据库获取的怎么是乱码 ????? 一堆问号啥的
    请在connect数据库时增加 charset=utf8 (我没弄过数据库的自动化,这个是看雪霁大神回答他人后记录下来的,还有其他可能的乱码,我不知道,请后续补充)
     
    6. 还有人问,怎么设置全局变量
    我们就谈谈RF变量的内部变量
    ${aaa}  Set Variable haha        这个${aaa}是普通变量,就本case能用
    Set suite variable  ${aaa}     这个${aaa}就是测试suite变量
    set global variable  ${aaa}   全局变量${aaa},在哪都能传
    Set Test Variable   ${aaa}   (这个我还没用到过)
     
    7. 有人说,我的日志输出想改个路径
    在运行界面:Arguments右边输入框这样写  -l E:Robot_logsmoke_test_log -r E:Robot_logsmoke_test_report
    -l 是log的路径参数
    -r 是report的路径参数
    如果还有其他执行脚本的需求,请命令行pybot -? 自己看看,都在这里
     
    8. 还有人问:我的脚本assert,我还想继续执行,不想停下来
    用这个几个,保证让你停不下来的节奏。。。
     Run Keyword And Return Status,
    Run Keyword And Ignore Error
    Run Keyword And Continue on Failure
     
    9. 有新手经常问,我的浏览器怎么打不开
    这种有提示:你的chromedriver没找到路径,我就不说了。
    如果没这种提示的,基本就是你的ride,或者robotframework太旧了,还有就是你的浏览器版本太高了,
    这种问题在道长经常在群里回答,我只是作为记录了,道长别找我要版权费哈。。。
     
    10. 新手常见错误:If…  Else if… Else 怎么不行
    这个确实是rf的坑,平时keyword都没区分大小写,但是这套IF语句一定要大写。
    还有比较的时候,${aaa} == ${bbb}报语法错误,
    因为你比较的时候没这样 ‘${aaa}’ == ‘${bbb}’  (请加上英文的单引号)
     
    11. 还有,我导入库怎么是红色的
    第一:请确定你是用pip在线安装的,其他下载文件安装很可能没安装好。
    第二:请注意库命的大小写
    第三,如果是你自己的自定义库红色,先运行下,看提示log,报错误在哪行,自己搞定语法错误
     
    12. 这个弹出框怎么处理
    一般处理弹窗先增加等待,容错处理
    先用这个试试:Dismiss Alert
    不行再用下面的
    Choose Ok On Next Confirmation
    Confirm action
    顺便:get alert message --- 获取弹出窗的信息
    13. 需要验证提示信息,(提示输入非法等等)用到鼠标悬停
    Mouse Over xxx这样鼠标就挺在那了
    马上去获取提示信息,get text  xxx
     
    14. 日期控件怎么办,是否有关键字
    RF没有日期控件的关键字,(我们是自己封装的)。
    最简单的用js来执行 (我也不会js,找你们开发吧)
     
    15. 这个下拉框我怎么选不上。
    在浏览器F12下拉框
     
    【正规的长这样 <option xxx> ,像下面这么用:
    Select from List xpath=//xxx/xxx  灯姐
    Selct from List by value  xxxx   萤草奶妈
     
    非正规的下拉一般长这样: <div xxxx >,
    你就用下面方式
    Click Element xpath = //xxx/div[2]   ##先点下拉按钮
    Click Element xpath=//xxx/xxx//div[text()='坦克程咬金']    ##再点下拉框中的元素

    16. 那种2选1的按钮怎么做
    官方称为Radio Button,在RF的selenium库中F5搜索 radio就有了
    Select radio button  xxx   男

    17. 多选按钮怎么做
    Select checkbox

    18. Click Button点不到元素
    可以尝试下: click element
     
    19. 没有这样的关键字咋办
    没错,在你没有办法的时候,RF找来了他的经纪人“Python老宋”来帮忙。
    Evaluate 后面接你的python代码就可以了。
     
    20. 有人问:为什么我的IF … ELSE 跑到一行了,写的时候我是分开了的。
    这个不用担心,RF就是这样自动的弄到一行了,不影响的。
     
    21. 有人问:For循环怎么写?
    就下面这样写,注意for前面有个冒号
    :For  ${i}  IN RANGE  10
         Log  ${i} --- for循环内的语句在ride中前面要空一格
         Log  循环可以多行
     
    22. 我写了IF语句,RF中如果让他执行多行关键字
    对不起,rf的Run Keyword If语句后面不能像下面这样:
    Run Keyword If   ‘xxx’ == ‘xxx’  语句1
                                语句2  //这样是不行的
                                语句3  //这样是不行的
    下面这样是可以的
    Run Keyword If   ‘xxx’ == ‘xxx’  语句1
    Run Keyword If   ‘xxx’ == ‘xxx’  语句2 
    Run Keyword If   ‘xxx’ == ‘xxx’  语句3
    上面那样太麻烦,我有很多语句那咋办?
    恭喜你,那只能自己封装关键字了,正好练习下封装技能!哈哈。。。
     
    【特别说明】
      因为文档是在word中写了copy来的,其中编码的地方如果是引号,请全部用英文符合
     转自:http://robotframework.net/?/article/89

  • 相关阅读:
    虚拟机下linux系统安装spark一个小提示
    寒假学习记录第七天
    寒假学习记录第六天
    寒假学习记录第五天
    快捷键
    yum安装软件内容
    常见问题处理
    linux目录详解
    linux三剑客
    linux符号与正则表达式
  • 原文地址:https://www.cnblogs.com/smarter/p/9935062.html
Copyright © 2011-2022 走看看