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. ERROR:scala:Error:Object scala.runtime in compiler mirror not found

    我的项目是sbt项目,今天早晨的时候还好好的,结果中午吃了个饭回来就特么的编译就报错了,真是闹心 报错截图: 解决方案: 删除idea的缓存文件 然后重新启动idea,重新下载jia包,在进行编译,就 ...

  2. Inquirer.js

    一个使用界面进行交互的命令行集合 4.0以上的版本只支持node 6以上的,node4请使用3.x 目标和理念(hilosophy) 努力去做一个容易的 嵌入式的(embeddable) 和优美的命令 ...

  3. cmd命令行结果保存到txt里,屏幕显示一行就保存一行到txt

    #coding:utf-8 """ 1.重定向print 2.python与cmd命令 """ import sys import os i ...

  4. 【实战问题】【3】iPhone无法播放video标签中的视频

    问题:视频都是MP4格式,视频可以在手机上正常播放.video标签中的视频在安卓点击可以播放,但在iPhone无法播放 解决方案: 1,视频编码格式问题,具体iPhone手机支持的是哪些格式可见官方的 ...

  5. 还能不能愉快地起一个web服务啦?——1st Step!白话http和代码交互的那点儿事儿~

    学写python的时候,我们多多少少都接触到了web程序,然而你有没有想过,当浏览器发送了一个http请求时,等待接收这个请求的后端代码是一种什么样的思想感情? 就像下面这张图里画的一样,后端也许是一 ...

  6. Envoy 源码分析--network

    目录 Envoy 源码分析--network address Instance DNS cidr socket Option Socket ListenSocket ConnectionSocket ...

  7. Loadrunner11中webservice协议脚本总结

    Loadrunner11中webservice协议脚本总结 简介     webservices协议是建立可交互操作的分布式应用程序的新平台,它通过一系列的标准和协议来保证程序之间的动态连接,其中最基 ...

  8. JS 超类和子类

    此篇由别的大神的博客与<javascript高级程序设计>一书整理而来 原博客地址:https://hyj1254.iteye.com/blog/628555 看到javascript高级 ...

  9. mysql8.0修改密码无效的问题

    今天安装了mysql8,但是在修改默认密码的时候发现一直无法成功,下面给出解决的办法. 一直报ERROR 1064 (42000): You have an error in your SQL syn ...

  10. Jenkins结合shell脚本实现(gitLab/gitHub)前端项目自动打包部署服务器

    原始发布部署: 石器时代的我们,先是本地打包好项目,在去服务器上把原来的文件删了,然后回到本地copy到服务器: 这操看起来简单,实际部署的人就知道多烦了,假如来几个项目都要重新发布:那就爽了: 今天 ...