This commit is contained in:
朱明明
2020-07-22 10:16:20 +08:00
7 changed files with 713 additions and 140 deletions

View File

@@ -161,7 +161,7 @@ VerifyPolicies
... atrributeValue字段可为三种格式
... 1:dict
... 2:json
... 3.字符串ip的value对应格式为clientIp|clientPort|serverIp|serverPort|addrType|protocol,注意addrType,protocol为数字
... 3.字符串ip的value对应格式为ip|port|addrType|protocol,注意addrType,protocol为数字
... signature 的value对应格式为district|string
... string的格式就是string
... 以上三种方式可以混合搭配使用

View File

@@ -390,7 +390,7 @@ VerifyPolicyObj
[Arguments] ${verifyObj}
Log To Console Call VerifyPolicyObj
${emptyList} Create List
${return} ${policyType} Run Keyword And Ignore Error Get From Dictionary ${verifyObj} policyType
${return} ${policyType} Run Keyword And Ignore Error Set Variable ${verifyObj['policyType']}
#Should Not Be Empty ${policyType}
${verifySession} Get From Dictionary ${verifyObj} verifySession
Should Not Be Empty ${verifySession}
@@ -398,10 +398,10 @@ VerifyPolicyObj
Should Not Be Empty ${attributes}
FOR ${attribute} IN @{attributes}
${attributeType} Get From Dictionary ${attribute} attributeType
${return} ${tableName} Run Keyword And Ignore Error Get From Dictionary ${attribute} tableName
${return} ${protocol} Run Keyword And Ignore Error Get From Dictionary ${attribute} protocol
${attributeName} Get From Dictionary ${attribute} attributeName
${attributeValue} Get From Dictionary ${attribute} attributeValue
${return} ${tableName} Run Keyword And Ignore Error Set Variable ${attribute['tableName']}
${return} ${protocol} Run Keyword And Ignore Error Set Variable ${attribute['protocol']}
${attributeName} Get From Dictionary ${attribute} attributeName
${attributeValue} Get From Dictionary ${attribute} attributeValue
#将json转换为dict
${attributeValue} Convert To String ${attributeValue}
${start} Get Regexp Matches ${attributeValue} ^{\"
@@ -427,34 +427,32 @@ ManageIpAttributeValue
[Arguments] ${attributeValue} ${attributeName} ${type}
Run Keyword And Return If "${type}"=="str" ExtractIpAttributeValue ${attributeValue}
${dict} Create Dictionary
${return} ${clientIp} Run Keyword And Ignore Error Get From Dictionary ${attributeValue} clientIp
Run Keyword If "${clientIp}"=="${EMPTY}" and "${attributeName}"=="src_ip" Should Not Be Empty ${clientIp}
Set To Dictionary ${dict} clientIp=${clientIp}
${return} ${clientPort} Run Keyword And Ignore Error Get From Dictionary ${attributeValue} clientPort
Run Keyword If "${clientPort}"=="${EMPTY}" and "${attributeName}"=="src_ip" Should Not Be Empty ${clientPort}
Set To Dictionary ${dict} clientPort=${clientPort}
${return} ${serverIp} Run Keyword And Ignore Error Get From Dictionary ${attributeValue} serverIp
Run Keyword If "${serverIp}"=="${EMPTY}" and "${attributeName}"=="dest_ip" Should Not Be Empty ${serverIp}
Set To Dictionary ${dict} serverIp=${serverIp}
${return} ${serverPort} Run Keyword And Ignore Error Get From Dictionary ${attributeValue} serverPort
Run Keyword If "${serverPort}"=="${EMPTY}" and "${attributeName}"=="dest_ip" Should Not Be Empty ${serverPort}
Set To Dictionary ${dict} serverPort=${serverPort}
${return} ${addrType} Run Keyword And Ignore Error Get From Dictionary ${attributeValue} addrType
Should Be Equal As Strings ${return} PASS
${return} ${ip} Run Keyword And Ignore Error Set Variable ${attributeValue['ip']}
Run Keyword If "${ip}"=="${EMPTY}" and "${attributeName}"=="source" Should Not Be Empty ${ip}
Run Keyword If "${ip}"=="${EMPTY}" and "${attributeName}"=="destination" Should Not Be Empty ${ip}
Set To Dictionary ${dict} ip=${ip}
${return} ${port} Run Keyword And Ignore Error Set Variable ${attributeValue['port']}
Run Keyword If "${port}"=="${EMPTY}" and "${attributeName}"=="source" Should Not Be Empty ${port}
Run Keyword If "${port}"=="${EMPTY}" and "${attributeName}"=="destination" Should Not Be Empty ${port}
Set To Dictionary ${dict} port=${port}
${return} ${addrType} Run Keyword And Ignore Error Set Variable ${attributeValue['addrType']}
Run Keyword If "${port}"=="${EMPTY}" and "${attributeName}"=="source" Should Not Be Empty ${addrType}
Run Keyword If "${port}"=="${EMPTY}" and "${attributeName}"=="destination" Should Not Be Empty ${addrType}
Set To Dictionary ${dict} addrType=${addrType}
${return} ${protocol} Run Keyword And Ignore Error Get From Dictionary ${attributeValue} protocol
Should Be Equal As Strings ${return} PASS
${return} ${protocol} Run Keyword And Ignore Error Set Variable ${attributeValue['protocol']}
Run Keyword If "${port}"=="${EMPTY}" and "${attributeName}"=="source" Should Not Be Empty ${protocol}
Run Keyword If "${port}"=="${EMPTY}" and "${attributeName}"=="destination" Should Not Be Empty ${protocol}
Set To Dictionary ${dict} protocol=${protocol}
[Return] ${dict}
ExtractIpAttributeValue
[Arguments] ${attributeValue}
${list} Split String ${attributeValue} |
${len} Get Length ${list}
Should Be Equal As Integers ${len} 6
${addrType} Evaluate int(${list}[4])
${protocol} Evaluate int(${list}[5])
${dict} Create Dictionary clientIp=${list}[0] clientPort=${list}[1] serverIp=${list}[2]
... serverPort=${list}[3] addrType=${addrType} protocol=${protocol}
Should Be Equal As Integers ${len} 4
${addrType} Evaluate int(${list}[2])
${protocol} Evaluate int(${list}[3])
${dict} Create Dictionary ip=${list}[0] port=${list}[1]
... addrType=${addrType} protocol=${protocol}
[Return] ${dict}
ManageSignatureAttributeValue
[Arguments] ${attributeValue} ${type}

View File

@@ -100,7 +100,7 @@ Create-Traffic Mirror Profiles
Sleep 1
input id=trafficmirror_addrArray0 ${shuru}
sleep 2
click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/div[2]/form/div[5]/div/div/button[1] #点击OK
click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[2]/button[1] #点击OK
Sleep 2
input id=one-input ${name} #搜索输入框输入name
Sleep 1
@@ -166,7 +166,7 @@ Create-Response Pages
Sleep 2
Choose File xpath=//*[@id="policy_Manipulation_create6"]/div[2]/form/div[2]/div/div/div/input ${file} #上传文件
Sleep 2
click xpath=//*[@id="policy_Manipulation_create6"]/div[2]/form/div[4]/div/div/button[1] #点击OK缇交
click id=responseAddOk1 #点击OK缇交
Sleep 1
input xpath=//*[@id="one-input"] ${name} #搜索框输入
Sleep 1
@@ -289,7 +289,7 @@ Edit-Traffic Mirror Profiles
sleep 1
input id=trafficmirror_addrArray0 ${shuju} #输入内容
sleep 1
click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/div[2]/form/div[8]/div/div/button[1] #点击ok
click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[2]/button[1] #点击ok
import-Trusted Certificate Authorities
[Arguments] ${name} ${file}
@@ -413,7 +413,7 @@ Search-Cached Intermediate Certificates
input id=sreach_input ${id-sni}
click id=select_new_search_btn #点击搜索按钮
Sleep 1
click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[8]/div/div/div/p/a/i #点击下载
click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[7]/div/div/div/p/a/i #点击下载
Sleep 10
click ${enabled} #点击enabled按钮
sleep 1
@@ -926,7 +926,7 @@ Policy_Verify
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/div/div[2]/div[1]/div[1]/div[1]/form/div[9]/div/div/div/span/span/i
... AND Wait Until Page Contains Element xpath=/html/body/div/div[1]/div[1]/ul/li[1] 10
... AND Wait Until Page Contains Element id=Protocol-HTTPhttp 10
... AND log $$$$$$1111111
... AND click id=Protocol-HTTPhttp
... AND sleep 2
@@ -959,8 +959,8 @@ Policy_Verify
\ run keyword if "${key}"=="Host" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div/div
\ ... AND sleep 1
\ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i
\ ... AND Wait Until Page Contains Element xpath=/html/body/div/div[1]/div[1]/ul/li[1] 10
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1]
\ ... AND Wait Until Page Contains Element xpath=/html/body/div/div[1]/div[1]/ul/li[2] 10
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[2]
\ ... AND sleep 1
\ ... AND input xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[2]/input ${dict}[${key}]
\ ... AND sleep 1
@@ -968,7 +968,7 @@ Policy_Verify
\ ... AND sleep 1
\ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i
\ ... AND sleep 1
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1]
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[3]
\ ... AND sleep 1
\ ... AND input xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[2]/input ${dict}[${key}]
\ ... AND sleep 1
@@ -976,7 +976,7 @@ Policy_Verify
\ ... AND sleep 1
\ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i
\ ... AND sleep 1
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1]
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[4]
\ ... AND sleep 1
\ ... AND input xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[2]/input ${dict}[${key}]
\ ... AND sleep 1
@@ -984,7 +984,7 @@ Policy_Verify
\ ... AND sleep 1
\ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i
\ ... AND sleep 1
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1]
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[5]
\ ... AND sleep 1
\ ... AND Req_Res_Body ${dict}[${key}]
\ ... AND sleep 1
@@ -992,7 +992,7 @@ Policy_Verify
\ ... AND sleep 1
\ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i
\ ... AND sleep 1
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1]
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[6]
\ ... AND sleep 1
\ ... AND Req_Res_Body ${dict}[${key}]
\ ... AND sleep 1
@@ -1008,7 +1008,7 @@ Policy_Verify
\ ... AND sleep 1
\ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i
\ ... AND sleep 1
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1]
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[2]
\ ... AND sleep 1
\ ... AND Req_Res_Body ${dict}[${key}]
\ ... AND sleep 1
@@ -1016,7 +1016,7 @@ Policy_Verify
\ ... AND sleep 1
\ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i
\ ... AND sleep 1
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1]
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[3]
\ ... AND sleep 1
\ ... AND Req_Res_Body ${dict}[${key}]
\ ... AND sleep 1
@@ -1040,7 +1040,7 @@ Policy_Verify
\ ... AND sleep 1
\ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i
\ ... AND sleep 1
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1]
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[2]
\ ... AND sleep 1
\ ... AND Req_Res_Body ${dict}[${key}]
\ ... AND sleep 1
@@ -1048,7 +1048,7 @@ Policy_Verify
\ ... AND sleep 1
\ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i
\ ... AND sleep 1
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1]
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[3]
\ ... AND sleep 1
\ ... AND Req_Res_Body ${dict}[${key}]
\ ... AND sleep 1
@@ -1056,7 +1056,7 @@ Policy_Verify
\ ... AND sleep 1
\ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i
\ ... AND sleep 1
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1]
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[4]
\ ... AND sleep 1
\ ... AND Req_Res_Body ${dict}[${key}]
\ ... AND sleep 1
@@ -1064,7 +1064,7 @@ Policy_Verify
\ ... AND sleep 1
\ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i
\ ... AND sleep 1
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1]
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[5]
\ ... AND sleep 1
\ ... AND Req_Res_Body ${dict}[${key}]
\ ... AND sleep 1
@@ -1072,7 +1072,7 @@ Policy_Verify
\ ... AND sleep 1
\ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i
\ ... AND sleep 1
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1]
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[6]
\ ... AND sleep 1
\ ... AND Req_Res_Body ${dict}[${key}]
\ ... AND sleep 1
@@ -1080,15 +1080,7 @@ Policy_Verify
\ ... AND sleep 1
\ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i
\ ... AND sleep 1
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1]
\ ... AND sleep 1
\ ... AND Req_Res_Body ${dict}[${key}]
\ ... AND sleep 1
\ run keyword if "${key}"=="ATT CONT" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div/div
\ ... AND sleep 1
\ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i
\ ... AND sleep 1
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1]
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[7]
\ ... AND sleep 1
\ ... AND Req_Res_Body ${dict}[${key}]
\ ... AND sleep 1
@@ -1104,7 +1096,7 @@ Policy_Verify
\ ... AND sleep 1
\ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i
\ ... AND sleep 1
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1]
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[2]
\ ... AND sleep 1
\ ... AND Req_Res_Body ${dict}[${key}]
\ ... AND sleep 1
@@ -1112,7 +1104,7 @@ Policy_Verify
\ ... AND sleep 1
\ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i
\ ... AND sleep 1
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1]
\ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[3]
\ ... AND sleep 1
\ ... AND Req_Res_Body ${dict}[${key}]
\ ... AND sleep 1
@@ -1165,7 +1157,7 @@ Create_Ip_Libraries
... 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_continent
... AND click id=ip_geography_Country
... AND sleep 1
... AND Switch_Geographic_Locations ${Continent/Country}
sleep 1
@@ -1189,7 +1181,36 @@ Create_Ip_Libraries
${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} #断言
Edit_Ip_Libraries
[Arguments] ${GeoNameID} ${City}=null ${ip}=null ${j}=1 ${Country}=null ${Longitude}=null ${Latitude}=null ${type}=null ${type1}=null
click id=tagEdit #点击Edit按钮
sleep 2
run keyword if "${City}"!="null" input id=ip_geography_City ${City}
sleep 1
run keyword if "${type}"=="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 "${type}"=="create" Ip_Range_Edit_Create ${j} ${ip}
sleep 1
run keyword if "${type}"=="delete" and "${type1}"=="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 "${type}"=="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
sleep 2
#验证修改是否成功
Switch_GeoName ${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} #断言
Switch_Geographic_Locations
[Arguments] ${Continent/Country}
sleep 1
@@ -1210,11 +1231,21 @@ Ip_Range_Create
\ sleep 1
\ input id=ip_input${i} ${ip}[${i}]
\ sleep 1
Ip_Range_Edit_Create
[Arguments] ${j} ${ip}
sleep 1
Switch_GeoName
: FOR ${i} IN RANGE ${j}
\ sleep 1
\ click id=addIPList
\ sleep 1
\ input id=ip_input${i} ${ip}[${i}]
\ sleep 1
sleep 1
Switch_GeoName
[Arguments] ${GeoName}
sleep 2
click id=clear_input_btm
sleep 1
input id=one-input ${GeoName}
sleep 1
click id=select_new_search_btn
@@ -1222,6 +1253,7 @@ Ip_Range_Create
click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[1]/div/div/div
sleep 1
Delete_IP_Libraries
Switch_GeoName ${GeoName}
sleep 2
click id=tagDel
sleep 2
@@ -1230,6 +1262,8 @@ Delete_IP_Libraries
Switch_GeoName1
[Arguments] ${GeoName}
sleep 2
click id=clear_input_btm
sleep 1
click id=one-input
sleep 1
click id=input_list_li1
@@ -1247,6 +1281,8 @@ Switch_GeoName1
Switch_Country
[Arguments] ${Country}
sleep 2
click id=clear_input_btm
sleep 1
click id=one-input
sleep 1
click id=input_list_li2
@@ -1263,6 +1299,8 @@ Switch_Country
Switch_City
[Arguments] ${City}
sleep 2
click id=clear_input_btm
sleep 1
click id=one-input
sleep 1
click id=input_list_li3
@@ -1275,4 +1313,31 @@ Switch_City
sleep 1
${CCityText} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[4]/div/div/div
sleep 2
Should Match ${CityText} ${City} #断言
Should Match ${CityText} ${City} #断言
Pages
[Arguments]
Sleep 1
click id=children5 #点击一级目录Settings
Sleep 1
click id=sidebarIP_Libraries #点击二级目录IP_Libraries
Sleep 2
Ui-Pages
[Arguments] ${pages}
click element xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[4]/div/ul/li[1]
sleep 2
click element xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[4]/div/button[2]/i
sleep 2
Clear Element Text xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[4]/div/span[2]/div/input
sleep 2
input text xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[4]/div/span[2]/div/input ${pages}
sleep 2
press keys xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[4]/div/span[2]/div/input ENTER
sleep 2
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