diff --git a/01-TestCase/tsg_ui/ui_security/SecurityVoipCase.robot b/01-TestCase/tsg_ui/ui_security/SecurityVoipCase.robot index cc5f23b..0474f58 100644 --- a/01-TestCase/tsg_ui/ui_security/SecurityVoipCase.robot +++ b/01-TestCase/tsg_ui/ui_security/SecurityVoipCase.robot @@ -12,14 +12,15 @@ CreateSecuritySIPAllow [Tags] Positive UI Security Policies SIP Allow Comment 新建对象fqdn log ${TEST NAME} - CreatePage Account single SecurityVoip_Accounts keywordtext=*travelgam.com + CreatePage Account single SecurityVoipFrom keywordtext=*travelgam.com + CreatePage Account single SecurityVoipTo keywordtext=*vip.com ${ip_name1} create list SecurityVoip_IP ${dip1} Create Dictionary Sordtype=Destination Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} ${destinationAddIpList} Create List ${dip1} ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} ${filter} create list From To - ${fromname} create list SecurityVoip_Accounts - ${toname} create list SecurityVoip_Accounts + ${fromname} create list SecurityVoipFrom + ${toname} create list SecurityVoipTo ${filterInfo} Create Dictionary Filter=${filter} Fromname=${fromname} Toname=${toname} ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Create Add=Address Name=SecurityVoip_IP Ipclienttext1=192.168.40.11-192.168.40.110 Port=1-65535 ${sourceAddIpList} Create List ${sip} @@ -61,7 +62,7 @@ CreateSecuritySIPAllowFilter-From ${destinationAddIpList} Create List ${dip1} ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} ${filter} create list From - ${fromname} create list SecurityVoip_Accounts + ${fromname} create list SecurityVoipFrom ${filterInfo} Create Dictionary Filter=${filter} Fromname=${fromname} ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} ${sourceAddIpList} Create List ${sip} @@ -77,7 +78,7 @@ CreateSecuritySIPAllowFilter-To ${destinationAddIpList} Create List ${dip1} ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} ${filter} create list To - ${toname} create list SecurityVoip_Accounts + ${toname} create list SecurityVoipTo ${filterInfo} Create Dictionary Filter=${filter} Toname=${toname} ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} ${sourceAddIpList} Create List ${sip} @@ -132,8 +133,8 @@ CreateSecuritySIPDenyFilter-FromAndTo ${destinationAddIpList} Create List ${dip1} ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} ${filter} create list From To - ${toname} create list SecurityVoip_Accounts - ${fromname} create list SecurityVoip_Accounts + ${toname} create list SecurityVoipTo + ${fromname} create list SecurityVoipFrom ${filterInfo} Create Dictionary Filter=${filter} Fromname=${fromname} Toname=${toname} ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} ${sourceAddIpList} Create List ${sip} @@ -149,8 +150,8 @@ CreateSecuritySIPDenyFilter-From ${destinationAddIpList} Create List ${dip1} ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} ${filter} create list From - ${toname} create list SecurityVoip_Accounts - ${fromname} create list SecurityVoip_Accounts + ${toname} create list SecurityVoipTo + ${fromname} create list SecurityVoipFrom ${filterInfo} Create Dictionary Filter=${filter} Fromname=${fromname} ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} ${sourceAddIpList} Create List ${sip} @@ -166,8 +167,8 @@ CreateSecuritySIPDenyFilter-To ${destinationAddIpList} Create List ${dip1} ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} ${filter} create list To - ${toname} create list SecurityVoip_Accounts - ${fromname} create list SecurityVoip_Accounts + ${toname} create list SecurityVoipTo + ${fromname} create list SecurityVoipFrom ${filterInfo} Create Dictionary Filter=${filter} Toname=${fromname} ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} ${sourceAddIpList} Create List ${sip} @@ -183,8 +184,8 @@ CreateSecuritySIPDenyBlock-480 ${destinationAddIpList} Create List ${dip1} ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} ${filter} create list From To - ${toname} create list SecurityVoip_Accounts - ${fromname} create list SecurityVoip_Accounts + ${toname} create list SecurityVoipTo + ${fromname} create list SecurityVoipFrom ${filterInfo} Create Dictionary Filter=${filter} Fromname=${fromname} Toname=${toname} ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} ${sourceAddIpList} Create List ${sip} @@ -201,8 +202,8 @@ CreateSecuritySIPDenyBlock-500 ${destinationAddIpList} Create List ${dip1} ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} ${filter} create list From To - ${toname} create list SecurityVoip_Accounts - ${fromname} create list SecurityVoip_Accounts + ${toname} create list SecurityVoipTo + ${fromname} create list SecurityVoipFrom ${filterInfo} Create Dictionary Filter=${filter} Fromname=${fromname} Toname=${toname} ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} ${sourceAddIpList} Create List ${sip} @@ -258,8 +259,8 @@ CreateSecuritySIPMonitorFilter-FromAndTo ${destinationAddIpList} Create List ${dip1} ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} ${filter} create list From To - ${toname} create list SecurityVoip_Accounts - ${fromname} create list SecurityVoip_Accounts + ${toname} create list SecurityVoipTo + ${fromname} create list SecurityVoipFrom ${filterInfo} Create Dictionary Filter=${filter} Fromname=${fromname} Toname=${toname} ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} ${sourceAddIpList} Create List ${sip} @@ -275,8 +276,8 @@ CreateSecuritySIPMonitorFilter-From ${destinationAddIpList} Create List ${dip1} ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} ${filter} create list From - ${toname} create list SecurityVoip_Accounts - ${fromname} create list SecurityVoip_Accounts + ${toname} create list SecurityVoipTo + ${fromname} create list SecurityVoipFrom ${filterInfo} Create Dictionary Filter=${filter} Fromname=${fromname} ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} ${sourceAddIpList} Create List ${sip} @@ -292,8 +293,8 @@ CreateSecuritySIPMonitorFilter-To ${destinationAddIpList} Create List ${dip1} ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} ${filter} create list To - ${toname} create list SecurityVoip_Accounts - ${fromname} create list SecurityVoip_Accounts + ${toname} create list SecurityVoipTo + ${fromname} create list SecurityVoipFrom ${filterInfo} Create Dictionary Filter=${filter} Toname=${toname} ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} ${sourceAddIpList} Create List ${sip} @@ -312,7 +313,7 @@ EditSecurityVoipAction ${sourceAddIpList} Create List ${sip} ${sourceInfo} Create Dictionary sourceAddIpList=${sourceAddIpList} ${policyInfo} Create Dictionary PolicyType=Security Policy PolicyName=CreateSecurityVoipAction PolicyAction=Allow ApplicationSearch=RTP PolicyLogSession=1 PolicyEnabled=1 - ${EditpolicyInfo} Create Dictionary PolicyType=Security Policy PolicyName=CreateSecurityVoipAction PolicyEditName=${TEST NAME} PolicyAction=Monitor ApplicationSearch=RTP PolicyLogSession=1 PolicyEnabled=1 + ${EditpolicyInfo} Create Dictionary PolicyType=Security Policy PolicyName=CreateSecurityVoipAction PolicyEditName=${TEST NAME} PolicyAction=Monitor ApplicationSearch=RTP ApplicationFilter=RTP PolicyLogSession=1 PolicyEnabled=1 UIAddPolicies ${policyInfo} SourceInfo=${sourceInfo} DestinationInfo=${destinationInfo} UIUpdataPolicies ${EditpolicyInfo} PoliciesDelete @@ -324,111 +325,80 @@ EditSecurityVoipApplication ${destinationAddIpList} Create List ${dip1} ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} ${filter} create list To - ${toname} create list SecurityVoip_Accounts - ${fromname} create list SecurityVoip_Accounts + ${toname} create list SecurityVoipTo + ${fromname} create list SecurityVoipFrom ${filterInfo} Create Dictionary Filter=${filter} Toname=${toname} ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} ${sourceAddIpList} Create List ${sip} ${sourceInfo} Create Dictionary sourceAddIpList=${sourceAddIpList} ${policyInfo} Create Dictionary PolicyType=Security Policy PolicyName=CreateSecurityVoipAction PolicyAction=Allow ApplicationSearch=SIP PolicyLogSession=1 PolicyEnabled=1 - ${EditpolicyInfo} Create Dictionary PolicyType=Security Policy PolicyName=CreateSecurityVoipAction PolicyEditName=${TEST NAME} PolicyAction=Allow ApplicationSearch=SIP,RTP PolicyLogSession=1 PolicyEnabled=1 + ${EditpolicyInfo} Create Dictionary PolicyType=Security Policy PolicyName=CreateSecurityVoipAction PolicyEditName=${TEST NAME} PolicyAction=Allow ApplicationFilter=RTP PolicyLogSession=1 PolicyEnabled=1 UIAddPolicies ${policyInfo} SourceInfo=${sourceInfo} DestinationInfo=${destinationInfo} FilterInfo=${filterInfo} UIUpdataPolicies ${EditpolicyInfo} PoliciesDelete -EditSecuritySIPAllwoFilter_1 +EditSecuritySIPAllowAddNewFilter [Tags] Positive UI Security Policies Voip ${ip_name1} create list SecurityVoip_IP ${dip1} Create Dictionary Sordtype=Destination Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} ${destinationAddIpList} Create List ${dip1} ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} ${filter} create list To - ${Editfilter} create list From To - ${toname} create list SecurityVoip_Accounts - ${fromname} create list SecurityVoip_Accounts + ${Editfilter} create list From + ${toname} create list SecurityVoipTo + ${fromname} create list SecurityVoipFrom ${filterInfo} Create Dictionary Filter=${filter} Toname=${toname} - ${EditfilterInfo} Create Dictionary Filter=${Editfilter} Fromname=${fromname} Toname=${toname} + ${EditfilterInfo} Create Dictionary Filter=${Editfilter} Fromname=${fromname} ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} ${sourceAddIpList} Create List ${sip} ${sourceInfo} Create Dictionary sourceAddIpList=${sourceAddIpList} ${policyInfo} Create Dictionary PolicyType=Security Policy PolicyName=CreateSecuritySIPAllwoFilter_1 PolicyAction=Allow ApplicationSearch=SIP PolicyLogSession=1 PolicyEnabled=1 - ${EditpolicyInfo} Create Dictionary PolicyType=Security Policy PolicyName=CreateSecuritySIPAllwoFilter_1 PolicyEditName=${TEST NAME} PolicyAction=Allow ApplicationSearch=SIP,SIP PolicyLogSession=1 PolicyEnabled=1 + ${EditpolicyInfo} Create Dictionary PolicyType=Security Policy PolicyName=CreateSecuritySIPAllwoFilter_1 PolicyEditName=${TEST NAME} PolicyAction=Allow ApplicationFilter=SIP PolicyLogSession=1 PolicyEnabled=1 UIAddPolicies ${policyInfo} SourceInfo=${sourceInfo} DestinationInfo=${destinationInfo} FilterInfo=${filterInfo} Comment 添加Filter条件 UIUpdataPolicies ${EditpolicyInfo} EditFilterInfo=${EditfilterInfo} PoliciesDelete -EditSecuritySIPAllwoAddFilter +EditSecuritySIPAllowAddFilter [Tags] Positive UI Security Policies Voip ${ip_name1} create list SecurityVoip_IP ${dip1} Create Dictionary Sordtype=Destination Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} ${destinationAddIpList} Create List ${dip1} ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} - ${filter} create list To - ${Editfilter} create list From To - ${toname} create list SecurityVoip_Accounts - ${fromname} create list SecurityVoip_Accounts - ${filterInfo} Create Dictionary Filter=${filter} Toname=${toname} - ${EditfilterInfo} Create Dictionary Filter=${Editfilter} Fromname=${fromname} Toname=${toname} + ${filter} create list From + ${toname} create list SecurityVoipTo + ${fromname} create list SecurityVoipFrom + ${filterInfo} Create Dictionary Filter=${filter} Fromname=${fromname} ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} ${sourceAddIpList} Create List ${sip} ${sourceInfo} Create Dictionary sourceAddIpList=${sourceAddIpList} ${policyInfo} Create Dictionary PolicyType=Security Policy PolicyName=CreateSecuritySIPAllwoFilter_1 PolicyAction=Allow ApplicationSearch=SIP PolicyLogSession=1 PolicyEnabled=1 - ${EditpolicyInfo} Create Dictionary PolicyType=Security Policy PolicyName=CreateSecuritySIPAllwoFilter_1 PolicyEditName=${TEST NAME} PolicyAction=Allow ApplicationSearch=SIP,SIP PolicyLogSession=1 PolicyEnabled=1 + ${EditpolicyInfo} Create Dictionary PolicyType=Security Policy PolicyName=CreateSecuritySIPAllwoFilter_1 PolicyEditName=${TEST NAME} PolicyAction=Allow ApplicationFilter=SIP PolicyLogSession=1 PolicyEnabled=1 + ${AddFilter} Create List SecurityVoipTo + ${CreateOrDeleteFilterInfo} Create Dictionary From=${AddFilter} UIAddPolicies ${policyInfo} SourceInfo=${sourceInfo} DestinationInfo=${destinationInfo} FilterInfo=${filterInfo} - Comment 添加Filter条件 - UIUpdataPolicies ${EditpolicyInfo} EditFilterInfo=${EditfilterInfo} + Comment 在原Filter上添加条件 + UIUpdataPolicies ${EditpolicyInfo} CreateOrDeleteFilterInfo=${CreateOrDeleteFilterInfo} PoliciesDelete -EditSecuritySIPAllwoDeleteFilter +EditSecuritySIPAllowDeleteFilter [Tags] Positive UI Security Policies Voip ${ip_name1} create list SecurityVoip_IP ${dip1} Create Dictionary Sordtype=Destination Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} ${destinationAddIpList} Create List ${dip1} ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} - ${filter} create list To - ${Editfilter} create list From To - ${toname} create list SecurityVoip_Accounts - ${fromname} create list SecurityVoip_Accounts - ${filterInfo} Create Dictionary Filter=${filter} Toname=${toname} - ${EditfilterInfo} Create Dictionary Filter=${Editfilter} Fromname=${fromname} Toname=${toname} + ${filter} create list From + ${fromname} create list SecurityVoipFrom + ${filterInfo} Create Dictionary Filter=${filter} Fromname=${fromname} ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} ${sourceAddIpList} Create List ${sip} ${sourceInfo} Create Dictionary sourceAddIpList=${sourceAddIpList} ${policyInfo} Create Dictionary PolicyType=Security Policy PolicyName=CreateSecuritySIPAllwoFilter_1 PolicyAction=Allow ApplicationSearch=SIP PolicyLogSession=1 PolicyEnabled=1 - ${EditpolicyInfo} Create Dictionary PolicyType=Security Policy PolicyName=CreateSecuritySIPAllwoFilter_1 PolicyEditName=${TEST NAME} PolicyAction=Allow ApplicationSearch=SIP,SIP PolicyLogSession=1 PolicyEnabled=1 + ${EditpolicyInfo} Create Dictionary PolicyType=Security Policy PolicyName=CreateSecuritySIPAllwoFilter_1 PolicyEditName=${TEST NAME} PolicyAction=Allow ApplicationFilter=SIP PolicyLogSession=1 PolicyEnabled=1 + ${AddFilter} Create List SecurityVoipFrom + ${CreateOrDeleteFilterInfo} Create Dictionary From=${AddFilter} UIAddPolicies ${policyInfo} SourceInfo=${sourceInfo} DestinationInfo=${destinationInfo} FilterInfo=${filterInfo} - Comment 添加Filter条件 - UIUpdataPolicies ${EditpolicyInfo} EditFilterInfo=${EditfilterInfo} + Comment 在原Filter上添加条件 + UIUpdataPolicies ${EditpolicyInfo} CreateOrDeleteFilterInfo=${CreateOrDeleteFilterInfo} PoliciesDelete - - - - - - - - - - - - - -# test - # ${ip_name1} create list SecurityVoip_IP - # ${dip1} Create Dictionary Sordtype=Destination Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} - # ${destinationAddIpList} Create List ${dip1} - # ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} - # ${filter} create list To - # ${Editfilter} create list From To - # ${toname} create list SecurityVoip_Accounts - # ${fromname} create list SecurityVoip_Accounts - # ${filterInfo} Create Dictionary Filter=${filter} Toname=${toname} - # ${EditfilterInfo} Create Dictionary Filter=${Editfilter} Fromname=${fromname} Toname=${toname} - # ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} - # ${sourceAddIpList} Create List ${sip} - # ${sourceInfo} Create Dictionary sourceAddIpList=${sourceAddIpList} - # ${policyInfo} Create Dictionary PolicyType=Security Policy PolicyName=CreateSecuritySIPAllwoFilter_1 PolicyAction=Allow ApplicationSearch=SIP PolicyLogSession=1 PolicyEnabled=1 - # ${EditpolicyInfo} Create Dictionary PolicyType=Security Policy PolicyName=CreateSecuritySIPAllwoFilter_1 PolicyEditName=${TEST NAME} PolicyAction=Allow ApplicationSearch=SIP,RTP PolicyLogSession=1 PolicyEnabled=1 - # UIUpdataPolicies ${EditpolicyInfo} EditFilterInfo=${EditfilterInfo} diff --git a/02-Keyword/tsg_ui/policy/UIPolicy.robot b/02-Keyword/tsg_ui/policy/UIPolicy.robot index d1231aa..c7a1fb0 100644 --- a/02-Keyword/tsg_ui/policy/UIPolicy.robot +++ b/02-Keyword/tsg_ui/policy/UIPolicy.robot @@ -176,10 +176,11 @@ UIUpdataPolicies Run Keyword If "${DestinationInfo}"=="${EMPTY}" or "${DestinationInfo}"=="null" log there is no DestinationInfo ... ELSE UIPolicy.CreateEditDeleteDestination ${DestinationInfo} Comment 编辑Application - UIPolicy.Create-Application-Button ${PolicyType} ${ApplicationSearchV} ${PolicyAction} + Run Keyword If "${ApplicationSearchV}"=="${emptyList}" or "${ApplicationSearchV}"=="null" log there is no ApplicationSearchV + ... ELSE UIPolicy.Create-Application-Button ${PolicyType} ${ApplicationSearchV} ${PolicyAction} #编辑filter Run Keyword If "${EditFilterInfo}"=="${EMPTY}" or "${EditFilterInfo}"=="null" log there is no FilterInfo - ... ELSE Create-Filter-SecurityOrProxy ${PolicyType} ${ApplicationSearchV}[0] ${EditFilterInfo} + ... ELSE Create-Filter-SecurityOrProxy ${PolicyType} ${ApplicationFilter} ${EditFilterInfo} Run Keyword If "${CreateOrDeleteFilterInfo}"=="${EMPTY}" or "${CreateOrDeleteFilterInfo}"=="null" log there is no FilterInfo ... ELSE Edit-Filter-SecurityOrProxy ${PolicyType} ${CreateOrDeleteFilterInfo} @@ -1345,7 +1346,7 @@ Create-Object-Search sleep ${sleep} click element xpath=//*[@id="policy_paper_left"]/div[8]/div/div[1]/label[contains(text(), "${filter}")]/following-sibling::div/div sleep ${sleep} - FOR ${i} IN @{name} + FOR ${i} IN @{Name} input text xpath=//*[@id="condistions_protocol"]/div[2]/p[contains(text(), "${filter}")]/following-sibling::div[2]/div/div[1]/input ${i} sleep ${sleep} press keys xpath=//*[@id="condistions_protocol"]/div[2]/p[contains(text(), "${filter}")]/following-sibling::div[2]/div/div[1]/input ENTER @@ -2078,8 +2079,8 @@ Edit-Filter-SecurityOrProxy [Arguments] ${PolicyType} ${EditFilterdict} ${typepath} Run Keyword If "${PolicyType}"=="Security Policy" set variable /html/body/div[1]/div/div[3]/div[2]/div/div[1]/form[1]/div/div[8]/div[1]/div[1]/label ... ELSE set variable /html/body/div[1]/div/div[3]/div[2]/div/div[1]/form[1]/div/div[9]/div[1]/div[1]/label - FOR ${Var} ${Filter} IN ENUMERATE @{dict} - click element xpath=${typepath}[contains(text(), "${Filter}")]/following-sibling::div/div/i + FOR ${Var} ${Filter} IN ENUMERATE @{EditFilterdict} + click element xpath=${typepath}\[contains(text(), "${Filter}")]/following-sibling::div/div/i sleep ${sleep} input text xpath=//*[@id="condistions_protocol"]/div[2]/p[contains(text(), "${filter}")]/following-sibling::div[2]/div/div[1]/input ${EditFilterdict}[${Filter}] sleep ${sleep} @@ -2087,10 +2088,10 @@ Edit-Filter-SecurityOrProxy sleep ${sleep} click element xpath=//*[@id="condistions_protocol"]/div[2]/p[contains(text(), "${filter}")]/following-sibling::div[2]/div/div[2]/div/div/ul/li[1] sleep ${sleep} - ${class}= Get Element Attribute xpath=xpath=${typepath}[contains(text(), "${key}")]/following-sibling::div/div class + ${class}= Get Element Attribute xpath=${typepath}\[contains(text(), "${Filter}")]/following-sibling::div/div class run keyword if "${class}"=="addobject addobject-long-list float-left" log 不操作 run keyword if "${class}"=="addobject addobject-long-list float-left obj-content-null" run keywords sleep ${sleep} - ... AND click element xpath=${typepath}[contains(text(), "${key}")]/following-sibling::div/div[2]/i + ... AND click element xpath=${typepath}\[contains(text(), "${Filter}")]/following-sibling::div/div[2]/i END PoliciesDelete sleep ${sleep}