hello,大家好,好久没有分享robotframework技巧了,这次一次性都拿出来献宝,各位走过,路过,不要错过哟
一、重复执行一个case
重复执行单一关键字
某些情况下,循环结构可能只需要对一个关键字做执行次数的循环。
Robot Framework提供了一个关键字Repeat Keyword,只需指明循环次数和循环中的关键字即可。
可将需要重复执行的case写成关键字,使用Repeat Keyword重复执行。具体实现如下:
二、robot framework 随机生成字符串,数字,邮箱,手机号
说到随机生成,我们就会想到random函数
random模块重要函数
1 )、random() 返回0<=n<1之间的随机实数n;
2 )、choice(seq) 从序列seq中返回随机的元素;
3 )、getrandbits(n) 以长整型形式返回n个随机位;
4 )、shuffle(seq[, random]) 原地指定seq序列;
5 )、sample(seq, n) 从序列seq中选择n个随机且独立的元素;
random.random()函数是这个模块中最常用的方法了,它会生成一个随机的浮点数,范围是在0.0~1.0之间。
random.uniform()正好弥补了上面函数的不足,它可以设定浮点数的范围,一个是上限,一个是下限。
random.randint()随机生一个整数int类型,可以指定这个整数的范围,同样有上限和下限值,python random.randint。
random.choice()可以从任何序列,比如list列表中,选取一个随机的元素返回,可以用于字符串、列表、元组等。
random.shuffle()如果你想将一个序列中的元素,随机打乱的话可以用这个函数方法。
random.sample()可以从指定的序列中,随机的截取指定长度的片断,不作原地修改。
在RF中我们可以使用 关键字 Evaluate 。比喻随机生成手机号时:
说到随机生成,我们就会想到random函数
random模块重要函数
1 )、random() 返回0<=n<1之间的随机实数n;
2 )、choice(seq) 从序列seq中返回随机的元素;
3 )、getrandbits(n) 以长整型形式返回n个随机位;
4 )、shuffle(seq[, random]) 原地指定seq序列;
5 )、sample(seq, n) 从序列seq中选择n个随机且独立的元素;
random.random()函数是这个模块中最常用的方法了,它会生成一个随机的浮点数,范围是在0.0~1.0之间。
random.uniform()正好弥补了上面函数的不足,它可以设定浮点数的范围,一个是上限,一个是下限。
random.randint()随机生一个整数int类型,可以指定这个整数的范围,同样有上限和下限值,python random.randint。
random.choice()可以从任何序列,比如list列表中,选取一个随机的元素返回,可以用于字符串、列表、元组等。
random.shuffle()如果你想将一个序列中的元素,随机打乱的话可以用这个函数方法。
random.sample()可以从指定的序列中,随机的截取指定长度的片断,不作原地修改。
在RF中我们可以使用 关键字 Evaluate 。比喻随机生成手机号时:
生成随机字符串:
具体生成方式:"".join(random.sample(string.letters+string.digits,int(${20})))
三、robot framework 中对于有滚动条的页面中元素的处理
对于robot framework内 对滚动条
方法1、定位元素的时候,只要元素在此页面上,即使元素在有滚动条的页面部分RF也能定位到,但是如果要操作元素则需要先使用Focus关键字,然后再进行操作
方法1的rf代码:
Open Browser https://www.baidu.com/ gc
maximize browser window
execute javascript document.getElementById('kw').value = '廖雪峰'
click element xpath=.//*[@id='su']
sleep 1
focus xpath=.//*[@id='page']/a[1]/span[2]
click element xpath=.//*[@id='page']/a[1]/span[2]
方法2中robotframework
RF框架是不是一样用js呢?大家可以去尝试,反正我是各种尝试了,在google上也有各种版本,包括
1."Execute Javascript document.getElementByIdx_x('id').scrollTop=10000"
2."Execute Javascript var q=document.getElementByIdx_x('id').scrollTop=10000"
3."Execute Javascript js="var q=document.getElementByIdx_x('id').scrollTop=10000""
总之各种版本都试过了,然并卵,没一个行的。不过还好提供了一个Focus关键字,可以通过这个关键字定位到某个元素再操作
比如:Focus id=passwd
又来但是了,这个元素的locator不显示咋搞,通过大海捞针总算找到了
window.scrollBy(0, document.body.scrollHeight)
window.scrollTo(0, document.body.scrollHeight)
两种都可以啊,document.body.scrollHeight表示滑到最底部,如果要滑到什么位置,通过填写值来调试,比如
"Execute Javascript window.scrollTo(0, 50)"
注:本文部分内容摘抄来自网络,如有雷同纯属巧合,截图是自己实践的内容,可运行。