RobotFramework 截取中文中的数字比较时长
先看下需求,这个报表中有个时长,需要对昨日和前日的时长进行比较,我们获取到的元素是例如“9分43秒”这样的格式
1.首先要讲中文中的分和秒分别提取出来
提取python代码如下:
import re
str = '11分1秒'
list = re.findall(r'\d+', str)
print(list)
执行结果['11', '1']
可以看到,此段代码可以讲分、秒组装到一个list中
2.Python按照索引访问list就可以活得分和秒的具体值,进而计算出总共的秒数
import re
str = '11分1秒'
list = re.findall(r'\d+', str)
print(list[0])
print(list[1])
s=list[0]*60+list[1]
好了,代码知道怎么写了,那么我们把它用到工具里面去,这里有两种方法
第一种:直接在工具中使用python代码
1.首先引入re
Library re
2.截取分和秒
#提取分、秒
${Yesterday_Minutes} Evaluate re.findall(r'\\d+', '${Yesterday_Averagevisit_Time}')[0] re
${Yesterday_Seconds} Evaluate re.findall(r'\\d+', '${Yesterday_Averagevisit_Time}')[1] re
#转换成秒
${Seconds_1} Evaluate ${Yesterday_Minutes}*60+${Yesterday_Seconds}
注意此处需要用\\可以避免转义,一个\的时候,在使用该工具时被转义了,会出现如下错误
正确的写法
整体代码:
*** Settings ***
Library Selenium2Library
Library collections
Library re
*** Test Cases ***
001-浙江新闻分析图表分析结果
Open Browser http://10.200.70.207/#/home chrome
Maximize Browser Window
Input Text xpath=//*[@id="loginKey"] wsjun
Input Text xpath=//*[@id="password"] xcep7879
Click Button xpath=//*[@id="submitLoginBtn"]
Sleep 2
Click Element xpath=//*[@id="app"]/div[1]/div[2]/ul/li[2]
Sleep 2
Click Element xpath=//*[@id="app"]/div[2]/div/div[1]/div/div/div[1]/div/div/div[1]
Sleep 2
Input Text xpath=//*[@id="app"]/div[2]/div/div[1]/div/div/div[1]/div/div/div[2]/input 浙江新闻
Sleep 2
Click Element xpath=//*[@id="app"]/div[2]/div/div[1]/div/div/div[1]/div/div/div[2]/div/span/div[1]/ul/li/div/p[1]
Sleep 2
#点击访问分析
Click Element xpath=//*[@id="app"]/div[2]/div/div[1]/div/div/div[2]/ul/div[6]/li/div
Sleep 2
#点击页面分析
Click Element xpath=//*[@id="app"]/div[2]/div/div[1]/div/div/div[2]/ul/div[6]/li/ul/li/ul/li[1]/a
sleep 2
#点击分析图表
Click Element xpath=//*[@id="app"]/div[2]/div/div[2]/div/div/div/div/div[4]/div/div[2]/div[2]/div[1]/div/div[1]/div/div[2]
Wait Until Element Is Visible xpath=//*[@id="app"]/div[2]/div/div[2]/div/div/div/div/div[4]/div/div[2]/div[1]/div/div/button
sleep 5
#鼠标点击昨日坐标位置
Click Element At Coordinates xpath=//*[@id="lineandbarcharts"]/div[1]/canvas 400 50
sleep 5
#获取昨日浏览次数、用户数、次均访问时长
${Yesterday_Browse_Count} get Text xpath=//*[@id="lineandbarcharts"]/div[2]/div[1]/div
sleep 2
${Yesterday_User_Count} get Text xpath=//*[@id="lineandbarcharts"]/div[2]/div[2]/div
sleep 2
${Yesterday_Averagevisit_Time} get Text xpath=//*[@id="lineandbarcharts"]/div[2]/div[3]/div
sleep 5
#鼠标点击前日坐标位置
Click Element At Coordinates xpath=//*[@id="lineandbarcharts"]/div[1]/canvas 250 50
sleep 5
#获取前日日浏览次数、用户数、次均访问时长
${Last_Browse_Count} get Text xpath=//*[@id="lineandbarcharts"]/div[2]/div[1]/div
sleep 2
${Last_User_Count} get Text xpath=//*[@id="lineandbarcharts"]/div[2]/div[2]/div
sleep 2
${Last_Averagevisit_Time} get Text xpath=//*[@id="lineandbarcharts"]/div[2]/div[3]/div
sleep 2
#昨日指标和前日指标对比
#浏览次数对比
${Browse_Count_ratio} Evaluate ${Yesterday_Browse_Count}/${Last_Browse_Count}
${Browse_Count_ratio_float} Evaluate float(${Browse_Count_ratio} )
Should Be True 0.7<${Browse_Count_ratio_float}<1.3
sleep 2
#用户数对比
${User_Count_ratio} Evaluate ${Yesterday_User_Count}/${Last_User_Count}
${User_Count_ratio_float} Evaluate float(${User_Count_ratio} )
Should Be True 0.7<${User_Count_ratio_float}<1.3
sleep 2
#次均访问拆分成分、秒
${Yesterday_Minutes} Evaluate re.findall(r'\\d+', '${Yesterday_Averagevisit_Time}')[0] re
${Yesterday_Seconds} Evaluate re.findall(r'\\d+', '${Yesterday_Averagevisit_Time}')[1] re
${Last_Minutes} Evaluate re.findall(r'\\d+', '${Last_Averagevisit_Time}')[0] re
${Last_Seconds} Evaluate re.findall(r'\\d+', '${Last_Averagevisit_Time}')[1] re
#时长统一转换成秒数
${Seconds_1} Evaluate ${Yesterday_Minutes}*60+${Yesterday_Seconds}
${Seconds_2} Evaluate ${Last_Minutes}*60+${Last_Seconds}
#次均访问时长对比
${Seconds_ratio} Evaluate ${Seconds_1}/${Seconds_2}
${Seconds_ratio_float} Evaluate float(${Seconds_ratio} )
Should Be True 0.7<${Seconds_ratio_float}<1.3
第二种是导入RobotFramework 自定义关键字(库文件)
RobotFramework 截取中文中的数字比较时长的更多相关文章
- FFMPEG中关于ts流的时长估计的实现(转)
最近在做H.265 编码,原本只是做编码器的实现,但客户项目涉及到ts的封装,搞得我不得不配合了解点ts方面的东西.下面技术文档不错,转一下. ts流中的时间估计 我们知道ts流中是没有时间信息的,我 ...
- FFMPEG中关于ts流的时长估计的实现
ts流中的时间估计 我们知道ts流中是没有时间信息的,我门来看看ffmpeg是怎么估计其duration的 方法1.通过pts来估计 static void estimate_timings_from ...
- PHP如何获取视频总时长与码率等信息
利用PHP中的FFmpeg读取视频播放时长与码率等信息 function getVideoInfo($file) { define('FFMPEG_PATH', '/usr/local/ff ...
- 如何解决FormView中实现DropDownList连动选择时出现 "Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用" 的错误
原文:如何解决FormView中实现DropDownList连动选择时出现 "Eval().XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用" 的 ...
- SAP中数字计算时溢出捕获
CLEAR:g_vol. CATCH SYSTEM-EXCEPTIONS arithmetic_errors = OTHERS = . g_vol = gwa_input-laeng * gwa_in ...
- 学习PHP中国际化地数字格式处理
不知道大家有没有了解过,对于数字格式来说,西方国家会以三位为一个进位,使用逗号来分隔.比如,12345678,用标准的格式来表示的话就是 12,345,678 .不过我们中文其实并不会有这样的分隔符, ...
- 关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其他位数)
关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其... 方法一:使用to_char的fm格式,即: to_char(round(data.amount,2),'FM9999 ...
- C/C++面试之算法系列--去除数组中的重复数字
去除数组中的重复数字 Sailor_forever sailing_9806@163.com 转载请注明 http://blog.csdn.net/sailor_8318/archive/2008/ ...
- MySQL中字符串与数字比较的坑
公司项目代码中,某枚举字段数据库表中类型是char(1),在代码中,误以为是TINYINT,所以用数字筛选,后来发现结果不对.发现了一个现象,用数字0筛选会把所有的记录给筛选出来. 经过排查发现是在M ...
随机推荐
- 【转帖】 解开龙芯与mips4000的关系
-- 苏联给的套件,我们只要把电子管插上就好. -- 千万次机器,不晓得来源 DJS-130系列,16位小型机,仿造美国NOVA DJS-180系列,超级小型机,仿造美国DEC VAX, 能跑DEC的 ...
- SQL2000中文版打不上SP4提示用户验证没有通过
https://jingyan.baidu.com/article/7f41ececf24841593d095cd8.html 解决方法: 在安装SQL Server SP4,有时候会出现:无论用wi ...
- PHP以星号隐藏用户名手机号码和邮箱实例
一款简单实用的PHP以星号隐藏用户名手机号码和邮箱实例,将用户的一些文字信息隐藏一部分用星号代替,以便于保护用户隐私. 隐藏函数: function hideStar($str) { //用户名.邮箱 ...
- Linux目录结构解释
Linux的常用命令 cp: 用于文件复制的命令. cp file_1 file_2 copy_position -v: 复制的详细过程. -r: 复制目录. mv: 文件移动或文件重命名. mv f ...
- iproute2使用及网络名称空间
创建一个网络名称空间: 相当于创建一个完全隔离的新网络环境,这个环境包括一个独立的网卡空间,路由表,ARP表,ip地址表,iptables,ebtables,等等.总之,与网络有关的组件都是独立的. ...
- JS 装饰器,一篇就够
更多文章,请在Github blog查看 在 ES6 中增加了对类对象的相关定义和操作(比如 class 和 extends ),这就使得我们在多个不同类之间共享或者扩展一些方法或者行为的时候,变得并 ...
- python设计购物车
设计购物车 一需求: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提 ...
- Eclipse怎么升级版本
java工程上右键——选择Properties——Project Faces——右边java项选择相应的版本就OK了
- luogu题解 UVA11992 【Fast Matrix Operations】
题目链接: https://www.luogu.org/problemnew/show/UVA11992 题目大意: 一个r*c的矩阵,一开始元素都是0,然后给你m次三种操作,分别是将一个子矩阵中所有 ...
- Navicat for Mysql报错1251连接不成功Mysql
第一步:打开Command Line Client 看清楚不是cmd,是在mysql的目录下,你会发现有2个一模一样其实哪个都行 第二步:输入mysql密码回车 就是安装mysql时设置的密 ...