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 ...
随机推荐
- yum方式安装mono
https://blog.csdn.net/qq_21153619/article/details/81459359 这样应该比较简单 yum方式按照mono rpm --import "h ...
- 万能数据库的使用【DbVisualizer软件,连接不同类型的数据库】
1.打开指定的软件[万能连接数据库的软件],如图所示: 2.双击“此软件”,然后会显示出该软件的主页面,如图所示: 3.点击"任一个图标",会出现如下图所示的一个弹框,意思是:创建 ...
- 第二章 impala基础使用
第二章 impala基本使用 1.impala的使用 1.1.impala-shell语法 1.1.1.impala-shell的外部命令参数语法 不需要进入到impala-shell交互命令行当中即 ...
- Netty怎么切换三种I/O模式和源码解释
参考文献:极客时间傅健老师的<Netty源码剖析与实战>Talk is cheap.show me the code! 三种I/O模式 BIO:Block I/O,即同步并阻塞的IO:BI ...
- 老贾的第二天(git常用命令)
git init #创建一个本地的仓库 **git add test.txt #指定文件添加 ***git add . #当前文件夹下所有内容 添加到暂存区 ***git commit -m &quo ...
- python基础(十二)--模块
模块的导入方式 import os 调用时os.rename from os import rename #只导入的特定功能 调用时rename() from asynico.events impo ...
- 简单说说utf-8编码格式
提到utf-8,脑海里立马出现了Unicode.那什么是utf-8, 什么是Unicode呢?简要说一下. Unicode(Universal Multiple-Octet Coded Charact ...
- element-ui table float类型数据排序失败
背景:对于16.88这样的数据,点击表头排序无效,仍然是乱序 解决办法:自定义排序方法,:sortable="true" :sort-mothod="xxxx" ...
- Eclipse怎么改变@author 姓名
1 点击windows 然后选择 点击进去选择搜索code Templates 点击选择出现下面的页面 点开comments,里面有给方法,变量 ,类等加注释设置的模板 如:点击Methods ...
- 微信小程序上传图片及本地测试
前端(.wxml) <view id="view1"> <view id="btns"> <image id="ima1 ...