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'\u6cb3\u5317\u77012'}, {"xxx": "bbb"} ]
取出u'\u6cb3\u5317\u77012', 然后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_log\smoke_test_log -r E:\Robot_log\smoke_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

RF新手常见问题总结的更多相关文章

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

    1. 经常有人问这个元素找不到,一般先排除这两个地方,再自己找找A:是否等待了足够的时间让元素加载 (增加sleep xx, wait Until xxx)B:  仔细查查,这个元素是否进入到另一个f ...

  2. Java程序的编写与执行、Java新手常见问题及解决方法|乐字节Java学习

    今天,我们来写一段Java程序.然后看看Java程序是如何执行的,以及Java新手小白遇到的问题和解决办法.   一.HelloWorld的编写 ① 新建一个XXX.java (文件的扩展名显示出来) ...

  3. ROS 新手常见问题汇总

    版权声明:本文为博主原创文章,转载请标明出处: http://www.cnblogs.com/liu-fa/p/5772469.html 该博文致力于汇总ROS常见问题及解答,让更多的人少走弯路,避免 ...

  4. JEECG 新手常见问题大全,入门必读

    大家还有什么问题,请跟帖,谢谢支持..  JEECG常见问题大全 原文地址:http://t.cn/RvYsEF61. jeecg数据库脚本问题   注意:jeecg3.5.2之前版本,不需要数据库脚 ...

  5. React-Native hello word 搭建及新手常见问题

    参考文档:http://reactnative.cn/docs/0.20/getting-started.html cmd 打开 敲入 1. npm config set registry https ...

  6. Bootstrap新手常见问题

    题记 bootstrap这个开源的UI库确实很方便,用了两日,觉得不错,但也有些问题比较头疼! 主题 1.怎么使用?怎么定制?下面是一个范例,修改了navbar的颜色,重新设置了select控件的默认 ...

  7. python 新手常见问题

    1.python 三元运算符 无,用 if else 2.python 设置代码缩进 全选..然后按tab 3.记录程序运行时间 import time time_start=time.time() ...

  8. Linux新手常见问题

    yum与apt的区别 参考:https://blog.csdn.net/qq_26182553/article/details/79869666 ubuntu下su: Authentication f ...

  9. Android新手常见问题(一)

    [1]AAPT2 error: check logs for details File->Settings->Build->Gradle一看path里有中文 最根本的原因是因为use ...

随机推荐

  1. warning C4828问题的处理

    在QT的一些项目中,有时候会出现如下警告 warning C4828: 文件包含在偏移 0x215 处开始的字符,该字符在当前源字符集中无效(代码页 65001). (编译源文件 XXXXXXcpp) ...

  2. python-作用域解析

    局部作用域和全局作用域:局部作用域不能修改全局作用域的变量 count = 10 def outer(): #global count 局部变量改成全局变量,global声明一下即可.就可以修改了. ...

  3. node中 path.resolve 和path.join的区别

    path.resolve('a','b','c') 返回a/b/c path.resolve理论上总是以前一个路径作为基础路径,然后匹配当前路径,当前路径会有三种情况根目录(/),当前目录(./),上 ...

  4. C++之标准库map

    目录 1.成员函数 2.元素访问 3.迭代器Iterators(C++ 11) 4.容量Capacity 5.修改函数(C++ 11和C++ 17) 6.查找表Lookup 7.观察Observers ...

  5. JSP 标准标签库JSTL

    JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签. 除了这些,它还提供 ...

  6. Dynamic CRM工作流流程实战

    前言在研究了MSCRM中插件的使用之后,不可避免需要研究工作流,工作流在各种营销系统中都举足轻重. 关于工作流功能:使用工作流可在后台实现业务流程自动化.类别:分为后台工作流(异步)和实时工作流(同步 ...

  7. 数据结构与算法之PHP排序算法(桶排序)

    一.基本思想 桶排序是将待排序的数据分割成许多buckets,然后每个bucket各自排序,或用不同的排序算法,或者递归的使用bucket sort算法.也是典型的分而治之(divide-and-co ...

  8. git连接不上远程仓库---visualstudio提交代码报错:no upstream configured for branch 'master'

    1,新建文件夹,在文件下下鼠标右键git bush--->git init,初始化仓库: 2,设置gitthub仓库地址:git remote add origin https://github ...

  9. javascript高级程序设计第3版——第4章 变量作用域以及内存

  10. Octoroit OS VB操作系统简单介绍

    官方地址:http://octoroit.weebly.com/ 首先需要指明的是 :Octoroit OS 并不是一个真正意义上的操作系统,它是运行在windows 之上的 窗口系统,一个Visua ...