This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
dongxiaoyan-tsg-autotest/02-Keyword/tsg_ui/setting/Settings.robot

2559 lines
138 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

*** Settings ***
Library Selenium2Library
Library ../../../04-CustomLibrary/Custometest/Common.py
Library DatabaseLibrary
Library ../../../04-CustomLibrary/Custometest/StringManipulation.py
*** Keywords ***
click
[Arguments] ${element}
Click Element ${element}
input
[Arguments] ${element} ${text}
Input Text ${element} ${text}
ui-logout
Close Browser
ui-login
Open Browser http://192.168.40.120 Chrome
input xpath=//*[@id="app"]/div/div[2]/div/div[2]/div/input lyf
input xpath=//*[@id="app"]/div/div[2]/div/div[3]/div/input 111111
click xpath=//*[@id="app"]/div/div[2]/div/div[4]/button
Settings-Search
[Arguments] ${value} ${search}
sleep 2
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[1]/span/div/div/div[2]/div/div/div[1]/input #点击搜索框
sleep 1
#判断是使用name搜索还是id搜索
run keyword if "${search}"=="name" run keywords sleep 1
... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[3]
... AND input xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${value}
... ELSE IF "${search}"=="id" run keywords sleep 1
... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[2]
... AND input xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${value}
... ELSE IF "${search}"=="Issuer" run keywords sleep 1
... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[4]
... AND input xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${value}
... ELSE IF "${search}"=="CommonName" run keywords sleep 1
... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[5]
... AND input xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${value}
... ELSE IF "${search}"=="CertificateFingerprint" run keywords sleep 1
... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[6]
... AND input xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${value}
... ELSE IF "${search}"=="Source Website" run keywords sleep 1
... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[3]
... AND input xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${value}
... ELSE IF "${search}"=="JA3Hash" run keywords sleep 1
... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[3]
... AND input xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${value}
... ELSE IF "${search}"=="GeoName" run keywords sleep 1
... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[2]
... AND input xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${value}
... ELSE IF "${search}"=="CountryandRegion" run keywords sleep 1
... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[3]
... AND input xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${value}
... ELSE IF "${search}"=="City" run keywords sleep 1
... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[4]
... AND input xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${value}
... ELSE IF "${search}"=="ip" run keywords sleep 1
... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[4]
... AND input xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${value}
... ELSE IF "${search}"=="port" run keywords sleep 1
... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[5]
... AND input xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${value}
sleep 1
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[1]/span/div/i #点击搜索按钮
sleep 1
CreateSNATIPPools
[Arguments] ${name} ${type} ${ip} ${j}=1
Sleep 1
click id=children6 #点击一级目录Settings
Sleep 1
click id=sidebarSetting_Wannat #点击wan net
sleep 1
click id=ip #点击SNAT-IP-Pools
sleep 1
click id=app_create #点击新建按钮
sleep 1
input xpath=//*[@id="wannat_vpn_color"]/form/div[1]/div/div/div[1]/input ${name} #输入name
sleep 1
#判断是手动输入还是搜索添加,type=1为手动输入type=2为搜索添加
run keyword if "${type}"=="1" run keywords sleep 1
... AND click id=temporary_form #点击添加ip的加号
... AND sleep 2
... AND input xpath=//*[@id="wannat_vpn_color"]/form/div[3]/div/div/div[2]/div[1]/div/div/div[1]/div[1]/div/div[2]/div/input ${ip}[0] #输入ip内容这里${value}是一个列表
... AND sleep 1
... AND SANTIPIF ${j} ${ip} #判断是添加一个ip还是多个ip
... AND click id=wan_reach_test #点击可达性测试按钮
... AND Wait Until Element Is Visible id=edit_0 20 #等待时间,等待元素出现后在进行后续操作
run keyword if "${type}"=="2" run keywords sleep 1
... AND click id=active-ip #点击 History Active IP按钮
... AND sleep 1
... AND input xpath=//*[@id="remoteInput"]/div/div/input ${ip}[0] #搜索输入框输入
... AND sleep 1
... AND press keys xpath=//*[@id="remoteInput"]/div/div/input ENTER #回车搜索
... AND sleep 1
... AND click xpath=//*[@id="wannat_vpn_color"]/div[1]/div/div/div/div[2]/div[3]/div/div/div[3]/table/tbody/tr #点击搜索到的ip添加
... AND sleep 1
... AND SANTIPIF1 ${j} ${ip} #判断是搜索添加一个ip还是多个ip
... AND click id=wan_reach_test #点击可达性测试按钮
sleep 1
click id=wanAdd_ok #点击ok
Wait Until Element Is Enabled id=app_create 20
${status} Run Keyword And Return Status Page Should Contain Go to #判断页面是否包含该文本
Should Be Equal As Strings ${status} True #断言
EditSNATIPPools
[Arguments] ${value} ${search} ${name} ${type} ${ip}=null ${j}=1
Sleep 1
SNATIPSearch ${value} ${search}
sleep 1
click id=appEdit #点击修改按钮
sleep 1
Clear Element Text xpath=//*[@id="wannat_vpn_color"]/form/div[1]/div/div/div[1]/input #清空输入框
sleep 1
input xpath=//*[@id="wannat_vpn_color"]/form/div[1]/div/div/div[1]/input ${name} #输入name
sleep 1
#判断对ip是修改或是新建或删除后新建或不进行修改
run keyword if "${type}"=="edit" Run Keywords click id=editForm0
... AND sleep 1
... AND clear element text xpath=//*[@id="wannat_vpn_color"]/form/div[3]/div/div/div[2]/div[1]/div/div/div[1]/div[1]/div/div[2]/div/input
... AND sleep 1
... AND input xpath=//*[@id="wannat_vpn_color"]/form/div[3]/div/div/div[2]/div[1]/div/div/div[1]/div[1]/div/div[2]/div/input ${ip}[0]
... AND sleep 1
... AND click id=wan_reach_test
... AND sleep 1
run keyword if "${type}"=="create" Run Keywords SNATIPRangeCreate ${j} ${ip}
... AND click id=wan_reach_test #点击可达性测试按钮
... AND Wait Until Element Is Visible id=edit_0 20
... AND sleep 1
... AND click id=wan_reach_test
... AND sleep 1
run keyword if "${type}"=="delete" Run Keywords click id=delForm0
... AND sleep 1
... AND SNATIPRangeCreate ${j} ${ip}
... AND sleep 1
... AND click id=wan_reach_test
... AND sleep 1
run keyword if "${type}"=="null" log 不做更改
sleep 1
click id=wanAdd_ok #点击ok
Wait Until Element Is Visible id=app_create 20
${status} Run Keyword And Return Status Page Should Contain Go to #判断页面是否包含该文本
Should Be Equal As Strings ${status} True #断言
SANTIPIF
[Arguments] ${j} ${ip}
#多个ip添加
run keyword if "${j}"!="1" SNATIPRangeCreate ${j} ${ip}
SANTIPIF1
[Arguments] ${j} ${ip}
#多个ip搜索
run keyword if "${j}"!="1" SNATIPRangeSearch ${j} ${ip}
SNATIPRangeSearch
[Arguments] ${j} ${ip}
#for循环添加ip
sleep 1
FOR ${i} IN RANGE 1 ${j}
sleep 1
Clear Element Text id=insert_profileName #清空输入框
sleep 1
input xpath=xpath=//*[@id="remoteInput"]/div/div/input ${ip}[${i}] #搜索输入框输入
sleep 1
click xpath=//*[@id="wannat_vpn_color"]/div[1]/div/div/div/div[2]/div[3]/div/div/div[3]/table/tbody/tr/td[1]/div/span/div #点击搜索到的ip添加
sleep 1
END
SNATIPRangeCreate
[Arguments] ${j} ${ip}
#for循环添加ip
sleep 1
FOR ${i} IN RANGE 0 ${j}
sleep 1
click id=temporary_form
sleep 2
input xpath=//*[@id="wannat_vpn_color"]/form/div[3]/div/div/div[2]/div[1]/div[last()]/div/div[1]/div[1]/div/div[2]/div/input ${ip}[${i}]
sleep 1
END
SNATIPSearch
[Arguments] ${value} ${search}
Wait Until Element Is Visible xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div/div[2]/div[2]/div/div/div[2]/div/div/div/input 20
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div/div[2]/div[2]/div/div/div[2]/div/div/div/input #点击搜索框
sleep 1
#判断是使用name搜索还是id搜索
run keyword if "${search}"=="Name" run keywords sleep 1
... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[3]
... AND input xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div/div[2]/div[2]/div/div/div[2]/div/div[1]/div[3]/div/input ${value}
... ELSE IF "${search}"=="ID" run keywords sleep 1
... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[2]
... AND input xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div/div[2]/div[2]/div/div/div[2]/div/div[1]/div[3]/div/input ${value}
... ELSE IF "${search}"=="IP" run keywords sleep 1
... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[4] #xpath=/html/body/div[7]/div[1]/div[1]/ul/li[4]
... AND input xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div/div[2]/div[2]/div/div/div[2]/div/div[1]/div[3]/div/input ${value}
sleep 1
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div/div[2]/div[2]/div/i #点击搜索按钮
sleep 1
click xpath=//*[@id="wannat-table"]/div[3]/table/tbody/tr[1]
sleep 1
SNATIPDelete
[Arguments] ${value} ${search}
SNATIPSearch ${value} ${search} #搜索需要删除的数据
click id=appDel #点击删除按钮
sleep 2
click xpath=/html/body/div/div/div[3]/button[2]
sleep 2
SearchHistoryActiveIP
[Arguments] ${Number}
# 获取History Active IP内存在的IP并返回
OpenPages sidebarSetting_Wannat ip
click id=app_create
sleep 1
click id=active-ip
sleep 1
input text xpath=//*[@id="remoteInput"]/div/div/input 192.168.50
sleep 1
press keys xpath=//*[@id="remoteInput"]/div/div/input ENTER
sleep 2
${ip1} get text xpath=//*[@id="wannat_vpn_color"]/div[1]/div/div/div/div[2]/div[3]/div[2]/div/div[3]/table/tbody/tr[${Number}]/td[1]/div/span/div[2]
[Return] ${ip1}
CreateVPNAccounts
[Arguments] ${name} ${passwd} ${search}
Sleep 1
click id=children6 #点击一级目录Settings
Sleep 1
click id=sidebarSetting_Wannat #点击wan net
sleep 1
click id=account #点击SNAT-IP-Pools
sleep 1
click id=app_create #点击新建按钮
sleep 1
input xpath=//*[@id="wannat_vpn_username"]/div/div/div[1]/input ${name} #输入vpnname
sleep 1
input xpath=//*[@id="wannat_vpn_password"]/div/div/input ${passwd} #输入密码
sleep 1
click id=wanAdd_ok #点击ok按钮
Wait Until Element Is Visible xpath=//*[@id="wannat-table"]/div[3]/table/tbody/tr/td[1]/div/div/div[2]/span 20
VPNAccountsSearch ${name} ${search}
${text1} Get Text xpath=//*[@id="wannat-table"]/div[3]/table/tbody/tr/td[1]/div/div/div[2]/span #获取点击后页面文本信息
Should Be Equal As Strings ${text1} ${name} #断言
EditVPNAccounts
[Arguments] ${name} ${passwd} ${search}
sleep 1
click id=appEdit #点击修改那妞
sleep 1
click xpath=//*[@id="wannat_vpn_password"]/div/div/span/span/i #点击小眼睛按钮,查看密码
sleep 1
Clear Element Text xpath=//*[@id="wannat_vpn_password"]/div/div/span/span/i/../../../input
sleep 1
input xpath=//*[@id="wannat_vpn_password"]/div/div/span/span/i/../../../input ${passwd} #修改密码
sleep 1
click id=wanAdd_ok #点击OK
VPNAccountsSearch ${name} ${search}
${text1} Get Text xpath=//*[@id="wannat-table"]/div[3]/table/tbody/tr/td[1]/div/div/div[2]/span #获取点击后页面文本信息
Should Be Equal As Strings ${text1} ${name} #断言
VPNAccountsSearch
[Arguments] ${value} ${search}
Wait Until Element Is Visible xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div/div[2]/div[2]/div/div/div[2]/div/div/div/input 20
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div/div[2]/div[2]/div/div/div[2]/div/div/div/input #点击搜索框
sleep 1
click xpath=/html/body/div/div[1]/div[1]/ul/li[2] #点击name
sleep 1
input xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div/div[2]/div[2]/div/div/div[2]/div/div[1]/div[3]/div/input ${value} #输入值
sleep 1
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div/div[2]/div[2]/div/i #点击搜索按钮
sleep 1
click xpath=//*[@id="wannat-table"]/div[3]/table/tbody/tr[1]
sleep 1
VPNAccountsDelete
click id=appDel #点击删除按钮
sleep 2
click xpath=/html/body/div/div/div[3]/button[2]
sleep 2
Source-or-Destination-Search
[Arguments] ${value}
run keyword if "${value}"=="IP" run keywords sleep 1
... AND click id=tab-ip #点击ip
... AND sleep 1
run keyword if "${value}"=="SUB ID" run keywords sleep 1
... AND click id=tab-subscriberid #点击SUB ID
... AND sleep 1
run keyword if "${value}"=="Geography" run keywords sleep 1
... AND click id=tab-Geographic #点击Geography
... AND sleep 1
run keyword if "${value}"=="IP Learning" run keywords sleep 1
... AND click id=tab-ip_learning #点击IP Learning
... AND sleep 1
FQDN-or-Category-Search
[Arguments] ${value}
run keyword if "${value}"=="FQDN" run keywords sleep 1
... AND click id=tab-fqdn #点击FQDN
... AND sleep 1
run keyword if "${value}"=="Category" run keywords sleep 1
... AND click id=tab-fqdn_category #点击category
... AND sleep 1
CreateHijackFiles
[Arguments] ${name} ${file} ${type} ${search} ${shift}=1 ${input1}=1
Sleep 1
click id=children6 #点击一级目录Settings
Sleep 1
click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles
Sleep 2
click id=profilesTabs_Profile_HijackFiles #点击Hijack Files按钮
Sleep 1
click id=hijackAdd #点击Create
Sleep 2
input id=hijack_profileName ${name} #输入name
Sleep 2
Choose File xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[2]/div/div/div[1]/input ${file} #上传文件
Sleep 2
${dow_name} Set Variable ${shift}
${input} Set Variable ${input1}
run keyword if "${dow_name}"=="close" and "${input}"=="shuru" run keywords sleep 1
... AND input id=hijack_contentName ${name}
... ELSE IF "${dow_name}"=="open" click xpath=//*[@id="contentNameChoose"]/div[1]/span[2]
sleep 1
click id=hijackAddContentType #点击+ 打开侧滑窗口
Sleep 1
click ${type} #选择文件类型
sleep 2
click id=hijackAddOk1 #点击OK
Wait Until Element Is Enabled id=hijackAdd 20
Settings-Search ${name} ${search} #搜索框的关键字
${text1} Get Text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/span #获取点击后页面文本信息
Should Be Equal As Strings ${text1} ${name} #断言
CreateInsertScripts
[Arguments] ${name} ${file} ${type} ${search} ${jstype}=Before Page Load
Sleep 1
click id=children6 #点击一级目录Settings
Sleep 1
click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles
Sleep 2
click id=profilesTabs_Profile_Insert #点击Insert Scripts按钮
Sleep 1
click id=insertAdd #点击Create
Sleep 2
input id=insert_profileName ${name} #输入name
Sleep 2
Choose File xpath=//*[@id="insertAddUpload"]/div[1]/input ${file} #上传文件
Sleep 2
click id=insert_select_format #点击下拉框按钮
Sleep 1
run keyword if "${type}"=="css" run keywords sleep 1
... AND click //span[.="${type}"] #选择css
run keyword if "${type}"=="js" run keywords sleep 1
... AND click //span[.="${type}"]
... AND sleep 1
... AND click id=insert_select_insertOn #点击下拉框
... AND sleep 1
... AND click //span[.="${jstype}"]
sleep 1
click id=insertAddOk1 #点击OK
Wait Until Element Is Enabled id=insertAdd 20
Settings-Search ${name} ${search} #搜索框的关键字
log psssssssssssssssssssssssssss
Sleep 1
${text1} Get Text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[2]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span
#//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[2]/div/div[3]/table/tbody/tr/td[2]/div/div/span #获取点击后页面文本信息
Should Be Equal As Strings ${text1} ${name} #断言
TrafficMirrorProfilesValidationError
[Arguments] ${name} ${type} ${shuru} ${PromptInformation}
Sleep 1
click id=children6 #点击一级目录Settings
Sleep 1
click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles
Sleep 2
click id=profilesTabs_Profile_TrafficMirrorProfiles #点击Traffic Mirror Profiles按钮
Sleep 1
click id=trafficMirrorAdd #点击Create
Sleep 2
input id=trafficmirror_profileName ${name} #输入name
Sleep 2
click id=addrTypeChoose #点击下拉框
Sleep 2
click ${type} #选择vlan或者mac
Sleep 1
input id=trafficmirror_addrArray0 ${shuru}
sleep 2
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/button[1] #点击OK
Sleep 2
${text1} Get Text xpath=/html/body/div[last()]/p #获取点击后页面提示信息
Should Be Equal As Strings ${text1} ${PromptInformation} #断言
CreateTrafficMirrorProfiles
[Arguments] ${name} ${type} ${shuru} ${search}
Sleep 1
click id=children6 #点击一级目录Settings
Sleep 1
click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles
Sleep 2
click id=profilesTabs_Profile_TrafficMirrorProfiles #点击Traffic Mirror Profiles按钮
Sleep 1
click id=trafficMirrorAdd #点击Create
Sleep 2
input id=trafficmirror_profileName ${name} #输入name
Sleep 2
click id=addrTypeChoose #点击下拉框
Sleep 2
click ${type} #选择vlan或者mac
Sleep 1
input id=trafficmirror_addrArray0 ${shuru}
sleep 2
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/button[1] #点击OK
Sleep 2
Settings-Search ${name} ${search} #搜索框的关键字
Sleep 1
${text1} Get Text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div[2]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span #获取点击后页面文本信息
Should Be Equal As Strings ${text1} ${name} #断言
EditInsertScripts
[Arguments] ${id-name} ${name1} ${file} ${type} ${search} ${jstype}=Before Page Load
[Documentation] 引用关键字,填入必填参数
... 必填参数:
... ${search}:为选择要查询的类型是ID或者Name的元素
... ${id-name}:为查询输入框输入内容
... ${name1}:为修改页面的name输入框里输入的内容
... ${file}:为修改页面要上传文件的路径
... ${type}:选择文件类型的元素
sleep 1
click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles
sleep 2
click id=profilesTabs_Profile_Insert #点击Insert files按钮
Settings-Search ${id-name} ${search} #搜索框的关键字
sleep 1
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[2]/div/div[3]/table/tbody/tr[1] #点击搜素到的列表
sleep 1
click id=insertEdit #点击Edit
sleep 1
Clear Element Text id=insert_profileName #清空输入框
sleep 1
input id=insert_profileName ${name1} #输入框输入
sleep 1
Choose File xpath=//*[@id="insertAddUpload"]/div[1]/input ${file} #上传文件
sleep 1
click id=insert_select_format #点击下拉框
sleep 1
#选择文件类型
run keyword if "${type}"=="css" run keywords sleep 1
... AND click //span[.="${type}"] #选择css
run keyword if "${type}"=="js" run keywords sleep 1
... AND click //span[.="${type}"]
... AND sleep 1
... AND click id=insert_select_insertOn #点击下拉框
... AND sleep 1
... AND click //span[.="${jstype}"]
sleep 1
click id=insertAddOk1 #点击ok提交
run keyword if "${search}"=="id" run keywords sleep 1
... AND Settings-Search ${id-name} ${search} #搜索框的关键字
... ELSE IF "${search}"=="name" run keywords sleep 1
... AND Settings-Search ${name1} ${search} #搜索框的关键字
Sleep 1
${text1} Get Text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[2]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span #获取点击后页面文本信息
Should Be Equal As Strings ${text1} ${name1} #断言
CreateResponsePages
[Arguments] ${name} ${file} ${search}
[Documentation] 引用次关键字,填入必填参数
... 必填参数:
... ${name}:新建页面name输入框里的内容
... ${file}:上传文件所在本地的路径
#打开浏览器
#ui-login lyf 111111
Sleep 1
click id=children6 #点击一级目录Settings
Sleep 1
click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles
Sleep 2
click id=respinseAdd #Response Pages点击Create
Sleep 2
input id=responsepages_profileName ${name} #输入name
Sleep 2
Choose File xpath=//*[@id="policy_Manipulation_create6"]/div[2]/form/div[2]/div/div/div/input ${file} #上传文件
Sleep 2
click id=responseAddOk1 #点击OK缇交
Wait Until Element Is Enabled xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/span 30
Settings-Search ${name} ${search} #搜索框的关键字
Sleep 1
${text1} Get Text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/span #获取点击后页面文本信息
Should Be Equal As Strings ${text1} ${name} #断言
Edit-Response-Pages
[Arguments] ${id-name} ${name1} ${file} ${search}
[Documentation] 引用关键字,填入必填参数
... 必填参数:
... ${search}:为选择要查询的类型是ID或者Name
... ${id-name}:为查询输入框输入内容
... ${name1}:为修改页面的name输入框里输入的内容
... ${file}:为修改页面要上传文件的路径
sleep 1
click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles
Sleep 2
Settings-Search ${id-name} ${search} #搜索框的关键字
Sleep 1
click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1] #点击搜素到的列表
sleep 1
click id=resinseEdit #点击Edit
sleep 1
Clear Element Text id=responsepages_profileName #清空name输入框
sleep 1
input id=responsepages_profileName ${name1}
sleep 1
Choose File xpath=//*[@id="policy_Manipulation_create6"]/div[2]/form/div[5]/div/div/div/input ${file}
sleep 1
click id=responseAddOk1
Sleep 1
run keyword if "${search}"=="id" run keywords sleep 1
... AND Settings-Search ${id-name} ${search} #搜索框的关键字
... ELSE IF "${search}"=="name" run keywords sleep 1
... AND Settings-Search ${name1} ${search} #搜索框的关键字
Sleep 1
${text1} Get Text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/span #获取点击后页面文本信息
Should Be Equal As Strings ${text1} ${name1} #断言
EditHijackFiles
[Arguments] ${id-name} ${name1} ${file} ${type} ${search} ${shift}=1
... ${input1}=1
[Documentation] 引用关键字,填入必填参数
... 必填参数:
... ${search}:为选择要查询的类型是ID或者Name的元素
... ${id-name}:为查询输入框输入内容
... ${name1}:为修改页面的name输入框里输入的内容
... ${file}:为修改页面要上传文件的路径
... ${type}:为文件类型的元素
sleep 1
click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles
Sleep 2
click id=profilesTabs_Profile_HijackFiles #点击Hijack files按钮
sleep 1
Settings-Search ${id-name} ${search} #搜索框的关键字
sleep 1
click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1] #点击搜素到的列表
sleep 1
click id=hijackEdit #点击Edit
sleep 1
Clear Element Text id=hijack_profileName #清空输入框
sleep 1
input id=hijack_profileName ${name1} #输入框输入
sleep 1
Choose File xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[5]/div/div/div[1]/input ${file} #上传文件
sleep 1
${dow_name} Set Variable ${shift}
${input} Set Variable ${input1}
run keyword if "${dow_name}"=="close" and "${input}"=="shuru" run keywords sleep 1
... AND input id=hijack_contentName ${name}
... ELSE IF "${dow_name}"=="open" click xpath=//*[@id="contentNameChoose"]/div[1]/span[2]
sleep 1
click id=hijackAddContentType #点击+号打开侧滑框
sleep 3
click ${type} #选择类型
sleep 1
click id=rigth-menu-button-close #关闭侧滑框
sleep 1
click id=hijackAddOk1 #点击ok提交
sleep 1
run keyword if "${search}"=="id" run keywords sleep 1
... AND Settings-Search ${id-name} ${search} #搜索框的关键字
... ELSE IF "${search}"=="name" run keywords sleep 1
... AND Settings-Search ${name1} ${search}
${text1} Get Text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/span #获取点击后页面文本信息
Should Be Equal As Strings ${text1} ${name1} #断言
EditTrafficMirrorProfiles
[Arguments] ${id-name} ${name1} ${type} ${shuju} ${search}
[Documentation] 引用关键字,填入必填参数
... 必填参数:
... ${search}:为选择要查询的类型是ID或者Name的元素
... ${id-name}:为查询输入框输入内容
... ${name1}:为修改页面的name输入框里输入的内容
... ${type}:为选择点击vlan或mac的元素
... ${shuju}:为输入框输入内容
sleep 1
click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles
Sleep 2
click id=profilesTabs_Profile_TrafficMirrorProfiles #点击Traffic Mirror Profiles按钮
sleep 1
Settings-Search ${id-name} ${search} #搜索框的关键字
sleep 1
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div[2]/div/div[3]/table/tbody/tr[1] #点击搜素到的列表
sleep 1
click id=trafficMirrorEdit #点击Edit
sleep 1
Clear Element Text id=trafficmirror_profileName #清空输入框
sleep 1
input id=trafficmirror_profileName ${name1} #输入框输入
sleep 1
click id=addrTypeChoose #点击下拉框
sleep 1
click ${type} #选择vlan或者mac
sleep 1
Clear Element Text id=trafficmirror_addrArray0 #清空输入框
sleep 1
input id=trafficmirror_addrArray0 ${shuju} #输入内容
sleep 1
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/button[1] #点击ok
Sleep 2
run keyword if "${search}"=="id" run keywords sleep 1
... AND Settings-Search ${id-name} ${search} #搜索框的关键字
... ELSE IF "${search}"=="name" run keywords sleep 1
... AND Settings-Search ${name1} ${search} #搜索框的关键字
Sleep 1
${text1} Get Text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div[2]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span #获取点击后页面文本信息
Should Be Equal As Strings ${text1} ${name1} #断言
importTrustedCertificateAuthorities
[Arguments] ${name} ${file} ${search}
[Documentation] 引用次关键字,填入必填参数
... 必填参数:
... ${name}:新建页面name输入框里的内容
... ${file}:上传文件所在本地的路径
#打开浏览器
#ui-login lyf 111111
Sleep 1
click id=children6 #点击一级目录Settings
Sleep 1
click id=sidebarProxy_CertificateManagement #点击二级目录Trusted Certificate Authorities
Sleep 2
click id=app_create #点击Import
Sleep 2
input id=authoritiesAdd_name ${name} #输入name
Sleep 2
Choose File xpath=//*[@id="upload_dome"]/div/input ${file} #上传文件
Sleep 2
click id=authoritiesAdd_sub #点击OK缇交
Sleep 1
Settings-Search ${name} ${search}
Sleep 1
${text1} Get Text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/div/p/span #获取点击后页面文本信息
Should Be Equal As Strings ${text1} ${name} #断言
importTrustedCertificateAuthoritiesErrorVerification
[Arguments] ${name} ${file} ${PromptInformation}
[Documentation] 用于验证导入错误的证书类型
... 必填参数:
... ${name}:新建页面name输入框里的内容
... ${file}:上传文件所在本地的路径
... ${PromptInformation}:提示信息
#打开浏览器
#ui-login lyf 111111
Sleep 1
click id=children6 #点击一级目录Settings
Sleep 1
click id=sidebarProxy_CertificateManagement #点击二级目录Trusted Certificate Authorities
Sleep 2
click id=Authorities_create #点击Import
Sleep 2
input id=authoritiesAdd_name ${name} #输入name
Sleep 2
Choose File xpath=//*[@id="upload_dome"]/div/input ${file} #上传文件
Sleep 2
click id=authoritiesAdd_sub #点击OK缇交
Sleep 2
${text} Get text xpath=/html/body/div[last()]/p
Should Be Equal As Strings ${text} ${PromptInformation} #断言
CreateDecryptionKeyrings
[Arguments] ${name} ${file} ${file1} ${ExpiryHours1or2} ${type} ${type1} ${search}
... ${shift}=close ${PrivateKeyType}=PrivateKeyFile
[Documentation] 引用次关键字,填入必填参数
... 必填参数:
... ${name}:新建页面name输入框里的内容
... ${file}:上传文件所在本地的路径
... ${file1}:上传文件所在本地的路径
... ${ExpiryHours1or2}:根证书时间填入1自定义定义 2:原时间
... ${type}:上传证书类型的元素
... ${type1}:上传证书加密解密算法的元素
... ${shift}:是否打开客户端包含证书按钮
... ${PrivateKeyType}:私钥类型
#打开浏览器
#ui-login lyf 111111
Sleep 1
click id=children6 #点击一级目录Settings
Sleep 1
click id=sidebarProxy_CertificateManagement #点击二级目录Trusted Certificate Authorities
Sleep 2
click xpath=//*[@id="proxyTabs"]/div/ul/li[2] #点击Decryption Keyrings
sleep 1
click id=app_create #点击Create
Sleep 2
input id=keyringsadd_name ${name} #输入name
Sleep 2
Choose File xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/div[2]/form/div[2]/div/div/div/input ${file} #上传文件
Sleep 2
Choose File xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/div[2]/form/div[3]/div/div[2]/div/div/input ${file1} #上传文件
${select} Set Variable ${ExpiryHours1or2}
Run Keyword If '${select}'=='1' click id=keyringsadd_customized
Run Keyword If '${select}'=='1' input id=reissueExpiryDate 10
sleep 1
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/div[2]/form/div[6]/div/div/div[1]/span/span/i #点击下拉框
sleep 1
click ${type} #选择证书类型
sleep 1
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/div[2]/form/div[7]/div/div/div[1]/span/span/i #点击下拉框
sleep 1
click ${type1} #选择加密解密类型
sleep 1
${root} Set Variable ${shift}
run keyword if "${root}"=="open" run keywords sleep 1
... AND click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/div[2]/form/div[9]/div/div/span
... ELSE IF "${root}"=="close" log "go on"
Run Keyword If '${PrivateKeyType}'=='HSM' run keywords sleep 1
... AND click id=privateHSM
... AND sleep 1
... AND input id=keyringsadd_slotid 10
sleep 1
click id=keyringsadd_sub #点击OK缇交
Wait Until Element Is Enabled id=app_create 20
Settings-Search ${name} ${search}
Sleep 1
${text1} Get Text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/div/p/span #获取点击后页面文本信息
Should Be Equal As Strings ${text1} ${name} #断言
DecryptionKeyringsErrorVerification
[Arguments] ${name} ${file} ${file1} ${type} ${type1} ${Positioning} ${Assertion}
[Documentation] 用于验证导入证书和类型不匹配的错误验证
... 必填参数:
... ${name}:新建页面name输入框里的内容
... ${file}:上传文件所在本地的路径
... ${file1}:上传文件所在本地的路径
... ${type}:上传证书类型的元素
... ${type1}:上传证书加密解密算法的元素
... ${Positioning}:获取文本的xpath定位
... ${Assertion}:断言信息
Sleep 1
click id=children6 #点击一级目录Settings
Sleep 1
click id=sidebarProxy_CertificateManagement #点击二级目录Trusted Certificate Authorities
Sleep 2
click xpath=//*[@id="proxyTabs"]/div/ul/li[2] #点击Decryption Keyrings
sleep 1
click id=app_create #点击Create
Sleep 2
input id=keyringsadd_name ${name} #输入name
Sleep 2
Choose File xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/div[2]/form/div[2]/div/div/div/input ${file} #上传文件
Sleep 2
Choose File xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/div[2]/form/div[3]/div/div[2]/div/div/input ${file1} #上传文件
sleep 1
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/div[2]/form/div[6]/div/div/div[1]/span/span/i #点击下拉框
sleep 1
click ${type} #选择证书类型
sleep 1
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/div[2]/form/div[7]/div/div/div[1]/span/span/i #点击下拉框
sleep 1
click ${type1} #选择加密解密类型
sleep 1
click id=keyringsadd_sub #点击OK缇交
Wait Until Element Is Visible xpath=${Positioning} 20
${text1} Get Text xpath=${Positioning} #获取点击后页面文本信息
Should Be Equal As Strings ${text1} ${Assertion} #断言
DecryptionKeyringsSearch
[Arguments] ${id} ${name}
sleep 2
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div[1]/span/div/div/div[2]/div/div/div[1]/input
sleep 1
click xpath=/html/body/div/div[1]/div[1]/ul/li[2]
input xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${id}
sleep 1
click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]
sleep 1
click xpath=/html/body/div/div[1]/div[1]/ul/li[2]
input xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div[1]/span/div/div/div[2]/div/div[2]/div[3]/div/input ${name}
sleep 1
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div[1]/span/div/i
sleep 2
CreateSSLDecryptionExclusion
[Arguments] ${name} ${value} ${name1} ${search}
[Documentation] 引用次关键字,填入必填参数
... 必填参数:
... ${name}:新建页面name输入框里的内容
... ${value}:输入内容
... ${naem1}:搜索框填入内容
Sleep 1
click id=children6 #点击一级目录Settings
Sleep 1
click id=sidebarProxy_CertificateManagement #点击二级目录Trusted Certificate Authorities
Sleep 2
click xpath=//*[@id="proxyTabs"]/div/ul/li[3] #点击SSL Decryption Exclusion按钮
sleep 1
click id=ssl_create #点击Create
Sleep 2
input id=sslAdd_name ${name} #输入name
Sleep 2
input id=sslAdd_itemDesc ${value} #输入内容
Sleep 2
click id=ssl_ok #点击OK缇交
Wait Until Element Is Visible xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/div/p/span 30
Settings-Search ${name1} ${search}
sleep 1
${text1} Get Text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/div/p/span #获取点击后页面文本信息
Should Be Equal As Strings ${text1} ${name} #断言
CreateSSLDecryptionExclusionErrorVerification
[Arguments] ${name} ${value} ${AssertionPath} ${AssertionText}
[Documentation] 用于SSL Decryption Exclusion创建页面错误提示信息验证
... 必填参数:
... ${name}:新建页面name输入框里的内容
... ${value}:输入内容
... ${AssertionPath}提示信息Xpath定位
... ${AssertionText}:错误提示信息文本
Sleep 1
click id=children6 #点击一级目录Settings
Sleep 1
click id=sidebarProxy_CertificateManagement #点击二级目录Trusted Certificate Authorities
Sleep 2
click xpath=//*[@id="proxyTabs"]/div/ul/li[3] #点击SSL Decryption Exclusion按钮
sleep 1
click id=ssl_create #点击Create
Sleep 2
input id=sslAdd_name ${name} #输入name
Sleep 2
input id=sslAdd_itemDesc ${value} #输入内容
Sleep 2
click id=ssl_ok #点击OK缇交
Sleep 2
${text} get text xpath=${AssertionPath}
Should Be Equal As Strings ${text} ${AssertionText}
CachedIntermediateCertificatesSearch
[Arguments] ${Condition} ${AssertionPath} ${search}
sleep 1
Settings-Search ${Condition} ${search}
sleep 2
${text} get text ${AssertionPath}
Should Be Equal As Strings ${text} ${Condition}
EditTrustedCertificateAuthorities
[Arguments] ${id-name} ${name} ${file} ${search}
[Documentation] 引用关键字,填入必填参数
... 必填参数:
... ${search}:为选择要查询的类型是ID或者Name的元素
... ${id-name}:为查询输入框输入内容
... ${name}:为修改页面的name输入框里输入的内容
... ${file}:为修改页面要上传文件的路径
sleep 1
click id=sidebarProxy_CertificateManagement #点击二级目录Trusted Certificate Authorities
Sleep 2
Settings-Search ${id-name} ${search}
sleep 1
click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr #点击搜索列表
sleep 1
click id=appEdit #点击Edit按钮
sleep 1
Clear Element Text id=authoritiesAdd_name #清空name输入框
sleep 1
input id=authoritiesAdd_name ${name} #输入name
sleep 1
Choose File xpath=//*[@id="upload_dome"]/div/input ${file} #上传文件
sleep 1
click id=authoritiesAdd_sub #点击ok
sleep 1
EditDecryptionKeyrings
[Arguments] ${id-name} ${name} ${file} ${file1} ${1or2}
... ${type} ${type1} ${search}
[Documentation] 引用次关键字,填入必填参数
... 必填参数:
... ${search}:为选择要查询的类型是ID或者Name的元素
... ${id-name}:为查询输入框输入内容
... ${name}:新建页面name输入框里的内容
... ${file}:上传文件所在本地的路径
... ${file1}:上传文件所在本地的路径
... ${1or2}:填入1 或者其他
... ${type}:上传证书类型的元素
... ${type1}:上传证书加密解密算法的元素
sleep 1
click id=sidebarProxy_CertificateManagement #点击二级目录Trusted Certificate Authorities
Sleep 2
click xpath=//*[@id="proxyTabs"]/div/ul/li[2] #点击Decryption Keyrings
sleep 1
Settings-Search ${id-name} ${search}
sleep 1
click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr #点击搜索列表
sleep 1
click id=appEdit #点击Edit按钮
sleep 1
Clear Element Text id=keyringsadd_name #清空name输入框
sleep 1
input id=keyringsadd_name ${name} #输入name
sleep 1
Choose File xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/div[2]/form/div[5]/div/div/div/input ${file} #上传文件
Sleep 2
Choose File xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/div[2]/form/div[6]/div/div[2]/div/div/input ${file1} #上传文件
${select} Set Variable ${1or2}
Run Keyword If '${select}'=='1' click id=keyringsadd_customized
Run Keyword If '${select}'=='1' input id=reissueExpiryDate 10
sleep 1
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/div[2]/form/div[9]/div/div/div[1]/span/span/i #点击下拉框
sleep 1
click ${type} #选择证书类型
sleep 1
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/div[2]/form/div[10]/div/div/div[1]/span/span/i #点击下拉框
sleep 2
click ${type1} #选择加密解密类型
sleep 1
click id=keyringsadd_sub #点击OK缇交
Sleep 2
run keyword if "${search}"=="id" run keywords sleep 1
... AND Settings-Search ${id-name} ${search}
... ELSE IF "${search}"=="name" run keywords sleep 1
... AND Settings-Search ${name} ${search}
Sleep 1
${text1} Get Text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/div/p/span #获取点击后页面文本信息
Should Be Equal As Strings ${text1} ${name} #断言
EditSSLDecryptionExclusion
[Arguments] ${id-name} ${name} ${value1} ${name1} ${search}
[Documentation] 引用关键字,填入必填参数
... ${search}:id或者name的元素
... ${id-name}:输入搜索的内容
... ${name}:输入name
... ${calue1}:输入内容
sleep 1
click id=sidebarProxy_CertificateManagement #点击二级目录Trusted Certificate Authorities
Sleep 2
click xpath=//*[@id="proxyTabs"]/div/ul/li[3] #点击SSL Decryption Exclusion按钮
sleep 1
Settings-Search ${id-name} ${search}
sleep 1
click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr #点击搜索列表
Sleep 1
click id=ssl_edit #点击Edit
Sleep 1
Clear Element Text id=sslAdd_name #清空name输入框
sleep 1
input id=sslAdd_name ${name} #输入name
sleep 1
input id=sslAdd_itemDesc ${value1} #输入内容
sleep 1
click id=ssl_ok #点击OK缇交
Sleep 2
run keyword if "${search}"=="id" run keywords sleep 1
... AND Settings-Search ${id-name} ${search}
... ELSE IF "${search}"=="name" run keywords sleep 1
... AND Settings-Search ${name1} ${search}
Sleep 1
${text1} Get Text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/div/p/span #获取点击后页面文本信息
Should Be Equal As Strings ${text1} ${name} #断言
EditDefaultCertificate
[Arguments] ${time}
[Documentation] 验证修改默认证书方法
sleep 1
click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr
sleep 1
click id=appEdit
sleep 2
clear element text id=reissueExpiryDate
sleep 1
input text id=reissueExpiryDate ${time}
sleep 1
click id=keyringsadd_sub
Wait Until Element Is Enabled id=app_create 20
CreateSSLFingerprint
[Arguments] ${Ja3} ${Pinning} ${search} ${Description}=null
[Documentation]
... ${Ja3}:指纹信息
... ${Pinning}是否Pinning(Yes/No)
... ${search}:查询条件
... ${Description}:描述
sleep 1
click id=children6 #点击一级目录Settings
sleep 1
click id=sidebarProxy_CertificateManagement #点击二级目录Certificate Managements
sleep 2
click xpath=//*[@id="proxyTabs"]/div/ul/li[5] #点击SSL Fingerprint
sleep 1
click id=Fingerprint_create #点击Create
sleep 1
input id=authoritiesAdd_name ${Ja3}
run keyword if "${Pinning}"=="Yes" run keywords sleep 1
... AND click id=pinningStateYes
run keyword if "${Pinning}"=="No" run keywords sleep 1
... AND click id=pinningStateNo
sleep 1
run keyword if "${Description}"!="null" run keywords sleep 1
... AND input id=labels_describe ${Description}
sleep 1
click id=authoritiesAdd_sub # 点击Ok按钮
Wait Until Element Is Enabled xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/div/div/span/div[2]/span 20
Settings-Search ${Ja3} ${search}
${text} Get Text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/div/div/span/div[2]/span
${text1} Get Text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[3]/div/div/div/p/span
Should Be Equal As Strings ${text} ${Ja3}
Should Be Equal As Strings ${text1} ${Pinning}
EditSSLFingerprint
[Arguments] ${ID-Ja3} ${NewJa3} ${Pinning} ${search} ${Description}=null
[Documentation]
... ${ID-Ja3}:id或JA3Hash的元素
... ${NewJa3}:指纹信息
... ${Pinning}是否Pinning(Yes/No)
... ${search}:查询条件 id 或JA3Hash
... ${Description}:描述
sleep 1
click id=sidebarProxy_CertificateManagement #点击二级目录Certificate Managements
sleep 2
click xpath=//*[@id="proxyTabs"]/div/ul/li[5] #点击SSL Fingerprint
sleep 1
Settings-Search ${ID-Ja3} ${search}
sleep 2
click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr
sleep 1
click id=Fingerprint_edit
sleep 1
input id=authoritiesAdd_name ${NewJa3}
run keyword if "${Pinning}"=="Yes" run keywords sleep 1
... AND click id=pinningStateYes
run keyword if "${Pinning}"=="No" run keywords sleep 1
... AND click id=pinningStateNo
sleep 1
run keyword if "${Description}"!="null" run keywords sleep 1
... AND input id=labels_describe ${Description}
sleep 1
click id=authoritiesAdd_sub
Wait Until Element Is Enabled xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/div/div/span/div[2]/span 20
run keyword if "${search}"=="id" run keywords sleep 1
... AND Settings-Search ${ID-Ja3} ${search}
run keyword if "${search}"=="JA3Hash" run keywords sleep 1
... AND Settings-Search ${NewJa3} ${search}
${text} Get Text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/div/div/span/div[2]/span
${text1} Get Text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[3]/div/div/div/p/span
Should Be Equal As Strings ${text} ${NewJa3}
Should Be Equal As Strings ${text1} ${Pinning}
SSLFingerprintImportUserAgent
[Arguments] ${ID} ${file} ${USQuantity} ${AssertionText} ${USXpath}
[Documentation]
... ${ID} :断言指纹得ID
... ${file}:上传文件路径
... ${USQuantity} :导入文件对应指纹信息US得数量
... ${AssertionText}断言得US
... ${USXpath}被断言US得xpath定位
sleep 1
click id=sidebarProxy_CertificateManagement #点击二级目录Certificate Managements
sleep 2
click xpath=//*[@id="proxyTabs"]/div/ul/li[5] #点击SSL Fingerprint
sleep 1
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div[1]/span[2]/button
sleep 2
Choose File xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[4]/div/div/div[2]/div/div[1]/input ${file}
sleep 2
click id=Import_ua_Ok
sleep 5
Settings-Search ${ID} id
sleep 2
Mouse Over xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/div/div/span/div/span
sleep 3
run keyword if "${USQuantity}" >= "4" run keywords sleep 1
... AND click xpath=/html/body/div[last()]/ul/li/div[2]/span[2]/span[4]
... AND sleep 2
${text} Get Text xpath=${USXpath}
Should Be Equal As Strings ${text} ${AssertionText}
run keyword if "${USQuantity}" >= "4" run keywords sleep 1
... AND click id=useragent_cancle
... AND sleep 1
SSLFingerprintImportJA3
[Arguments] ${file}
[Documentation]
... ${file}:上传文件路径
sleep 1
click id=sidebarProxy_CertificateManagement #点击二级目录Certificate Managements
sleep 2
click xpath=//*[@id="proxyTabs"]/div/ul/li[5] #点击SSL Fingerprint
sleep 1
click id=objectImport
sleep 2
Choose File xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div[1]/div[2]/div[2]/div/div[1]/div/div/div[1]/div/form/div[1]/div/div/div[1]/input ${file}
sleep 2
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div[1]/div[2]/div[2]/div/div[1]/div/div/div[1]/div/form/div[2]/div/button
sleep 2
Settings_swarch_name
[Arguments] ${name}
sleep 2
click element id=one-input
sleep 2
click element id=input_list_li2
sleep 2
input text id=sreach_input ${name}
sleep 2
click element id=select_new_search_btn
sleep 2
click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table
Create-Policy_Verify
[Arguments] ${name} ${list2}=null ${fail1}=null ${list4}=null ${list6}=null ${min1}=null
... ${max1}=null
Sleep 1
click id=children5 #点击一级目录Settings
Sleep 1
click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles
sleep 2
click id=profilesTabs_Profile_DecryptionProfile #点击Decryption Profile
Sleep 1
click id=insertAdd #点击Create
Sleep 1
input id=insert_profileName ${name}
Sleep 1
@{list} Create List Common Name Issuer Self-signed Expiry Date Mutual Authentication
... On Protocol Errors Certificate Pinning Mirror Client Versions Allow HTTP/2
: FOR ${i} IN @{list}
\ click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div/div/label[contains(text(), "${i}")]/following-sibling::div/div/span
\ sleep 1
@{list1} Set Variable ${list2}
${fail} Set Variable ${fail1}
: FOR ${j} IN @{list1}
\ run keyword if "@{list1}"=="[]" Exit for loop
\ ... ELSE Run Keywords click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div/div/label[contains(text(), "${j}")]/following-sibling::div/div/span
\ ... AND sleep 1
run keyword if "${fail}"=="Fail-close" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[3]/div[5]/div/div/label[1]/span
... ELSE IF "${fail}"=="Pass-through" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[3]/div[5]/div/div/label[2]/span
... ELSE log 1111
@{list3} Set Variable ${list4}
: FOR ${k} IN @{list3}
\ run keyword if "@{list3}"=="[]" Exit for loop
\ ... ELSE Run Keywords click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div/div/label[contains(text(), "${k}")]/following-sibling::div/div/span
\ ... AND sleep 1
@{list5} Set Variable ${list6}
${min} Set Variable ${min1}
${max} Set Variable ${max1}
: FOR ${z} IN @{list5}
\ run keyword if "@{list5}"=="[]" Min_max_version ${min} ${max}
\ ... ELSE IF "${z}"=="Allow HTTP/2" Run Keywords sleep 1
\ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div/div/label[contains(text(), "${z}")]/following-sibling::div/div/span
\ ... ELSE IF "${z}"=="Mirror Client Versions" Run Keywords sleep 1
\ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div/div/label[contains(text(), "${z}")]/following-sibling::div/div/span
\ ... ELSE IF "${z}"!="Mirror Client Versions" and "${min}"=="TLSv1.0" Run Keywords sleep 1
\ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i
\ ... AND sleep 1
\ ... AND click id=pro_min1
\ ... ELSE IF "${z}"!="Mirror Client Versions" and "${min}"=="TLSv1.1" Run Keywords sleep 1
\ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i
\ ... AND sleep 1
\ ... AND click id=pro_min2
\ ... ELSE IF "${z}"!="Mirror Client Versions" and "${min}"=="TLSv1.2" Run Keywords sleep 1
\ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i
\ ... AND sleep 1
\ ... AND click id=pro_min3
\ ... ELSE IF "${z}"!="Mirror Client Versions" and "${min}"=="TLSv1.3" Run Keywords sleep 1
\ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i
\ ... AND sleep 1
\ ... AND click id=pro_min4
\ ... ELSE IF "${z}"!="Mirror Client Versions" and "${min}"=="SSLv3.0" Run Keywords sleep 1
\ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i
\ ... AND sleep 1
\ ... AND click id=pro_max0
\ ... ELSE IF "${z}"!="Mirror Client Versions" and "${max}"=="TLSv1.0" Run Keywords sleep 1
\ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i
\ ... AND sleep 1
\ ... AND click id=pro_max1
\ ... ELSE IF "${z}"!="Mirror Client Versions" and "${max}"=="TLSv1.1" Run Keywords sleep 1
\ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i
\ ... AND sleep 1
\ ... AND click id=pro_max2
\ ... ELSE IF "${z}"!="Mirror Client Versions" and "${max}"=="TLSv1.2" Run Keywords sleep 1
\ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i
\ ... AND sleep 1
\ ... AND click id=pro_max3
\ ... ELSE IF "${z}"!="Mirror Client Versions" and "${max}"=="TLSv1.3" Run Keywords sleep 1
\ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i
\ ... AND sleep 1
\ ... AND click id=pro_max4
\ ... ELSE IF "${z}"!="Mirror Client Versions" and "${max}"=="SSLv3.0" Run Keywords sleep 1
\ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i
\ ... AND sleep 1
\ ... AND click id=pro_max0
sleep 1
run keyword if "@{list5}"=="[]" Min_max_version ${min} ${max}
${class}= Get Element Attribute xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[3]/div[1]/div/div class
log ${class}
click id=insertAddOk1
Min_max_version
[Arguments] ${min} ${max}
run keyword if "${min}"=="TLSv1.0" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_min1
... ELSE IF "${min}"=="TLSv1.1" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_min2
... ELSE IF "${min}"=="TLSv1.2" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_min3
... ELSE IF "${min}"=="TLSv1.3" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_min4
... ELSE IF "${min}"=="SSLv3.0" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_max0
... ELSE log 错误
run keyword if "${max}"=="TLSv1.0" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_max1
... ELSE IF "${max}"=="TLSv1.1" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_max2
... ELSE IF "${max}"=="TLSv1.2" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_max3
... ELSE IF "${max}"=="TLSv1.3" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_max4
... ELSE IF "${max}"=="SSLv3.0" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_max0
... ELSE log 错误
CreateDecryptionProfile
[Arguments] ${name} ${search} ${dict1}=null ${fail1}=null ${min1}=null ${max1}=null
Sleep 1
click id=children6 #点击一级目录Settings
Sleep 1
click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles
sleep 2
click id=profilesTabs_Profile_DecryptionProfile #点击Decryption Profile
Sleep 1
click id=insertAdd #点击Create
Sleep 1
input id=insert_profileName ${name}
Sleep 1
ButtonSwitch ${dict1} //*[@id="policy_Manipulation_create8"]/div[2]/form/div/div/label[contains(text(), " ")]/following-sibling::div/div el-switch is-checked el-switch
${fail} Set Variable ${fail1}
run keyword if "${fail}"=="Fail-close" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[3]/div[5]/div/div/label[1]/span
... ELSE IF "${fail}"=="Pass-through" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[3]/div[5]/div/div/label[2]/span
... ELSE log 1111
${min} Set Variable ${min1}
${max} Set Variable ${max1}
run keyword if "${min}"=="TLSv1.0" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_min1
... ELSE IF "${min}"=="TLSv1.1" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_min2
... ELSE IF "${min}"=="TLSv1.2" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_min3
... ELSE IF "${min}"=="TLSv1.3" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_min4
... ELSE IF "${min}"=="SSLv3.0" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_min0
... ELSE log 错误
run keyword if "${max}"=="TLSv1.0" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_max1
... ELSE IF "${max}"=="TLSv1.1" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_max2
... ELSE IF "${max}"=="TLSv1.2" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_max3
... ELSE IF "${max}"=="TLSv1.3" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_max4
... ELSE IF "${max}"=="SSLv3.0" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_max0
... ELSE log 错误
sleep 2
click id=decryption-ok
Wait Until Element Is Enabled xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[2]/div/div[3]/table/tbody/tr/td[2]/div/div/span 20
sleep 1
Settings-Search ${name} ${search} #搜索框的关键字
sleep 2
${name1} get text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[2]/div/div[3]/table/tbody/tr/td[2]/div/div/span
Should Be Equal As Strings ${name1} ${name}
ButtonSwitch
[Arguments] ${dict1} ${xpath1} ${xpath2} ${open} ${close}
${dict} Set Variable ${dict1}
FOR ${list} ${key} IN ENUMERATE @{dict}
${class}= Get Element Attribute xpath=${xpath1}${key}${xpath2} class
run keyword if "${class}"=="${open}" and "${dict}[${key}]"=="1" log 默认开启,不进行操作
run keyword if "${class}"=="${open}" and "${dict}[${key}]"=="0" Run Keywords log 默认开启,但需求需要关闭,进行点击关闭按钮
... AND sleep 1
... AND click xpath=${xpath1}${key}${xpath2}/span
run keyword if "${class}"=="${close}" and "${dict}[${key}]"=="1" Run Keywords log 默认关闭,但需求需要开启,进行点击开启按钮
... AND sleep 1
... AND click xpath=${xpath1}${key}${xpath2}/span
run keyword if "${class}"=="${close}" and "${dict}[${key}]"=="0" log 默认关闭,不进行操作
END
EditDecryptionProfile
[Arguments] ${id-name} ${name} ${search} ${dict1}=null ${fail1}=null ${min1}=null
... ${max1}=null
click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles
sleep 2
click id=profilesTabs_Profile_DecryptionProfile #点击Decryption Profile
Sleep 1
Settings-Search ${id-name} ${search} #搜索框的关键字
Wait Until Element Is Visible xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[2]/div/div[3]/table/tbody/tr/td[2]/div/div/span 20
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[2]/div/div[3]/table/tbody/tr/td[2]/div/div/span #点击搜索列表
Sleep 1
click id=insertEdit #点击Edit
Sleep 2
Clear Element Text id=insert_profileName #清空name输入框
sleep 1
input id=insert_profileName ${name} #输入name
sleep 1
ButtonSwitch ${dict1} //*[@id="policy_Manipulation_create8"]/div[2]/form/div/div/label[contains(text(), " ")]/following-sibling::div/div el-switch is-checked el-switch
${fail} Set Variable ${fail1}
run keyword if "${fail}"=="Fail-close" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[6]/div[5]/div/div/label[1]/span
... ELSE IF "${fail}"=="Pass-through" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[6]/div[5]/div/div/label[2]/span
... ELSE log 1111
${min} Set Variable ${min1}
${max} Set Variable ${max1}
run keyword if "${min}"=="TLSv1.0" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[10]/div[2]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_min1
... ELSE IF "${min}"=="TLSv1.1" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[10]/div[2]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_min2
... ELSE IF "${min}"=="TLSv1.2" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[10]/div[2]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_min3
... ELSE IF "${min}"=="TLSv1.3" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[10]/div[2]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_min4
... ELSE IF "${min}"=="SSLv3.0" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[10]/div[2]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_min0
... ELSE log 错误
run keyword if "${max}"=="TLSv1.0" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[10]/div[3]/div/div/div[1]/span/span/i
... AND sleep 1
... AND click id=pro_max1
... ELSE IF "${max}"=="TLSv1.1" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[10]/div[3]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_max2
... ELSE IF "${max}"=="TLSv1.2" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[10]/div[3]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_max3
... ELSE IF "${max}"=="TLSv1.3" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[10]/div[3]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_max4
... ELSE IF "${max}"=="SSLv3.0" Run Keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[10]/div[3]/div/div/div/span/span/i
... AND sleep 1
... AND click id=pro_max0
... ELSE log 错误
click id=decryption-ok
Wait Until Element Is Visible id=profilesTabs_Profile_DecryptionProfile 30
Settings-Search ${id-name} ${search} #搜索框的关键字
${name1} get text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[2]/div/div[3]/table/tbody/tr/td[2]/div/div/span
Should Be Equal As Strings ${name1} ${name}
DecryptionProfileButtonVerification
[Arguments] ${dict1} ${id-name} ${search} ${xpath1}=//*[@id="policy_Manipulation_create8"]/div[2]/form/div/div/label[contains(text(), "
... ${xpath2}=")]/following-sibling::div/div
... ${open}=el-switch is-checked
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[2]/div/div[3]/table/tbody/tr/td[2]/div/div/span
sleep 1
click id=insertEdit
sleep 1
${dict} Set Variable ${dict1}
FOR ${list} ${key} IN ENUMERATE @{dict}
${class}= Get Element Attribute xpath=${xpath1}${key}${xpath2} class
sleep 1
Should Be Equal As Strings ${class} ${open}
END
sleep 1
click id=decryption-ok
Wait Until Element Is Visible id=profilesTabs_Profile_DecryptionProfile 20
Settings-Search ${id-name} ${search}
Delete
sleep 2
click id=insertDel
sleep 3
click xpath=/html/body/div/div/div[3]/button[2]
sleep 2
Policy_Verify
[Arguments] ${Select-Test1} ${APP-ID1} ${Address-type1}=null ${Client-IP1}=null ${Client-Port1}=null ${Server-IP1}=null
... ${Server-Port1}=null ${Protocol1}=null ${Subscriber-ID1}=null ${dict1}=null
Sleep 1
click id=children6 #点击一级目录Settings
Sleep 1
click id=sidebarTrouble_shooting #点击二级目录Trouble Shooting
Sleep 2
click id=Proxy_Profiles_Profile_ResponsePages #点击Policy Verify按钮
Sleep 1
${Select-Test} Set Variable ${Select-Test1}
Run Keyword If "${Select-Test}"=="Security Policy Match" Run Keywords click id=SelectPolicy
... AND sleep 1
... AND click id=SelectPolicytsg_security0
... ELSE IF "${Select-Test}"=="Proxy Policy Match" Run Keywords click id=SelectPolicy
... AND sleep 1
... AND click id=SelectPolicypxy_manipulation1
... ELSE log 错误
${Address-type} Set Variable ${Address-type1}
Run Keyword If "${Address-type}"=="v4" Run Keywords click id=ip_addrType
... AND sleep 1
... AND click id=ip_addrType1
... ELSE IF "${Address-type}"=="v6" Run Keywords click id=ip_addrType
... AND sleep 1
... AND click id=ip_addrType2
... ELSE log 错误
${Client-IP} Set Variable ${Client-IP1}
Run Keyword If "${Client-IP}"=="null" log 默认参数,不输入
... ELSE input id=clientIp ${Client-IP}
sleep 2
${Client-Port} Set Variable ${Client-Port1}
Run Keyword If "${Client-Port}"=="null" log 默认参数,不输入
... ELSE input id=clientPort ${Client-Port}
sleep 2
${Server-IP} Set Variable ${Server-IP1}
Run Keyword If "${Server-IP}"=="null" log 默认参数,不输入
... ELSE input id=serverIp ${Server-IP}
sleep 2
${Server-Port} Set Variable ${Server-Port1}
Run Keyword If "${Server-Port}"=="null" log 默认参数,不输入
... ELSE input id=ip_serverPort ${Server-Port}
sleep 2
${Protocol} Set Variable ${Protocol1}
Run Keyword If "${Protocol}"=="Any" Run Keywords click id=ip_protocol
... AND sleep 1
... AND click id=ip_protocol0Any
... ELSE IF "${Protocol}"=="TCP" Run Keywords click id=ip_protocol
... AND sleep 1
... AND click id=ip_protocol6TCP
... ELSE IF "${Protocol}"=="UDP" Run Keywords click id=ip_protocol
... AND sleep 1
... AND click id=ip_protocol17UDP
sleep 2
${Subscriber-ID} Set Variable ${Subscriber-ID1}
Run Keyword If "${Subscriber-ID}"=="null" log 默认参数,不输入
... ELSE input id=SubscriberID ${Subscriber-ID}
sleep 2
${APP-ID} Set Variable ${APP-ID1}
Run Keyword If "${Select-Test}"=="Security Policy Match" and "${APP-ID}"=="Protocol-HTTP" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div/div[1]/div[1]/form/div[9]/div/div
... AND sleep 2
... AND Policy_Verify_Switch ${APP-ID}
... AND click id=Protocol-HTTPhttp
... AND sleep 2
... ELSE IF "${Select-Test}"=="Security Policy Match" and "${APP-ID}"=="Protocol-SSL" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div/div[1]/div[1]/form/div[9]/div/div
... AND sleep 2
... AND Policy_Verify_Switch ${APP-ID}
... AND click id=Protocol-SSLssl
... ELSE IF "${Select-Test}"=="Security Policy Match" and "${APP-ID}"=="Protocol-DNS" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div/div[1]/div[1]/form/div[9]/div/div
... AND sleep 2
... AND Policy_Verify_Switch ${APP-ID}
... AND click id=Protocol-DNSdns
... ELSE IF "${Select-Test}"=="Security Policy Match" and "${APP-ID}"=="Protocol-MAIL" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div/div[1]/div[1]/form/div[9]/div/div
... AND sleep 2
... AND Policy_Verify_Switch ${APP-ID}
... AND click id=Protocol-MAILmail
... ELSE IF "${Select-Test}"=="Security Policy Match" and "${APP-ID}"=="Protocol-FTP" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div/div[1]/div[1]/form/div[9]/div/div
... AND sleep 2
... AND Policy_Verify_Switch ${APP-ID}
... AND click id=Protocol-FTPftp
... ELSE IF "${Select-Test}"=="Proxy Policy Match" and "${APP-ID}"=="Protocol-HTTP" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div/div[1]/div[1]/form/div[9]/div/div
... AND sleep 2
... AND Policy_Verify_Switch ${APP-ID}
... AND click id=Protocol-HTTPhttp
... ELSE IF "${Select-Test}"=="Proxy Policy Match" and "${APP-ID}"=="Protocol-DoH" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div/div[1]/div[1]/form/div[9]/div/div
... AND sleep 2
... AND Policy_Verify_Switch ${APP-ID}
... AND click id=Protocol-DoHDoH
... ELSE log 传入参数错误
${dict} Set Variable ${dict1}
: FOR ${list} ${key} IN ENUMERATE @{dict}
\ run keyword if "${key}"=="URL" and "${APP-ID}"=="Protocol-HTTP" Run Keywords click id=selectAppidBTN
\ ... AND sleep 1
\ ... AND click id=attributeName
\ ... AND sleep 2
\ ... AND click id=attributeNameurlURL
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ ... AND sleep 1
\ run keyword if "${key}"=="Host" and "${APP-ID}"=="Protocol-HTTP" Run Keywords click id=selectAppidBTN
\ ... AND sleep 1
\ ... AND click id=attributeName
\ ... AND sleep 2
\ ... AND click id=attributeNamehostHost
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ ... AND sleep 1
\ run keyword if "${key}"=="REQ Body" Run Keywords click id=selectAppidBTN
\ ... AND sleep 1
\ ... AND click id=attributeName
\ ... AND sleep 1
\ ... AND click id=attributeNamereq_bodyREQ Body
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ ... AND sleep 1
\ run keyword if "${key}"=="RES Body" Run Keywords click id=selectAppidBTN
\ ... AND sleep 1
\ ... AND click id=attributeName
\ ... AND sleep 1
\ ... AND click id=attributeNameres_bodyRES Body
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ ... AND sleep 1
\ run keyword if "${key}"=="REQ HDR" Run Keywords click id=selectAppidBTN
\ ... AND sleep 1
\ ... AND click id=attributeName
\ ... AND sleep 1
\ ... AND click id=attributeNamereq_hdrREQ HDR
\ ... AND sleep 1
\ ... AND Req_Res_Body ${dict}[${key}]
\ ... AND sleep 1
\ run keyword if "${key}"=="RES HDR" Run Keywords click id=selectAppidBTN
\ ... AND sleep 1
\ ... AND click id=attributeName
\ ... AND sleep 1
\ ... AND click id=attributeNameres_hdrRES HDR
\ ... AND sleep 1
\ ... AND Req_Res_Body ${dict}[${key}]
\ ... AND sleep 1
\ run keyword if "${key}"=="SNI" Run Keywords click id=selectAppidBTN
\ ... AND sleep 1
\ ... AND click id=attributeName
\ ... AND sleep 1
\ ... AND click id=attributeNamesniSNI
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ ... AND sleep 1
\ run keyword if "${key}"=="SAN" Run Keywords click id=selectAppidBTN
\ ... AND sleep 1
\ ... AND click id=attributeName
\ ... AND sleep 1
\ ... AND click id=attributeNamesanSAN
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ ... AND sleep 1
\ run keyword if "${key}"=="CN" Run Keywords click id=selectAppidBTN
\ ... AND sleep 1
\ ... AND click id=attributeName
\ ... AND sleep 1
\ ... AND click id=attributeNamecnCN
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ ... AND sleep 1
\ run keyword if "${key}"=="QNAME" and "${APP-ID}"=="Protocol-DNS" Run Keywords click id=selectAppidBTN
\ ... AND sleep 1
\ ... AND click id=attributeName
\ ... AND sleep 1
\ ... AND click id=attributeNameqnameQNAME
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ ... AND sleep 1
\ run keyword if "${key}"=="From" Run Keywords click id=selectAppidBTN
\ ... AND sleep 1
\ ... AND click id=attributeName
\ ... AND sleep 1
\ ... AND click id=attributeNamefromFrom
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ ... AND sleep 1
\ run keyword if "${key}"=="To" Run Keywords click id=selectAppidBTN
\ ... AND sleep 1
\ ... AND click id=attributeName
\ ... AND sleep 1
\ ... AND click id=attributeNametoTo
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ ... AND sleep 1
\ run keyword if "${key}"=="Account" and "${APP-ID}"=="Protocol-MAIL" Run Keywords click id=selectAppidBTN
\ ... AND sleep 1
\ ... AND click id=attributeName
\ ... AND sleep 1
\ ... AND click id=attributeNameaccountAccount
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ ... AND sleep 1
\ run keyword if "${key}"=="Subject" Run Keywords click id=selectAppidBTN
\ ... AND sleep 1
\ ... AND click id=attributeName
\ ... AND sleep 1
\ ... AND click id=attributeNamesubjectSubject
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ ... AND sleep 1
\ run keyword if "${key}"=="Content" and "${APP-ID}"=="Protocol-MAIL" Run Keywords click id=selectAppidBTN
\ ... AND sleep 1
\ ... AND click id=attributeName
\ ... AND sleep 1
\ ... AND click id=attributeNamecontentContent
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ ... AND sleep 1
\ run keyword if "${key}"=="ATT Name" Run Keywords click id=selectAppidBTN
\ ... AND sleep 1
\ ... AND click id=attributeName
\ ... AND sleep 1
\ ... AND click id=attributeNameatt_nameATT Name
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ ... AND sleep 1
\ run keyword if "${key}"=="ATT CONT" Run Keywords click id=selectAppidBTN
\ ... AND sleep 1
\ ... AND click id=attributeName
\ ... AND sleep 1
\ ... AND click id=attributeNameatt_contentATT CONT
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ ... AND sleep 1
\ run keyword if "${key}"=="URL" and "${APP-ID}"=="Protocol-FTP" Run Keywords click id=selectAppidBTN
\ ... AND sleep 1
\ ... AND click id=attributeName
\ ... AND sleep 1
\ ... AND click id=attributeNameurlURL
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ ... AND sleep 1
\ run keyword if "${key}"=="Content" and "${APP-ID}"=="Protocol-FTP" Run Keywords click id=selectAppidBTN
\ ... AND sleep 1
\ ... AND click id=attributeName
\ ... AND sleep 1
\ ... AND click id=attributeNamecontentContent
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ ... AND sleep 1
\ run keyword if "${key}"=="Account" and "${APP-ID}"=="Protocol-FTP" Run Keywords click id=selectAppidBTN
\ ... AND sleep 1
\ ... AND click id=attributeName
\ ... AND sleep 1
\ ... AND click id=attributeNameaccountAccount
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ ... AND sleep 1
\ run keyword if "${key}"=="QNAME" and "${APP-ID}"=="Protocol-DoH" Run Keywords click id=selectAppidBTN
\ ... AND sleep 1
\ ... AND click id=attributeName
\ ... AND sleep 1
\ ... AND click id=attributeNameqnameQNAME
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ ... AND sleep 1
\ run keyword if "${key}"=="Host" and "${APP-ID}"=="Protocol-DoH" Run Keywords click id=selectAppidBTN
\ ... AND sleep 1
\ ... AND click id=attributeName
\ ... AND sleep 1
\ ... AND click id=attributeNamehostHost
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ ... AND sleep 1
sleep 2
click id=verify-ok
sleep 2
${State} get text xpath=//*[@id="app"]/div/div[3]/div/div/div[3]/div[1]/div[2]/div/div[2]/div[2]/ul/li[2]/span[3]
sleep 2
Should Be Equal As Strings ${State} Execute #断言
Req_Res_Body
[Arguments] ${dict1}
${dict} Set Variable ${dict1}
: FOR ${list} ${key} IN ENUMERATE @{dict}
\ run keyword if "${key}"=="User Agent" Run Keywords click id=attributeValue_district
\ ... AND sleep 1
\ ... AND click id=attributeValue_districtUser-AgentUser Agent
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ run keyword if "${key}"=="Cookie" Run Keywords click id=attributeValue_district
\ ... AND sleep 1
\ ... AND click id=attributeValue_districtCookieCookie
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ run keyword if "${key}"=="Set-Cookie" Run Keywords click id=attributeValue_district
\ ... AND sleep 1
\ ... AND click id=attributeValue_districtSet-CookieSet-Cookie
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
\ run keyword if "${key}"=="Content-Type" Run Keywords click id=attributeValue_district
\ ... AND sleep 1
\ ... AND click id=attributeValue_districtContent-TypeContent-Type
\ ... AND sleep 1
\ ... AND input id=attributeValue_string ${dict}[${key}]
CreateIpLibraries
[Arguments] ${type1} ${type} ${Continent/Country} ${GeoNameID} ${City} ${ip} ${j}=1 ${Country}=null ${Longitude}=null ${Latitude}=null
Sleep 1
click id=children6 #点击一级目录Settings
Sleep 1
click id=sidebarAdvanced
sleep 1
click id=Advanced/ipLibrary #点击二级目录IP_Libraries
Sleep 2
click id=tagAdd #点击Create按钮
sleep 2
run keyword if "${type}"=="Country" Run Keywords click id=security_action_country
... AND sleep 1
... AND click id=ip_geography_continent
... AND sleep 1
... AND Switch_Geographic_Locations ${Continent/Country}
... AND input id=ip_geography_Country1 ${Country}
run keyword if "${type}"=="City" Run Keywords click id=security_action_city
... AND sleep 1
... AND click id=ip_geography_Country
... AND sleep 1
... AND Switch_Geographic_Locations ${Continent/Country}
sleep 1
input id=ip_geography_name ${GeoNameID}
sleep 1
input id=ip_geography_City ${City}
sleep 1
click id=ip_geography_IPRange
sleep 1
input id=ip_input0 ${ip}[0]
sleep 1
run keyword if "${j}"!="1" Ip_Range_Create ${j} ${ip}
run keyword if "${Longitude}"!="null" Run Keywords input id=ip_geography_longitude ${Longitude}
... AND sleep 1
run keyword if "${Latitude}"!="null" Run Keywords input id=ip_geography_latitude ${Latitude}
... AND sleep 1
click id=IP_library_add
Wait Until Element Is Enabled xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[1]/div/div/div 20
#验证新建是否成功
Switch_IP_Libraries ${type1} ${GeoNameID} ${GeoNameID}
${GeoNameText} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[1]/div/div/div
sleep 2
Should Be Equal As Strings ${GeoNameText} ${GeoNameID} #断言
EditIpLibraries
[Arguments] ${type} ${GeoNameID} ${City}=null ${ip}=null ${j}=1 ${Country}=null ${Longitude}=null ${Latitude}=null ${type1}=null ${type2}=null
click id=tagEdit #点击Edit按钮
sleep 2
run keyword if "${City}"!="null" input id=ip_geography_City ${City}
sleep 1
run keyword if "${type1}"=="edit" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[2]/form/div[3]/div/div[2]/div[2]/ul/li/div[2]/i[1]
... AND sleep 1
... AND clear element text xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[2]/form/div[3]/div/div[2]/div[2]/ul/li/div[1]/form/div/div/div
... AND sleep 1
... AND input id=ip_input0 ${ip}[0]
... AND sleep 1
run keyword if "${type1}"=="create" Ip_Range_Edit_Create ${j} ${ip}
sleep 1
run keyword if "${type1}"=="delete" and "${type2}"=="create" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[2]/form/div[3]/div/div[2]/div[2]/ul/li/div[2]/i[2]
... AND sleep 1
... AND Ip_Range_Edit_Create ${j} ${ip}
run keyword if "${type1}"=="null" log 不做更改
run keyword if "${Longitude}"!="null" Run Keywords input id=ip_geography_longitude ${Longitude}
... AND sleep 1
run keyword if "${Latitude}"!="null" Run Keywords input id=ip_geography_latitude ${Latitude}
... AND sleep 1
click id=IP_library_add
Wait Until Element Is Enabled xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[1]/div/div/div 20
#验证修改是否成功
Switch_IP_Libraries ${type} ${GeoNameID} ${GeoNameID}
${GeoNameText} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[1]/div/div/div
sleep 2
Should Be Equal As Strings ${GeoNameText} ${GeoNameID} #断言
CreateIpLibrariesErrorVerification
[Arguments] ${type1} ${type} ${Continent/Country} ${GeoNameID} ${City} ${ip} ${AssertPath} ${AssertText} ${j}=1 ${Country}=null ${Longitude}=null ${Latitude}=null
Sleep 1
click id=children6 #点击一级目录Settings
Sleep 1
click id=sidebarAdvanced
sleep 1
click id=Advanced/ipLibrary #点击二级目录IP_Libraries
Sleep 2
click id=tagAdd #点击Create按钮
sleep 2
run keyword if "${type}"=="Country" Run Keywords click id=security_action_country
... AND sleep 1
... AND click id=ip_geography_continent
... AND sleep 1
... AND Switch_Geographic_Locations ${Continent/Country}
... AND input id=ip_geography_Country1 ${Country}
run keyword if "${type}"=="City" Run Keywords click id=security_action_city
... AND sleep 1
... AND click id=ip_geography_Country
... AND sleep 1
... AND Switch_Geographic_Locations ${Continent/Country}
sleep 1
input id=ip_geography_name ${GeoNameID}
sleep 1
input id=ip_geography_City ${City}
sleep 1
click id=ip_geography_IPRange
sleep 1
input id=ip_input0 ${ip}[0]
sleep 1
run keyword if "${j}"!="1" Ip_Range_Create ${j} ${ip}
run keyword if "${Longitude}"!="null" Run Keywords input id=ip_geography_longitude ${Longitude}
... AND sleep 1
run keyword if "${Latitude}"!="null" Run Keywords input id=ip_geography_latitude ${Latitude}
... AND sleep 1
click id=IP_library_add
sleep 2
${text} get text xpath=${AssertPath}
Should Be Equal As Strings ${text} ${AssertText}
SystemUsagePolicyVerification
[Arguments] ${type} ${DisabledOREnabled}
[Documentation]
... ${type}:查询的字段 格式:(Proxy/Security/WANNAT/ProxyTCPOptions)_(Disabled/Enabled)
click id=Advanced/storageQuota #点击System Usage
Sleep 1
${text1}= SystemUsageChart ${type}
click id=Advanced/storageQuota
sleep 1
${text2}= SystemUsageText ${type}
${text3}= SystemUsagePolicySQLVerification ${type} ${DisabledOREnabled}
Should Be Equal As Strings ${text1} ${text2}
Should Be Equal As Strings ${text2} ${text3}
SystemUsageObjectsVerification
[Arguments] ${type}
[Documentation]
... ${type}:查询的字段 格式:(Proxy/Security/WANNAT/ProxyTCPOptions)_(Disabled/Enabled)
click id=Advanced/storageQuota #点击System Usage
Sleep 1
${text1}= SystemUsageChart ${type}
click id=Advanced/storageQuota
sleep 1
${text2}= SystemUsageText ${type}
${text3}= SystemUsageObjectsSQLVerification ${type}
Should Be Equal As Strings ${text1} ${text2}
Should Be Equal As Strings ${text2} ${text3}
SystemUsageChart
[Arguments] ${type}
${ChartSuspension} Set Variable if "${type}"=="Proxy_Disabled" or "${type}"=="Proxy_Enabled" //*[@id="settings_storage"]/div[1]/div[2]/div[1]/div/div/div[2]/div[1] #为图上悬浮定位变量赋值
... "${type}"=="Security_Disabled" or "${type}"=="Security_Enabled" //*[@id="settings_storage"]/div[1]/div[2]/div[1]/div/div/div[2]/div[2]
... "${type}"=="WANNAT_Disabled" or "${type}"=="WANNAT_Enabled" //*[@id="settings_storage"]/div[1]/div[2]/div[1]/div/div/div[2]/div[3]
... "${type}"=="ProxyTCPOptions_Disabled" or "${type}"=="ProxyTCPOptions_Enabled" //*[@id="settings_storage"]/div[1]/div[2]/div[1]/div/div/div[2]/div[4]
... "${type}"=="Accounts_Items" or "${type}"=="Accounts_Objects" //*[@id="settings_storage"]/div[1]/div[2]/div[2]/div/div/div[2]/div[1]
... "${type}"=="FQDNs_Items" or "${type}"=="FQDNs_Objects" //*[@id="settings_storage"]/div[1]/div[2]/div[2]/div/div/div[2]/div[2]
... "${type}"=="HTTPSignatures_Items" or "${type}"=="HTTPSignatures_Objects" //*[@id="settings_storage"]/div[1]/div[2]/div[2]/div/div/div[2]/div[3] #定位不到
... "${type}"=="Keywords_Items" or "${type}"=="Keywords_Objects" //*[@id="settings_storage"]/div[1]/div[2]/div[2]/div/div/div[2]/div[4]
... "${type}"=="SubscriberIDs_Items" or "${type}"=="SubscriberIDs_Objects" //*[@id="settings_storage"]/div[1]/div[2]/div[2]/div/div/div[2]/div[5] #定位不到4、5、6URL
... "${type}"=="URLs_Items" or "${type}"=="URLs_Objects" //*[@id="settings_storage"]/div[1]/div[2]/div[2]/div/div/div[2]/div[6]
... "${type}"=="IPAddresses_IPV4_Items" or "${type}"=="IPAddresses_IPV6_Items" or "${type}"=="IPAddresses_IP_Objects" or "${type}"=="IPAddresses_Geography_Items" or "${type}"=="IPAddresses_Geography_Objects" or "${type}"=="IPAddresses_IPLearning_Items(IPv4)" or "${type}"=="IPAddresses_IPLearning_Objects" //*[@id="settings_storage"]/div[1]/div[2]/div[2]/div/div/div[2]/div[7]
... "${type}"=="Applications_Items" or "${type}"=="Applications_Objects" or "${type}"=="Applications_Groups_Objects" or "${type}"=="Applications_Groups_Items" or "${type}"=="Applications_Selectors_Objects" or "${type}"=="Applications_Selectors_Items" //*[@id="settings_storage"]/div[1]/div[2]/div[2]/div/div/div[2]/div[8]
sleep 1
${ChartValueXpath}= SystemUsageGetText ${type}
Mouse Over xpath=${ChartSuspension}
Wait Until Element Is Visible xpath=/html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[1]/td[2]/div/span 10
${text1} get text xpath=${ChartValueXpath} #获取图表上的值
[Return] ${text1}
SystemUsageText
[Arguments] ${type}
${TextSuspension} Set Variable if "${type}"=="Proxy_Disabled" or "${type}"=="Proxy_Enabled" //*[@id="settings_storage"]/div[1]/div[2]/div[1]/div/div/div[3]/div[1]/span/div/div[2] #在文本统计悬浮定位变量赋值
... "${type}"=="Security_Disabled" or "${type}"=="Security_Enabled" //*[@id="settings_storage"]/div[1]/div[2]/div[1]/div/div/div[3]/div[2]
... "${type}"=="WANNAT_Disabled" or "${type}"=="WANNAT_Enabled" //*[@id="settings_storage"]/div[1]/div[2]/div[1]/div/div/div[3]/div[3]
... "${type}"=="ProxyTCPOptions_Disabled" or "${type}"=="ProxyTCPOptions_Enabled" //*[@id="settings_storage"]/div[1]/div[2]/div[1]/div/div/div[3]/div[4]
... "${type}"=="Accounts_Items" or "${type}"=="Accounts_Objects" //*[@id="settings_storage"]/div[1]/div[2]/div[2]/div/div/div[3]/div[1]
... "${type}"=="FQDNs_Items" or "${type}"=="FQDNs_Objects" //*[@id="settings_storage"]/div[1]/div[2]/div[2]/div/div/div[3]/div[2]
... "${type}"=="HTTPSignatures_Items" or "${type}"=="HTTPSignatures_Objects" //*[@id="settings_storage"]/div[1]/div[2]/div[2]/div/div/div[3]/div[3]
... "${type}"=="Keywords_Items" or "${type}"=="Keywords_Objects" //*[@id="settings_storage"]/div[1]/div[2]/div[2]/div/div/div[3]/div[4]
... "${type}"=="SubscriberIDs_Items" or "${type}"=="SubscriberIDs_Objects" //*[@id="settings_storage"]/div[1]/div[2]/div[2]/div/div/div[3]/div[5]
... "${type}"=="URLs_Items" or "${type}"=="URLs_Objects" //*[@id="settings_storage"]/div[1]/div[2]/div[2]/div/div/div[3]/div[6]
... "${type}"=="IPAddresses_IPV4_Items" or "${type}"=="IPAddresses_IPV6_Items" or "${type}"=="IPAddresses_IP_Objects" or "${type}"=="IPAddresses_Geography_Items" or "${type}"=="IPAddresses_Geography_Objects" or "${type}"=="IPAddresses_IPLearning_Items(IPv4)" or "${type}"=="IPAddresses_IPLearning_Objects" //*[@id="settings_storage"]/div[1]/div[2]/div[2]/div/div/div[3]/div[7]
... "${type}"=="Applications_Items" or "${type}"=="Applications_Objects" or "${type}"=="Applications_Groups_Objects" or "${type}"=="Applications_Groups_Items" or "${type}"=="Applications_Selectors_Objects" or "${type}"=="Applications_Selectors_Items" //*[@id="settings_storage"]/div[1]/div[2]/div[2]/div/div/div[3]/div[8]
sleep 1
${TextValueXpath}= SystemUsageGetText ${type}
Mouse Over xpath=${TextSuspension}
Wait Until Element Is Visible xpath=/html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[1]/td[2]/div/span 10
${text2} get text xpath=${TextValueXpath}
[Return] ${text2}
SystemUsagePolicySQLVerification
[Arguments] ${type} ${DisabledOREnabled}
click id=Advanced/storageQuota #点击System Usage
sleep 1
${DisabledOREnabled} Set Variable if "${DisabledOREnabled}"=="Disabled" 0 1
${SQL} Set Variable if "${type}"=="Proxy_Disabled" or "${type}"=="Proxy_Enabled" pxy_ctrl_compile
... "${type}"=="Security_Disabled" or "${type}"=="Security_Enabled" tsg_security_compile
... "${type}"=="WANNAT_Disabled" or "${type}"=="WANNAT_Enabled" wannat_compile
... "${type}"=="ProxyTCPOptions_Disabled" or "${type}"=="ProxyTCPOptions_Enabled" pxy_tcp_option_compile
Connect To Database Using Custom Params pymysql ${mysqlHost}
${text1} query SELECT count(*) FROM ${SQL} WHERE is_initialize !=1 And is_valid=${DisabledOREnabled}
${text1} Set Variable ${text1[0][0]}
Disconnect From Database
${a} Set Variable ${1}
${text2} Evaluate ${text1}+${a}
${text1} Set Variable if "${type}"=="Security_Enabled" or "${type}"=="ProxyTCPOptions_Enabled" ${text2} ${text1}
[Return] ${text1}
SystemUsageObjectsSQLVerification
[Arguments] ${type}
[Documentation]
... ${type}:验证的类型
${SQL} Set Variable if "${type}"=="Accounts_Items" select count(*) from tsg_obj_account where is_initialize !=1
... "${type}"=="Accounts_Objects" select count(*) from policy_object where group_type='account' and is_initialize !=1
... "${type}"=="FQDNs_Items" SELECT count(*) from tsg_obj_fqdn where is_initialize !=1 and group_id !=1
... "${type}"=="FQDNs_Objects" select count(*) from policy_object where group_type = 'fqdn' and is_initialize !=1
... "${type}"=="HTTPSignatures_Items" select count(*) from tsg_obj_http_signature where is_initialize !=1
... "${type}"=="HTTPSignatures_Objects" select count(*) from policy_object where group_type = 'http_signature' and is_initialize !=1
... "${type}"=="Keywords_Items" select count(*) from tsg_obj_keywords where is_initialize !=1
... "${type}"=="Keywords_Objects" select count(*) from policy_object where group_type = 'keywords' and is_initialize !=1
... "${type}"=="SubscriberIDs_Items" select count(*) from tsg_obj_subscriber_id where is_initialize !=1
... "${type}"=="SubscriberIDs_Objects" select count(*) from policy_object where group_type = 'subscriberid' and is_initialize !=1
... "${type}"=="URLs_Items" select count(*) from tsg_obj_url where is_initialize !=1
... "${type}"=="URLs_Objects" select count(*) from policy_object where group_type = 'url' and is_initialize !=1
... "${type}"=="IPAddresses_IPV4_Items" select count(*) from tsg_obj_ip_addr where is_initialize !=1 and addr_type =4
... "${type}"=="IPAddresses_IPV6_Items" select count(*) from tsg_obj_ip_addr where is_initialize !=1 and addr_type =6
... "${type}"=="IPAddresses_IP_Objects" select count(*) from policy_object where group_type = 'ip' and is_initialize !=1 and group_sub_type = 'endpoint'
... "${type}"=="IPAddresses_Geography_Items" SELECT count(*) from tsg_obj_geo_location where is_initialize !=1
... "${type}"=="IPAddresses_Geography_Objects" select count(*) from policy_object where group_type = 'ip' and is_initialize !=1 and group_sub_type = 'geo_location'
... "${type}"=="IPAddresses_IPLearning_Items(IPv4)" select count(*) from tsg_obj_ip_learning_addr where is_initialize !=1
... "${type}"=="IPAddresses_IPLearning_Objects" select count(*) from policy_object where group_type = 'ip' and is_initialize !=1 and group_sub_type = 'ip_learning'
... "${type}"=="Applications_Items" select count(*) from tsg_obj_app_id where is_initialize !=1 and is_valid = 1
... "${type}"=="Applications_Objects" select count(*) from policy_object where group_type = 'app_id' and is_initialize !=1 and group_member_type = 1
... "${type}"=="Applications_Groups_Objects" select count(*) from policy_object where group_type = 'app_id' and is_initialize !=1 and group_member_type != 1
... "${type}"=="Applications_Groups_Items" select count(*) from tsg_obj_app_id where is_initialize !=1 and is_valid != 1
... "${type}"=="Applications_Selectors_Objects" or "${type}"=="Applications_Selectors_Items" select count(*) from app_selector_compile
Connect To Database Using Custom Params pymysql ${mysqlHost}
${text} query ${SQL}
${text} Set Variable ${text[0][0]}
Disconnect From Database
[Return] ${text}
SystemUsageGetText
[Arguments] ${type}
${TextValueXpath} Set Variable if "${type}"=="Proxy_Disabled" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[1]/td[2]/div/span #在文本统计获取Value定位变量赋值
... "${type}"=="Proxy_Enabled" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[2]/td[2]/div/span
... "${type}"=="Security_Disabled" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[1]/td[2]/div/span
... "${type}"=="Security_Enabled" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[2]/td[2]/div/span
... "${type}"=="WANNAT_Disabled" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[1]/td[2]/div/span
... "${type}"=="WANNAT_Enabled" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[2]/td[2]/div/span
... "${type}"=="ProxyTCPOptions_Disabled" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[1]/td[2]/div/span
... "${type}"=="ProxyTCPOptions_Enabled" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[2]/td[2]/div/span
... "${type}"=="Accounts_Items" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[1]/td[2]/div/span
... "${type}"=="Accounts_Objects" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[2]/td[2]/div/span
... "${type}"=="FQDNs_Items" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[1]/td[2]/div/span
... "${type}"=="FQDNs_Objects" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[2]/td[2]/div/span
... "${type}"=="HTTPSignatures_Items" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[1]/td[2]/div/span
... "${type}"=="HTTPSignatures_Objects" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[2]/td[2]/div/span
... "${type}"=="Keywords_Items" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[1]/td[2]/div/span
... "${type}"=="Keywords_Objects" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[2]/td[2]/div/span
... "${type}"=="SubscriberIDs_Items" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[1]/td[2]/div/span
... "${type}"=="SubscriberIDs_Objects" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[2]/td[2]/div/span
... "${type}"=="URLs_Items" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[1]/td[2]/div/span
... "${type}"=="URLs_Objects" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[2]/td[2]/div/span
... "${type}"=="IPAddresses_IPV4_Items" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[3]/td[2]/div/span
... "${type}"=="IPAddresses_IPV6_Items" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[4]/td[2]/div/span
... "${type}"=="IPAddresses_IP_Objects" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[2]/td[2]/div/span
... "${type}"=="IPAddresses_Geography_Items" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[7]/td[2]/div/span
... "${type}"=="IPAddresses_Geography_Objects" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[6]/td[2]/div/span
... "${type}"=="IPAddresses_IPLearning_Objects" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[9]/td[2]/div/span
... "${type}"=="IPAddresses_IPLearning_Items(IPv4)" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[10]/td[2]/div/span
... "${type}"=="Applications_Objects" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[2]/td[2]/div/span
... "${type}"=="Applications_Items" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[3]/td[2]/div/span
... "${type}"=="Applications_Groups_Objects" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[5]/td[2]/div/span
... "${type}"=="Applications_Groups_Items" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[6]/td[2]/div/span
... "${type}"=="Applications_Selectors_Objects" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[8]/td[2]/div/span
... "${type}"=="Applications_Selectors_Items" /html/body/div[last()]/div[1]/div/div/div[2]/table/tbody/tr[9]/td[2]/div/span
[Return] ${TextValueXpath}
CreatePacketCapture
[Arguments] ${name} ${AddressType} ${ClientIP} ${Protocol} ${EffectiveDevices} ${CapturedNumber} ${CaptureDuration} ${ClientPort}=null ${ServerIP}=null ${ServerPort}=null
[Documentation]
... ${name}:name
... ${AddressType}:IPV4 or IPV6
... ${ClientIP}:客户端IP
... ${Protocol}:协议
... ${EffectiveDevices}:生效范围
... ${CapturedNumber}:最大捕包数
... ${CaptureDuration}:捕包时长
... ${ClientPort}:客户端端口 默认为空
... ${ServerIP}:服务器 IP 默认为空
... ${ServerPort}:服务器端口 默认为空
Sleep 1
OpenPages sidebarTrouble_shooting Proxy_Profiles_Profile_Insert
click id=packet_create
sleep 2
input id=PacketCaptureadd_name ${name}
sleep 1
run keyword if "${AddressType}"=="IPV6" run keywords sleep 1
... AND click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[1]/div/div[2]/form/div[2]/div/div/div/span/span/i
... AND sleep 1
... AND click id=select_addrtype1
... AND sleep 1
input id=PacketCaptureadd_cliIp ${ClientIP}
sleep 1
run keyword if "${ClientPort}"!="null" run keywords sleep 1
... AND input id=PacketCaptureadd_cliPort ${ClientPort}
... AND sleep 1
... ELSE log ClientPort不输入
run keyword if "${ServerIP}"!="null" run keywords sleep 1
... AND input id=PacketCaptureadd_serIp ${ServerIP}
... AND sleep 1
... ELSE log ServerIP不输入
run keyword if "${ServerPort}"!="null" run keywords sleep 1
... AND input id=PacketCaptureadd_serPort ${ServerPort}
... AND sleep 1
... ELSE log ServerPort不输入
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[1]/div/div[2]/form/div[7]/div/div/div/span/span/i
sleep 1
run keyword if "${Protocol}"=="TCP" run keywords sleep 1
... AND click id=select_Protocol0
... ELSE IF "${Protocol}"=="UDP" run keywords sleep 1
... AND click id=select_Protocol1
... ELSE IF "${Protocol}"=="Any" run keywords sleep 1
... AND click id=select_Protocol2
sleep 1
PacketCaptureEffectiveDevices ${EffectiveDevices}
input id=PacketCaptureadd_MaxPacketCapNum ${CapturedNumber}
sleep 1
input id=PacketCaptureadd_pcapStorageDay ${CaptureDuration}
sleep 1
click id=packetCaptureAdd_ok
Wait Until Element is Visible xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1] 30
Settings-search ${name} name
sleep 1
${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[4]/div/div/div/p/span
Should Be Equal As Strings ${text} ${name}
EditPacketCapture
[Arguments] ${name} ${AddressType} ${ClientIP} ${Protocol} ${EffectiveDevices} ${CapturedNumber} ${CaptureDuration} ${ClientPort}=null ${ServerIP}=null ${ServerPort}=null
[Documentation]
... ${name}:name
... ${AddressType}:IPV4 or IPV6
... ${ClientIP}:客户端IP
... ${Protocol}:协议
... ${EffectiveDevices}:生效范围
... ${CapturedNumber}:最大捕包数
... ${CaptureDuration}:捕包时长
... ${ClientPort}:客户端端口 默认为空
... ${ServerIP}:服务器 IP 默认为空
... ${ServerPort}:服务器端口 默认为空
click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]
Sleep 1
click id=packet_edit
sleep 2
input id=PacketCaptureadd_name ${name}
sleep 1
run keyword if "${AddressType}"=="IPV6" run keywords sleep 1
... AND click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[1]/div/div[2]/form/div[2]/div/div/div/span/span/i
... AND sleep 1
... AND click id=select_addrtype1
... AND sleep 1
input id=PacketCaptureadd_cliIp ${ClientIP}
sleep 1
run keyword if "${ClientPort}"!="null" run keywords sleep 1
... AND Clear Element Text id=PacketCaptureadd_cliPort
... AND sleep 1
... AND input id=PacketCaptureadd_cliPort ${ClientPort}
... AND sleep 1
... ELSE log ClientPort不输入
run keyword if "${ServerIP}"!="null" run keywords sleep 1
... AND input id=PacketCaptureadd_serIp ${ServerIP}
... AND sleep 1
... ELSE log ServerIP不输入
run keyword if "${ServerPort}"!="null" run keywords sleep 1
... AND Clear Element Text id=PacketCaptureadd_serPort
... AND sleep 1
... AND input id=PacketCaptureadd_serPort ${ServerPort}
... AND sleep 1
... ELSE log ServerPort不输入
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[1]/div/div[2]/form/div[7]/div/div/div/span/span/i
sleep 1
run keyword if "${Protocol}"=="TCP" run keywords sleep 1
... AND click id=select_Protocol0
... ELSE IF "${Protocol}"=="UDP" run keywords sleep 1
... AND click id=select_Protocol1
... ELSE IF "${Protocol}"=="Any" run keywords sleep 1
... AND click id=select_Protocol2
sleep 1
click id=packetCaptureAdd_effremove
sleep 1
PacketCaptureEffectiveDevices ${EffectiveDevices}
input id=PacketCaptureadd_MaxPacketCapNum ${CapturedNumber}
sleep 1
input id=PacketCaptureadd_pcapStorageDay ${CaptureDuration}
sleep 1
click id=packetCaptureAdd_ok
Wait Until Element is Visible xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1] 30
Settings-search ${name} name
sleep 2
${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[4]/div/div/div/p/span
Should Be Equal As Strings ${text} ${name}
PacketCaptureEffectiveDevices
[Arguments] ${EffectiveDevices}
click id=PacketCaptureadd_EDevice
sleep 1
run keyword if "${EffectiveDevices}"=="Nur-sultan" run keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create4"]/div/div[2]/div/div/div/div[1]/div/div/div[1]/div[1]/label/span/span
... ELSE IF "${EffectiveDevices}"=="Aktau" run keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create4"]/div/div[2]/div/div/div/div[1]/div/div/div[2]/div[1]/label/span/span
... ELSE IF "${EffectiveDevices}"=="Aktubinsk" run keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create4"]/div/div[2]/div/div/div/div[1]/div/div/div[3]/div[1]/label/span/span
... ELSE IF "${EffectiveDevices}"=="Almaty" run keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create4"]/div/div[2]/div/div/div/div[1]/div/div/div[4]/div[1]/label/span/span
... ELSE IF "${EffectiveDevices}"=="Atyrau" run keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create4"]/div/div[2]/div/div/div/div[1]/div/div/div[5]/div[1]/label/span/span
... ELSE IF "${EffectiveDevices}"=="Karaganda" run keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create4"]/div/div[2]/div/div/div/div[1]/div/div/div[6]/div[1]/label/span/span
... ELSE IF "${EffectiveDevices}"=="Kokshetau" run keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create4"]/div/div[2]/div/div/div/div[1]/div/div/div[7]/div[1]/label/span/span
... ELSE IF "${EffectiveDevices}"=="Kostanay" run keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create4"]/div/div[2]/div/div/div/div[1]/div/div/div[8]/div[1]/label/span/span
... ELSE IF "${EffectiveDevices}"=="Kyzylorda" run keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create4"]/div/div[2]/div/div/div/div[1]/div/div/div[9]/div[1]/label/span/span
... ELSE IF "${EffectiveDevices}"=="Pavlodar" run keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create4"]/div/div[2]/div/div/div/div[1]/div/div/div[10]/div[1]/label/span/span
... ELSE IF "${EffectiveDevices}"=="Petropavl" run keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create4"]/div/div[2]/div/div/div/div[1]/div/div/div[11]/div[1]/label/span/span
... ELSE IF "${EffectiveDevices}"=="Semey" run keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create4"]/div/div[2]/div/div/div/div[1]/div/div/div[12]/div[1]/label/span/span
... ELSE IF "${EffectiveDevices}"=="Shymkent" run keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create4"]/div/div[2]/div/div/div/div[1]/div/div/div[13]/div[1]/label/span/span
... ELSE IF "${EffectiveDevices}"=="Taldykurgan" run keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create4"]/div/div[2]/div/div/div/div[1]/div/div/div[14]/div[1]/label/span/span
... ELSE IF "${EffectiveDevices}"=="Taraz" run keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create4"]/div/div[2]/div/div/div/div[1]/div/div/div[15]/div[1]/label/span/span
... ELSE IF "${EffectiveDevices}"=="Uralsk" run keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create4"]/div/div[2]/div/div/div/div[1]/div/div/div[16]/div[1]/label/span/span
... ELSE IF "${EffectiveDevices}"=="Ust-Kamenogorsk" run keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create4"]/div/div[2]/div/div/div/div[1]/div/div/div[17]/div[1]/label/span/span
... ELSE IF "${EffectiveDevices}"=="Zhezkazgan" run keywords sleep 1
... AND click xpath=//*[@id="policy_Manipulation_create4"]/div/div[2]/div/div/div/div[1]/div/div/div[18]/div[1]/label/span/span
sleep 1
click id=proxyManipulationConditionsAreaSuccess
sleep 1
PacketCaptureSerch
[Arguments] ${status}
sleep 1
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[1]/span/div/div/div[2]/div/div/div[1]/input #点击搜索框
sleep 1
click xpath=/html/body/div/div[1]/div[1]/ul/li[6]
sleep 1
run keyword if "${status}"=="Effective" run keywords sleep 1
... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1]/span
... ELSE IF "${status}"=="Invalid" run keywords sleep 1
... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[2]/span
sleep 1
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[1]/span/div/i
Switch_Geographic_Locations
[Arguments] ${Continent/Country}
sleep 1
input id=objectName_seach ${Continent/Country}
sleep 1
press keys id=objectName_seach ENTER
sleep 2
click xpath=//*[@id="right_locationList"]/div[2]/div[1]/div[2]/div/div
sleep 1
click id=interceptionadd_allcancelobject9
sleep 1
Ip_Range_Create
[Arguments] ${j} ${ip}
sleep 1
: FOR ${i} IN RANGE 1 ${j}
\ sleep 1
\ click id=addIPList
\ sleep 1
\ input id=ip_input${i} ${ip}[${i}]
\ sleep 1
Ip_Range_Edit_Create
[Arguments] ${j} ${ip}
sleep 1
: FOR ${i} IN RANGE ${j}
\ sleep 1
\ click id=addIPList
\ sleep 1
\ input id=ip_input${i} ${ip}[${i}]
\ sleep 1
sleep 1
DeleteIPLibraries
sleep 1
click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]
sleep 2
click id=tagDel
sleep 2
click xpath=/html/body/div/div/div[3]/button[2]
sleep 2
Switch_IP_Libraries
[Arguments] ${type} ${value} ${GeoName}
sleep 2
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div[1]/span/div/div/div[2]/div/div/div/input
sleep 2
run keyword if "${type}"=="Geo Name" Run Keywords click xpath=/html/body/div/div[1]/div[1]/ul/li[2]
... AND sleep 1
... AND input xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${value}
run keyword if "${type}"=="Country and Region" Run Keywords click xpath=/html/body/div/div[1]/div[1]/ul/li[3]
... AND sleep 1
... AND input xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${value}
run keyword if "${type}"=="City" Run Keywords click xpath=/html/body/div/div[1]/div[1]/ul/li[4]
... AND sleep 1
... AND input xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${value}
run keyword if "${type}"=="Operator" Run Keywords click xpath=/html/body/div/div[1]/div[1]/ul/li[5]
... AND sleep 1
... AND input xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${value}
... AND sleep 1
... AND click xpath=/html/body/div[2]/div[1]/div[1]/ul/li[1]
sleep 1
sleep 1
click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div[1]/span/div/i
sleep 1
click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]
sleep 1
${GeoNameText} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[1]/div/div/div
sleep 2
Should Be Equal As Strings ${GeoNameText} ${GeoName} #断言
OpenPages
[Arguments] ${SecondaryMenu} ${Three-levelMenu} ${Targeting}=null
[Documentation]
... ${SecondaryMenu}:二级菜单
... ${Three-levelMenu}:三级菜单
... ${Targeting} :三级菜单 定位方式 默认不输入为id
click id=children6
Sleep 1
click id=${SecondaryMenu}
sleep 1
run keyword if "${Targeting}"=="null" run keywords sleep 1
... AND click id=${Three-levelMenu}
run keyword if "${Targeting}"=="xpath" run keywords sleep 1
... AND click ${Targeting}=${Three-levelMenu}
sleep 2
TurnPage
[Arguments] ${NextPage} ${PreviousPage} ${JumpInput} ${pages} ${AssertXpath} ${lastpage}=null ${lastxpath}=null
[Documentation]
... ${NextPage} 下一页按钮定位
... ${PreviousPage} 上一页按钮定位
... ${JumpInput} 跳转页面输入框
... ${pages} 跳转得页码
${text1} get text xpath=${AssertXpath}
click xpath=${NextPage}
sleep 2
${text2} get text xpath=${AssertXpath}
click xpath=${PreviousPage}
sleep 2
${text3} get text xpath=${AssertXpath}
Clear Element Text xpath=${JumpInput}
sleep 2
input text xpath=${JumpInput} ${pages}
sleep 2
press keys xpath=${JumpInput} ENTER
sleep 2
${text4} get text xpath=${AssertXpath}
run keyword if "${lastpage}" == "null" run keyowrds sleep 1
... AND click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[last()]/div/ul/li[last()]
... ELSE click xpath=${lastxpath}
sleep 2
${text5} get text xpath=${AssertXpath}
Should Not Be Equal ${text1} ${text2}
Should Not Be Equal ${text3} ${text2}
Should Not Be Equal ${text3} ${text4}
Should Not Be Equal ${text1} ${text5}
PagingDisplay_One
[Arguments] ${Number}
[Documentation]
... ${Number}: 设置页面显示数据条数 20、5、30、50、100
... ${last} 次关键字 当最后一页定位和其他页面不同时传入非null的值
... ${lastxpath} 当最后一页定位和其他页面不同时传入最后一页的xpath 定位
Mouse Over xpath=//*[@id="ly-table1-listcontent"]/div[2]/div/span/div/i
sleep 1
run keyword if "${Number}"=="30" run keywords sleep 1
... AND Click element xpath=//*[@id="page-size"]/div/label[2]
... ELSE IF "${Number}"=="50" run keywords sleep 1
... AND Click element xpath=//*[@id="page-size"]/div/label[3]
... ELSE IF "${Number}"=="100" run keywords sleep 1
... AND Click element xpath=//*[@id="page-size"]/div/label[4]
... ELSE Clear Element Text xpath=/html/body/div[last()]/div[1]/div[2]/input
... AND Input Text xpath=/html/body/div[last()]/div[1]/div[2]/input ${Number}
sleep 1
Click element xpath=/html/body/div[last()]/div[1]/div[2]/button
sleep 2
${text} Get text xpath=//*[@id="ly-table1-listcontent"]/div[2]/div/div/span[1]
sleep 1
${Quantity} StringSegmentation ${text}
sleep 1
${quyu} Evaluate ${Quantity}%${Number}
${qumo} Evaluate ${Quantity}/${Number}
${quzheng} Evaluate int(${qumo})
${b} Set Variable ${1}
${Page1} Evaluate ${quzheng}+${b}
${Page} Set Variable if "${qumo}" != "0" ${Page1} ${qumo}
sleep 1
${text} Get text xpath=//*[@id="ly-table1-listcontent"]/div[2]/div/div/ul/li[last()]
Should Be Equal As Strings ${text} ${Page}
ALL
[Arguments]
click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[5]/div/div/div/div/div[2]/div[7]
sleep 2
click element xpath=//*[@id="policy_IP_library1"]/div/p/i
sleep 2
DeleteKeyrings_del
sleep 2
click id=appDel
sleep 2
click xpath=/html/body/div/div/div[3]/button[2]
sleep 2
DeletehijackDel
sleep 2
click id=hijackDel
sleep 2
click xpath=/html/body/div/div/div[3]/button[2]
sleep 2
DeleteresinseDel
sleep 2
click id=resinseDel
sleep 2
click xpath=/html/body/div/div/div[3]/button[2]
sleep 2
Deletessl_del
sleep 2
click id=ssl_del
sleep 2
click xpath=/html/body/div/div/div[3]/button[2]
sleep 2
DeletetrafficMirrorDel
sleep 2
click id=trafficMirrorDel
sleep 2
click xpath=/html/body/div/div/div[3]/button[2]
sleep 2
DeleteAuthorities_del
sleep 2
click id=appDel
sleep 2
click xpath=/html/body/div/div/div[3]/button[2]
sleep 2
DeleteSSLFingerprint
sleep 2
click id=Fingerprint_del
sleep 2
click xpath=/html/body/div/div/div[3]/button[2]
sleep 3
DeletePacketCapture
sleep 2
click id=packet_del
sleep 2
click xpath=/html/body/div/div/div[3]/button[2]
Wait Until Element Is Enabled xpath=/html/body/div[last()]/p 20
Policy_Verify_Switch
[Arguments] ${Protocol}
sleep 1
input xpath=//*[@id="objectName_seach"] ${Protocol}
press keys xpath=//*[@id="objectName_seach"] ENTER
sleep 1
UploadFilesSize
[Arguments] ${Page} ${name} ${file} ${Promptinfor}
[Documentation]
... 必填参数:
... ${Page}:测试页面Name包括ResponsePages、InsertScripts、HijackFiles
... ${name}新建页面name输入框里的内容
... ${file}:上传文件本地
... ${Promptinfor}:页面提示信息
run keyword if "${Page}"=="ResponsePages" run keywords sleep 1
... AND click id=children6 #点击一级目录Settings
... AND Sleep 1
... AND click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles
... AND Sleep 2
... AND click id=respinseAdd #Response Pages点击Create
... AND Sleep 2
... AND input id=responsepages_profileName ${name} #输入name
... AND Sleep 2
... AND Choose File xpath=//*[@id="policy_Manipulation_create6"]/div[2]/form/div[2]/div/div/div/input ${file} #上传文件
... AND sleep 1
... AND click id=responseAddOk1
... AND sleep 1
run keyword if "${Page}"=="InsertScripts" run keywords sleep 1
... AND click id=children6 #点击一级目录Settings
... AND Sleep 1
... AND click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles
... AND Sleep 2
... AND click id=profilesTabs_Profile_Insert #点击Insert Scripts按钮
... AND Sleep 1
... AND click id=insertAdd #点击Create
... AND Sleep 2
... AND input id=insert_profileName ${name} #输入name
... AND Sleep 2
... AND Choose File xpath=//*[@id="insertAddUpload"]/div[1]/input ${file} #上传文件
... AND Sleep 2
... AND click id=insert_select_format #点击下拉框按钮
... AND Sleep 1
... AND click //span[.="css"] #选择css
... AND sleep 1
... AND click id=insertAddOk1 #点击OK
... AND sleep 2
run keyword if "${Page}"=="HijackFiles" run keywords sleep 1
... AND click id=children6 #点击一级目录Settings
... AND Sleep 1
... AND click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles
... AND Sleep 2
... AND click id=profilesTabs_Profile_HijackFiles #点击Hijack Files按钮
... AND Sleep 1
... AND click id=hijackAdd #点击Create
... AND Sleep 2
... AND input id=hijack_profileName ${name} #输入name
... AND Sleep 2
... AND Choose File xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[2]/div/div/div[1]/input ${file} #上传文件
... AND sleep 1
... AND click id=hijackAddContentType #点击+ 打开侧滑窗口
... AND Sleep 1
... AND click id=text/html0
... AND sleep 1
... AND click id=hijackAddOk1
... AND sleep 1
run keyword if "${Page}"=="SSLFingerprint" run keywords sleep 1
... AND click id=children6 #点击一级目录Settings
... AND Sleep 1
... AND click id=sidebarProxy_CertificateManagement #点击二级目录
... AND Sleep 2
... AND click xpath=//*[@id="proxyTabs"]/div/ul/li[5]
... AND Sleep 1
... AND click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div[1]/span[2]/button
... AND sleep 1
... AND Choose File xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[4]/div/div/div[2]/div/div[1]/input ${file}
... AND sleep 2
... AND click id=Import_ua_Ok
... AND sleep 1
run keyword if "${Page}" == "TrustedCertificateAuthorities" run keywords sleep 1
... AND click id=children6
... AND sleep 1
... AND click id=sidebarProxy_CertificateManagement #点击二级目录Trusted Certificate Authorities
... AND Sleep 2
... AND click id=app_create #点击Import
... AND Sleep 2
... AND input id=authoritiesAdd_name ${name} #输入name
... AND Sleep 2
... AND Choose File xpath=//*[@id="upload_dome"]/div/input ${file} #上传文件
... AND Sleep 2
... AND click id=authoritiesAdd_sub #点击OK缇交
... AND Sleep 2
${text} get text xpath=/html/body/div[last()]/p
Should Be Equal As Strings ${text} ${Promptinfor}
DownLoadFile
[Arguments] ${UploadFilePath} ${DownloadFilePath}
[Documentation]
... ${UploadFilePath}:上传文件路径
... ${DownloadFilePath}:文件下载路径
sleep 3
${a} get_md5_01 ${UploadFilePath}
sleep 1
${b} get_md5_01 ${DownloadFilePath}
sleep 1
Should Be Equal As Strings ${a} ${b}
sleep 2
Remove File ${DownloadFilePath}
sleep 2
#Run_Keyword_And_Continue_On_Failure File_Should_Exist ${DownloadFilePath} #出错后继续执行,如文件在指定路径存在则通过
DeleteReferencedData
[Arguments] ${Page} ${SecondaryMenu} ${ID} ${PromptInformation} ${Three-level menu}=null
[Documentation]
... ${Page}:当前页面
... ${SecondaryMenu}:二级目录
... ${ID} 查询数据的ID
... ${PromptInformation} :提示信息
... ${Three-levelMenu}:三级菜单
Sleep 1
click id=children6 #点击一级目录Settings
Sleep 1
click id=${SecondaryMenu} #点击二级目录Proxy Profiles
Sleep 2
run keyword if "${Three-levelMenu}"!="null" run keywords sleep 1
... AND click id=${Three-levelMenu}
sleep 1
Settings-Search ${ID} id
Sleep 2
run keyword if "${Page}"=="ResponsePage" run keywords sleep 1
... AND click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr
... AND sleep 1
... AND DeleteresinseDel
run keyword if "${Page}"=="InsertScript" run keywords sleep 1
... AND click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[2]/div/div[3]/table/tbody/tr
... AND sleep 1
... AND Delete
run keyword if "${Page}"=="HijackFile" run keywords sleep 1
... AND click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/span
... AND sleep 1
... AND DeletehijackDel
run keyword if "${Page}"=="TrafficMirrorProfile" run keywords sleep 1
... AND click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div[1]/div/div[2]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span
... AND sleep 1
... AND DeletetrafficMirrorDel
run keyword if "${Page}"=="DecryptionProfile" run keywords sleep 1
... AND click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[2]/div/div[3]/table/tbody/tr/td[2]/div/div/span
... AND sleep 1
... AND Delete
${text} get text xpath=/html/body/div[last()]/p
Should Be Equal As Strings ${text} ${PromptInformation}
SettingsAssertion
[Arguments] ${assertxpath} ${asserttext}
${text} Get text xpath=${assertxpath}
Should Be Equal As Strings ${text} ${asserttext}