RobotFramework 截取中文中的數字比較時長

先看下需求,這個報表中有個時長,須要對昨日和前日的時長進行比較,咱們獲取到的元素是例如「9分43秒」這樣的格式python

1.首先要講中文中的分和秒分別提取出來chrome

提取python代碼以下:canvas

import re
str = '11分1秒'
list = re.findall(r'\d+', str)
print(list)app

執行結果['11', '1']工具

能夠看到,此段代碼能夠講分、秒組裝到一個list中lua

2.Python按照索引訪問list就能夠活得分和秒的具體值,進而計算出總共的秒數spa

import re
str = '11分1秒'
list = re.findall(r'\d+', str)
print(list[0])
print(list[1])blog

s=list[0]*60+list[1]索引

 

好了,代碼知道怎麼寫了,那麼咱們把它用到工具裏面去,這裏有兩種方法get

第一種:直接在工具中使用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 自定義關鍵字(庫文件)

相關文章
相關標籤/搜索