*** Settings *** Library Selenium2Library Resource ../objects/NewObject.robot *** Keywords *** CreateButton [Documentation] 点击安全策略中的Create按钮 Wait Until Element Is Enabled id=app_create sleep 3 click element id=app_create Create-name [Arguments] ${name} [Documentation] 输入name sleep 2 input text id=interceptionadd_name ${name} Create-action [Arguments] ${action} [Documentation] 调用次关键字前需要添加必填参数: ... ${action}:填入allow或deny或monitor或intercept ... 判断要创建什么动作的策略 sleep 1 run keyword if "${action}"=="allow" run keywords sleep 1 ... AND click element id=security_action_allow ... ELSE IF "${action}"=="deny" run keywords sleep 1 ... AND click element id=security_action_deny ... ELSE IF "${action}"=="monitor" run keywords sleep 1 ... AND click element id=security_action_monitor ... ELSE IF "${action}"=="intercept" run keywords sleep 1 ... AND click element id=security_action_intercept Create-Source-Button [Documentation] 点击Source的加号 sleep 2 click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[4]/div[1]/div/div Create-Destination-Button [Documentation] 点击Destination的加号 sleep 2 click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[1]/div/div Create-Application-Button [Documentation] 点击Application的加号 sleep 2 click element id=interceptionadd_application ApplicationSearch [Arguments] ${Application} [Documentation] 调用次关键字前需要添加必填参数: ... ${Application}:填入是Application的内容,例如SSL或HTTP ... 选择search对象 input text xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[5]/div[2]/div[2]/div/div[1]/input ${Application} sleep 1 press keys xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[5]/div[2]/div[2]/div/div[1]/input ENTER sleep 1 click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[5]/div[2]/div[2]/div/div[2]/div/div/ul/li[1] sleep 1 Create-Filter-judge [Arguments] ${Application} ${Filter} ${Hostname} ${URLname} ${Request Headername} ${Response Headername} ${Request Contentname} ... ${Response Contentname} ${SSLSNIname} ${CNname} ${SANname} ${QNAMEname} ${Subjectname} ${MAILContentname} ${Attachment Namename} ... ${Attachment Contentname} ${Fromname} ${Toname} ${MAILAccountname} ${URIname} ${FTPContentname} ${FTPAccountname} ${QUICSNIname} [Documentation] 调用次关键字前需要添加必填参数: ... ${Application}:填入是Application的内容,例如SSL或HTTP ... ${Filter}:是一个列表,列表中填入filter类型,例如Host或URL等 ... name:各个对象名称的列表 ... 判断filter是否可以点击 ${class}= Get Element Attribute xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[8]/div[1]/div/div[1] class run keyword if "${class}"=="addobject addobject-long-list obj-content-null filter-width-style cursor addobject-long-list-disabled" log filter不可点击,不可添加filter run keyword if "${class}"=="addobject addobject-long-list obj-content-null filter-width-style cursor" run keywords sleep 1 ... AND click element Create-Filter ${Application} ${Filter} ${Hostname} ${URLname} ${Request Headername} ${Response Headername} ${Request Contentname} ... ${Response Contentname} ${SSLSNIname} ${CNname} ${SANname} ${QNAMEname} ${Subjectname} ${MAILContentname} ${Attachment Namename} ... ${Attachment Contentname} ${Fromname} ${Toname} ${MAILAccountname} ${URIname} ${FTPContentname} ${FTPAccountname} ${QUICSNIname} Create-Filter [Arguments] ${Application} ${Filter} ${Hostname} ${URLname} ${Request Headername} ${Response Headername} ${Request Contentname} ... ${Response Contentname} ${SSLSNIname} ${CNname} ${SANname} ${QNAMEname} ${Subjectname} ${MAILContentname} ${Attachment Namename} ... ${Attachment Contentname} ${Fromname} ${Toname} ${MAILAccountname} ${URIname} ${FTPContentname} ${FTPAccountname} ${QUICSNIname} [Documentation] 调用次关键字前需要添加必填参数: ... ${Application}:填入是Application的内容,例如SSL或HTTP ... ${Filter}:是一个列表,列表中填入filter类型,例如Host或URL等 ... name:各个对象名称的列表 ... 判断添加filter类型 sleep 2 FOR ${i} IN @{Filter} sleep 1 click element id=interceptionadd_add_filter sleep 1 run keyword if "${Application}"=="HTTP" and "${i}"=="Host" run keywords sleep 1 ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[1] ... AND Create-Object-Search ${Hostname} ${i} run keyword if "${Application}"=="HTTP" and "${i}"=="URL" run keywords sleep 1 ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[2] ... AND Create-Object-Search ${URLname} ${i} run keyword if "${Application}"=="HTTP" and "${i}"=="Request Header" run keywords sleep 1 ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[3] ... AND Create-Object-Search ${Request Headername} ${i} run keyword if "${Application}"=="HTTP" and "${i}"=="Response Header" run keywords sleep 1 ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[4] ... AND Create-Object-Search ${Response Headername} ${i} run keyword if "${Application}"=="HTTP" and "${i}"=="Request Content" run keywords sleep 1 ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[5] ... AND Create-Object-Search ${Request Contentname} ${i} run keyword if "${Application}"=="HTTP" and "${i}"=="Response Content" run keywords sleep 1 ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[6] ... AND Create-Object-Search ${Response Contentname} ${i} run keyword if "${Application}"=="SSL" and "${i}"=="SNI" run keywords sleep 1 ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[1] ... AND Create-Object-Search ${SSLSNIname} ${i} run keyword if "${Application}"=="SSL" and "${i}"=="CN" run keywords sleep 1 ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[2] ... AND Create-Object-Search ${CNname} ${i} run keyword if "${Application}"=="SSL" and "${i}"=="SAN" run keywords sleep 1 ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[3] ... AND Create-Object-Search ${SANname} ${i} run keyword if "${Application}"=="DNS" and "${i}"=="QNAME" run keywords sleep 1 ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[1] ... AND Create-Object-Search ${QNAMEname} ${i} run keyword if "${Application}"=="MAIL" and "${i}"=="Subject" run keywords sleep 1 ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[1] ... AND Create-Object-Search ${Subjectname} ${i} run keyword if "${Application}"=="MAIL" and "${i}"=="Content" run keywords sleep 1 ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[2] ... AND Create-Object-Search ${MAILContentname} ${i} run keyword if "${Application}"=="MAIL" and "${i}"=="Attachment Name" run keywords sleep 1 ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[3] ... AND Create-Object-Search ${Attachment Namename} ${i} run keyword if "${Application}"=="MAIL" and "${i}"=="Attachment Content" run keywords sleep 1 ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[4] ... AND Create-Object-Search ${Attachment Contentname} ${i} run keyword if "${Application}"=="MAIL" and "${i}"=="From" run keywords sleep 1 ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[5] ... AND Create-Object-Search ${Fromname} ${i} run keyword if "${Application}"=="MAIL" and "${i}"=="To" run keywords sleep 1 ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[6] ... AND Create-Object-Search ${Toname} ${i} run keyword if "${Application}"=="MAIL" and "${i}"=="Account" run keywords sleep 1 ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[7] ... AND Create-Object-Search ${MAILAccountname} ${i} run keyword if "${Application}"=="FTP" and "${i}"=="URI" run keywords sleep 1 ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[1] ... AND Create-Object-Search ${URIname} ${i} run keyword if "${Application}"=="FTP" and "${i}"=="Content" run keywords sleep 1 ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[2] ... AND Create-Object-Search ${FTPContentname} ${i} run keyword if "${Application}"=="FTP" and "${i}"=="Account" run keywords sleep 1 ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[3] ... AND Create-Object-Search ${FTPAccountname} ${i} run keyword if "${Application}"=="QUIC" and "${i}"=="SNI" run keywords sleep 1 ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[1] ... AND Create-Object-Search ${QUICSNIname} ${i} END Deny-subaction [Arguments] ${action} ${subaction} ${code} ${Content} ${block-text} ${SearchorCreate} ${ProfileName} ${file} ${QType} ${Avalue} ${Attl} ${CNAMEvalue} ${CNAMEttl} [Documentation] 调用次关键字前需要添加必填参数: ... ${code}:填入403或404 ... ${Content}:填入TEXT或Profile ... ${SearchorCreate}:填入Search或Create ... ${block-text}:填入TEXT文本框内容 ... ${ProfileName}:Profile的名字 ... ${file}:上传文件路径 ... ${QType}:填入A或AAAA ... ${Avalue}:根据${QType}填入IPV4或IPV6的值 ... ${Attl}:根据${QType}填入A的ttl值或AAAA的ttl值 ... ${CNAMEvalue}:根据${QType}填入A的CNAME的域名值或AAAA的CNAME域名值 ... ${CNAMEttl}:根据${QType}填入A的CNAME的ttl值或AAAA的CNAME的ttl值 ... 添加subaction run keyword if "${action}"=="deny" and "${subaction}"=="Drop" run keywords sleep 1 ... AND click element id=denyUserRegionBlock_method0 run keyword if "${action}"=="deny" and "${subaction}"=="RST" run keywords sleep 1 ... AND click element id=denyUserRegionBlock_method1 run keyword if "${action}"=="deny" and "${subaction}"=="Block" run keywords sleep 1 ... AND click element id=denyUserRegionBlock_method2 ... AND Deny-Block ${code} ${Content} ${block-text} ${SearchorCreate} ${ProfileName} ${file} run keyword if "${action}"=="deny" and "${subaction}"=="Alert" run keywords sleep 1 ... AND click element id=denyUserRegionBlock_method3 ... AND Deny-Block ${code} ${Content} ${block-text} ${SearchorCreate} ${ProfileName} ${file} run keyword if "${action}"=="deny" and "${subaction}"=="Redirect" run keywords sleep 1 ... AND click element id=denyUserRegionBlock_method4 ... AND sleep 1 ... AND click element id=interceptionadd_rightdetails ... AND sleep 1 ... AND Deny-Redirect ${QType} ${Avalue} ${Attl} ${CNAMEvalue} ${CNAMEttl} Deny-Block [Arguments] ${code} ${Content} ${block-text} ${SearchorCreate} ${ProfileName} ${file} [Documentation] 调用次关键字前需要添加必填参数: ... ${code}:填入403或404 ... ${Content}:填入TEXT或Profile ... ${SearchorCreate}:填入Search或Create ... ${block-text}:填入TEXT文本框内容 ... ${ProfileName}:Profile的名字 ... ${file}:上传文件路径 ... 添加block数据内容 sleep 1 click element id=denyUserRegionBlock_code run keyword if "${code}"=="403" or "${code}"=="200" run keywords sleep 1 ... AND click element id=denyUserRegionBlock_code_select0 ... ELSE IF "${code}"=="404" or "${code}"=="204" run keywords sleep 1 ... AND click element id=denyUserRegionBlock_code_select1 run keyword if "${Content}"=="TEXT" run keywords sleep 1 ... AND click element id=blockselect_select0 ... AND sleep 1 ... AND input text id=denyUserRegionBlock_message ${block-text} ... ELSE IF "${Content}"=="Profile" run keywords sleep 1 ... AND click element id=html_profile ... AND sleep 1 ... AND Profile-SearchorCreate ${SearchorCreate} ${ProfileName} ${file} Profile-SearchorCreate [Arguments] ${SearchorCreate} ${ProfileName} ${file} [Documentation] 调用次关键字前需要添加必填参数: ... ${SearchorCreate}:填入Search或Create ... ${ProfileName}:Profile的名字 ... ${file}:上传文件路径 ... 判断是新建还是搜索profile sleep 1 run keyword if "${SearchorCreate}"=="Search" run keywords sleep 1 ... AND input text id=filedata_profileName ${ProfileName} ... AND sleep 1 ... AND press keys id=filedata_profileName ... AND sleep 1 ... AND click element id=filelist_select0 ... ELSE IF "${SearchorCreate}"=="Create" run keywords sleep 1 ... AND click element id=interceptionadd_fileadd ... AND sleep 1 ... AND input text id=responsepages_profileName ${ProfileName} ... AND sleep 1 ... AND Choose File xpath=//*[@id="policy_Manipulation_create6"]/div[2]/form/div[2]/div/div/div/input ${file} #上传文件 ... AND sleep 1 ... AND clcik element id=responseAddOk1 ... ELSE log 传入参数错误 Deny-Redirect [Arguments] ${QType} ${Avalue} ${Attl} ${CNAMEvalue} ${CNAMEttl} [Documentation] 调用次关键字前需要添加必填参数: ... ${QType}:填入A或AAAA ... ${Avalue}:根据${QType}填入IPV4或IPV6的值 ... ${Attl}:根据${QType}填入A的ttl值或AAAA的ttl值 ... ${CNAMEvalue}:根据${QType}填入A的CNAME的域名值或AAAA的CNAME域名值 ... ${CNAMEttl}:根据${QType}填入A的CNAME的ttl值或AAAA的CNAME的ttl值 ... 新建Redirect run keyword if "${QType}"=="A" run keywords sleep 1 ... AND input text id=A00 ${Avalue} ... AND sleep 1 ... AND input text id=ttl00 ${Attl} ... AND sleep 1 ... AND click element id=interceptionadd_addForm ... AND sleep 1 ... AND input text id=Cname01 ${CNAMEvalue} ... AND sleep 1 ... AND input text id=ttl01 ${CNAMEttl} run keyword if "${QType}"=="AAAA" run keywords sleep 1 ... AND click element id=dns_qtype_radio01 ... AND input text id=AAAA00 ${Avalue} ... AND sleep 1 ... AND input text id=ttl00 ${Attl} ... AND sleep 1 ... AND click element id=interceptionadd_addForm ... AND sleep 1 ... AND input text id=Cname01 ${CNAMEvalue} ... AND sleep 1 ... AND input text id=ttl01 ${CNAMEttl} sleep 1 click element id=interceptionadd_shezhidns LogSession [Arguments] ${LogSession} [Documentation] 调用次关键字前需要添加必填参数: ... ${LogSession}:填入clcos或其他 run keyword if "${LogSession}"=="close" run keywords sleep 1 ... AND click element id=addlabel_labels_log ... ELSE log 开启日志 Enabled [Arguments] ${Enabled} [Documentation] 调用次关键字前需要添加必填参数: ... ${Enabled}:填入open或其他 run keyword if "${Enabled}"=="open" run keywords sleep 1 ... AND click element id=enablencheck ... AND sleep 1 ... AND click element xpath=/html/body/div[6]/div/div[3]/button[2] ... ELSE log 开启日志 Security-Policies-OK sleep 1 click element id=interceptionadd_sub Create-Object-Search [Arguments] ${name} ${filter} [Documentation] 调用次关键字前需要添加必填参数: ... ${name}:填入是一个列表,列表内容为object的name ... 选择search对象 sleep 1 click element xpath=//*[@id="policy_paper_left"]/div[8]/div[1]/div[1]/label[contains(text(), "${filter}")]/following-sibling::div/div sleep 1 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 1 press keys xpath=//*[@id="condistions_protocol"]/div[2]/p[contains(text(), "${filter}")]/following-sibling::div[2]/div/div[1]/input ENTER sleep 1 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 1 END Create-Source [Arguments] ${type1}=null ${CreateOrSearch}=null ${Add}=null ${name}=null ... ${object_name}=null ${ipclienttext1}=null ${post}=null ${Country}=null ${City}=null ... ${Protocols1}=null ${Degree}=null ${times}=null ${numbers}=null ${limits}=null ${keywordtext}=null [Documentation] 调用次关键字前需要添加必填参数: ... ${type1}:填入Ip或SUBID或Geography或IPLearning ... ${CreateOrSearch}:填入Create或者Search ... ${Add}:填入Address或Group ... ${name}:名称 ... ${ip_type}:填入Ip或者Geography或者IPLearning ... ${ipclienttext1}:填入IPV4或6的值或range的ip段 ... ${post}:填入端口 ... ${Country}:列表形式,列表中是国家名字 ... ${City}:列表形式,列表中是城市名字 ... ${Protocols1}:填入HTTP或SSL或HTTPSSL ... ${Degree}:填入1Degree或2Degree ... ${times}:填入小时数,例如1或2 ... ${numbers}:填入数值,例如1或10000 ... ${limits}:填入数值,例如1或10000 ... ${object_name}:列表形式,列表中是对象的名字 ... ${keywordtext}:填入新建subid的内容 ... 判断新建source选择用什么样的类型数据 run keyword if "${type1}"=="Ip" run keywords sleep 1 ... AND click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[4]/div[2]/div[1]/div[2]/div[1]/div/div/div/div[1]/div/div/div/div[1] ... AND sleep 1 ... AND sleep 1 ... AND SourceSourceIPCreateOrSearch ${CreateOrSearch} ${Add} ${type1} ${name} ${object_name} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits} ... ELSE IF "${type1}"=="SUBID" run keywords sleep 1 ... AND click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[4]/div[2]/div[1]/div[2]/div[1]/div/div/div/div[1]/div/div/div/div[2] ... AND sleep 1 ... AND SUBIDCreateOrSearch ${name} ${keywordtext} ${object_name} ... ELSE IF "${type1}"=="Geography" run keywords sleep 1 ... AND click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[4]/div[2]/div[1]/div[2]/div[1]/div/div/div/div[1]/div/div/div/div[3] ... AND sleep 1 ... AND SourceIPCreateOrSearch ${CreateOrSearch} ${Add} ${type1} ${name} ${object_name} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits} ... ELSE IF "${type1}"=="IPLearning" run keywords sleep 1 ... AND click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[4]/div[2]/div[1]/div[2]/div[1]/div/div/div/div[1]/div/div/div/div[4] ... AND sleep 1 ... AND SourceIPCreateOrSearch ${CreateOrSearch} ${Add} ${type1} ${name} ${object_name} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits} Create-Destination [Arguments] ${type1}=null ${CreateOrSearch}=null ${Add}=null ${name}=null ... ${object_name}=null ${ipclienttext1}=null ${post}=null ${Country}=null ${City}=null ... ${Protocols1}=null ${Degree}=null ${times}=null ${numbers}=null ${limits}=null ${keywordtext}=null [Documentation] 调用次关键字前需要添加必填参数: ... ${type1}:填入Ip或SUBID或Geography或IPLearning ... ${CreateOrSearch}:填入Create或者Search ... ${Add}:填入Address或Group ... ${name}:名称 ... ${ip_type}:填入Ip或者Geography或者IPLearning ... ${ipclienttext1}:填入IPV4或6的值或range的ip段 ... ${post}:填入端口 ... ${Country}:列表形式,列表中是国家名字 ... ${City}:列表形式,列表中是城市名字 ... ${Protocols1}:填入HTTP或SSL或HTTPSSL ... ${Degree}:填入1Degree或2Degree ... ${times}:填入小时数,例如1或2 ... ${numbers}:填入数值,例如1或10000 ... ${limits}:填入数值,例如1或10000 ... ${object_name}:列表形式,列表中是对象的名字 ... ${keywordtext}:填入新建subid的内容 ... 判断新建source选择用什么样的类型数据 run keyword if "${type1}"=="Ip" run keywords sleep 1 ... AND click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[2]/div[1]/div[2]/div[1]/div/div/div/div[1]/div/div/div/div[1] ... AND sleep 1 ... AND sleep 1 ... AND DestinationIPCreateOrSearch ${CreateOrSearch} ${Add} ${type1} ${name} ${object_name} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits} ... ELSE IF "${type1}"=="Geography" run keywords sleep 1 ... AND click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[2]/div[1]/div[2]/div[1]/div/div/div/div[1]/div/div/div/div[3] ... AND sleep 1 ... AND DestinationIPCreateOrSearch ${CreateOrSearch} ${Add} ${type1} ${name} ${object_name} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits} ... ELSE IF "${type1}"=="IPLearning" run keywords sleep 1 ... AND click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[2]/div[1]/div[2]/div[1]/div/div/div/div[1]/div/div/div/div[4] ... AND sleep 1 ... AND DestinationCreateOrSearch ${CreateOrSearch} ${Add} ${type1} ${name} ${object_name} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits} SourceIPCreateOrSearch [Arguments] ${CreateOrSearch} ${Add} ${ip_type} ${name} ${object_name} ${ipclienttext1} ... ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits} [Documentation] 调用次关键字前需要添加必填参数: ... ${CreateOrSearch}:填入Create或者Search ... ${Add}:填入Address或Group ... ${name}:名称 ... ${ip_type}:填入Ip或者Geography或者IPLearning ... ${ipclienttext1}:填入IPV4或6的值或range的ip段 ... ${post}:填入端口 ... ${Country}:列表形式,列表中是国家名字 ... ${City}:列表形式,列表中是城市名字 ... ${Protocols1}:填入HTTP或SSL或HTTPSSL ... ${Degree}:填入1Degree或2Degree ... ${times}:填入小时数,例如1或2 ... ${numbers}:填入数值,例如1或10000 ... ${limits}:填入数值,例如1或10000 ... ${object_name}:列表形式,列表中是对象的名字 ... 判断是新建ip还是搜索添加ip run keyword if "${CreateOrSearch}"=="Create" run keywords sleep 1 ... AND click element id=interceptionadd_proaddaddSource ... AND SourceIPAdd ${Add} ${ip_type} ${name} ${object_name} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits} ... ELSE IF "${CreateOrSearch}"=="Search" run keywords sleep 1 ... AND SourceSearchSearch ${object_name} SUBIDCreateOrSearch [Arguments] ${name} ${keywordtext} ${object_name} [Documentation] 调用次关键字前需要添加必填参数: ... ${CreateOrSearch}:填入Create或者Search ... ${name}:名称 ... ${keywordtext}:填入新建subid的内容 ... ${object_name}:列表形式,列表中是对象的名字 ... 判断是新建subid还是搜索添加subid run keyword if "${CreateOrSearch}"=="Create" run keywords sleep 1 ... AND click element id=interceptionadd_proaddaddSource ... AND SUBIDAdd ${Add} ${name} ${keywordtext} ${object_name} ... ELSE IF "${CreateOrSearch}"=="Search" run keywords sleep 1 ... AND SourceSearchSearch ${object_name} DestinationIPCreateOrSearch [Arguments] ${CreateOrSearch} ${Add} ${ip_type} ${name} ${object_name} ${ipclienttext1} ... ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits} [Documentation] 调用次关键字前需要添加必填参数: ... ${CreateOrSearch}:填入Create或者Search ... ${Add}:填入Address或Group ... ${name}:名称 ... ${ip_type}:填入Ip或者Geography或者IPLearning ... ${ipclienttext1}:填入IPV4或6的值或range的ip段 ... ${post}:填入端口 ... ${Country}:列表形式,列表中是国家名字 ... ${City}:列表形式,列表中是城市名字 ... ${Protocols1}:填入HTTP或SSL或HTTPSSL ... ${Degree}:填入1Degree或2Degree ... ${times}:填入小时数,例如1或2 ... ${numbers}:填入数值,例如1或10000 ... ${limits}:填入数值,例如1或10000 ... ${object_name}:列表形式,列表中是对象的名字 ... 判断是新建ip还是搜索添加ip run keyword if "${CreateOrSearch}"=="Create" run keywords sleep 1 ... AND click element id=interceptionadd_proaddaddDestination ... AND DestinationIPAdd ${Add} ${ip_type} ${name} ${object_name} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits} ... ELSE IF "${CreateOrSearch}"=="Search" run keywords sleep 1 ... AND DestinationSearch ${object_name} SourceSearch [Arguments] ${name} [Documentation] 调用次关键字前需要添加必填参数: ... ${name}:填入是一个列表,列表内容为source的name ... 选择search对象 FOR ${i} IN @{name} input text xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[4]/div[2]/div[1]/div[2]/div[2]/div/div[1]/input ${i} sleep 1 press keys xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[4]/div[2]/div[1]/div[2]/div[2]/div/div[1]/input ENTER sleep 1 click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[4]/div[2]/div[1]/div[2]/div[2]/div/div[2]/div/div/ul/li[1] sleep 1 END DestinationSearch [Arguments] ${name} [Documentation] 调用次关键字前需要添加必填参数: ... ${name}:填入是一个列表,列表内容为source的name ... 选择search对象 FOR ${i} IN @{name} input text xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[2]/div[1]/div[2]/div[2]/div/div[1]/input ${i} sleep 1 press keys xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[2]/div[1]/div[2]/div[2]/div/div[1]/input ENTER sleep 1 click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[2]/div[1]/div[2]/div[2]/div/div[2]/div/div/ul/li[1] sleep 1 END SUBIDAdd [Arguments] ${Add} ${name} ${keywordtext} ${object_name} [Documentation] 调用次关键字前需要添加必填参数: ... ${Add}:填入Address或Group ... ${name}:名称 ... ${keywordtext}:填入新建subid的内容 ... ${object_name}:列表形式,列表中是对象的名字 ... 判断是新建subid还是新建subid分组 run keyword if "${Add}"=="Address" run keywords sleep 1 ... AND click element xpath=/html/body/ul/li[1] ... AND sleep 1 ... AND SUBAddress ${name} ${keywordtext} ... ELSE IF "${Add}"=="Group" run keywords sleep 1 ... AND click element xpath=/html/body/ul/li[2] ... AND sleep 1 ... AND SUBGroupAdd ${name} ${object_name} SUBAddress [Arguments] ${name} ${keywordtext} [Documentation] 调用次关键字前需要添加必填参数: ... ${name}:名称 ... ${keywordtext}:填入新建subid的内容 ... 新建subid SourceCreate-name ${name} click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[3]/div/div[1]/i sleep 1 Create-SubscriberID-text ${keywordtext} sleep 1 SUBGroupAdd [Arguments] ${name} ${object_name} [Documentation] 调用次关键字前需要添加必填参数: ... ${name}:名称 ... ${object_name}:列表形式,列表中是对象的名字 ... 新建subid分组 SourceCreate-name ${name} click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[3]/div/div/div[2] sleep 1 Create-Sub-Objects ${object_name} NewObject.Create-ok SourceIPAdd [Arguments] ${Add} ${ip_type} ${name} ${object_name} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits} [Documentation] 调用次关键字前需要添加必填参数: ... ${Add}:填入Address或Group ... ${ip_type}:填入IP或者Geography或者IPLearning ... 判断是新建ip还是新建ip分组 run keyword if "${Add}"=="Address" run keywords sleep 1 ... AND click element xpath=/html/body/ul/li[1] ... AND sleep 1 ... AND SourceIPAddress ${name} ${ip_type} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits} ... ELSE IF "${Add}"=="Group" run keywords sleep 1 ... AND click element xpath=/html/body/ul/li[2] ... AND sleep 1 ... AND SourceIPGroupAdd ${name} ${ip_type} ${object_name} SourceIPAddress [Arguments] ${name} ${ip_type} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits} [Documentation] 调用次关键字前需要添加必填参数: ... ${name}:名称 ... ${ip_type}:填入Ip或者Geography或者IPLearning ... ${ipclienttext1}:填入IPV4或6的值或range的ip段 ... ${post}:填入端口 ... ${Country}:列表形式,列表中是国家名字 ... ${City}:列表形式,列表中是城市名字 ... ${Protocols1}:填入HTTP或SSL或HTTPSSL ... ${Degree}:填入1Degree或2Degree ... ${times}:填入小时数,例如1或2 ... ${numbers}:填入数值,例如1或10000 ... ${limits}:填入数值,例如1或10000 ... 判断 新建选择用什么样的类型,并进行新建 SourceCreate-name ${name} sleep 1 run keyword if "${ip_type}"=="Ip" run keywords click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div[1] ... AND sleep 1 ... AND NewObject.Create-ip-ClientIP-text ${ipclienttext1} ${post} run keyword if "${ip_type}"=="Geography" run keywords click element id=objectAdd_ip1 ... AND sleep 1 ... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div[1]/div[2] ... AND sleep 1 ... AND NewObject.Create-Geography ${Country} ${City} ... AND sleep 1 ... AND click element id=interceptionadd_allcancelobjec3t ... AND sleep 1 run keyword if "${ip_type}"=="IPLearning" run keywords click element id=objectAdd_ip2 ... AND sleep 1 ... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div[1] ... AND sleep 1 ... AND input text xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div[4]/div/div[1]/div[2]/div[1]/div[1]/form/div[1]/div/div[1]/input ${fqdn} ... AND sleep 1 ... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[1]/div/div/div[2] ... AND sleep 1 ... AND Learn-From-Protocols ${Protocols1} ... AND Learning-Depth ${Degree} ... AND sleep 1 ... AND input text xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[3]/div/div[1]/input ${times} ... AND sleep 1 ... AND input text xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[4]/div/div[1]/input ${numbers} ... AND sleep 1 ... AND input text xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[5]/div/div[1]/input ${limits} ... AND sleep 1 SourceCreate-ok DestinationIPAdd [Arguments] ${Add} ${ip_type} ${name} ${object_name} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits} [Documentation] 调用次关键字前需要添加必填参数: ... ${Add}:填入Address或Group ... ${ip_type}:填入IP或者Geography或者IPLearning ... 判断是新建ip还是新建ip分组 run keyword if "${Add}"=="Address" run keywords sleep 1 ... AND click element xpath=/html/body/ul/li[1] ... AND sleep 1 ... AND DestinationIPAddress ${name} ${ip_type} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits} ... ELSE IF "${Add}"=="Group" run keywords sleep 1 ... AND click element xpath=/html/body/ul/li[2] ... AND sleep 1 ... AND IPGroupAdd ${name} ${ip_type} ${object_name} DestinationIPAddress [Arguments] ${name} ${ip_type} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits} [Documentation] 调用次关键字前需要添加必填参数: ... ${name}:名称 ... ${ip_type}:填入Ip或者Geography或者IPLearning ... ${ipclienttext1}:填入IPV4或6的值或range的ip段 ... ${post}:填入端口 ... ${Country}:列表形式,列表中是国家名字 ... ${City}:列表形式,列表中是城市名字 ... ${Protocols1}:填入HTTP或SSL或HTTPSSL ... ${Degree}:填入1Degree或2Degree ... ${times}:填入小时数,例如1或2 ... ${numbers}:填入数值,例如1或10000 ... ${limits}:填入数值,例如1或10000 ... 判断 新建选择用什么样的类型,并进行新建 DestinationCreate-name ${name} sleep 1 run keyword if "${ip_type}"=="Ip" run keywords click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div[1] ... AND sleep 1 ... AND NewObject.Create-ip-ClientIP-text ${ipclienttext1} ${post} run keyword if "${ip_type}"=="Geography" run keywords click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[2]/div[2]/div/div[1]/div[1]/div[2]/form/div[3]/div/div/label[2] ... AND sleep 1 ... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div[1]/div[2] ... AND sleep 1 ... AND NewObject.Create-Geography ${Country} ${City} ... AND sleep 1 ... AND click element id=interceptionadd_allcancelobjec3t ... AND sleep 1 run keyword if "${ip_type}"=="IPLearning" run keywords click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[2]/div[2]/div/div[1]/div[1]/div[2]/form/div[3]/div/div/label[3] ... AND sleep 1 ... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div[1] ... AND sleep 1 ... AND input text xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div[4]/div/div[1]/div[2]/div[1]/div[1]/form/div[1]/div/div[1]/input ${fqdn} ... AND sleep 1 ... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[1]/div/div/div[2] ... AND sleep 1 ... AND Learn-From-Protocols ${Protocols1} ... AND Learning-Depth ${Degree} ... AND sleep 1 ... AND input text xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[3]/div/div[1]/input ${times} ... AND sleep 1 ... AND input text xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[4]/div/div[1]/input ${numbers} ... AND sleep 1 ... AND input text xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[5]/div/div[1]/input ${limits} ... AND sleep 1 DestinationCreate-ok Learn-From-Protocols [Arguments] ${Protocols1} [Documentation] 调用次关键字前需要添加必填参数: ... ${Protocols1}:填入HTTP或SSL或者HTTPSSL ... 判断选择用什么样的协议 run keyword if "${Protocols1}"=="HTTP" run keywords sleep 1 ... AND click element xpath=/html/body/div[6]/div[1]/div[1]/ul/li[1] run keyword if "${Protocols1}"=="SSL" run keywords sleep 1 ... AND click element xpath=/html/body/div[6]/div[1]/div[1]/ul/li[2] run keyword if "${Protocols1}"=="HTTPSSL" run keywords sleep 1 ... AND click element xpath=/html/body/div[6]/div[1]/div[1]/ul/li[1] ... AND sleep 1 ... AND click element xpath=/html/body/div[6]/div[1]/div[1]/ul/li[2] Learning-Depth [Arguments] ${Degree} [Documentation] 调用次关键字前需要添加必填参数: ... ${Degree}:填入1Degree或2Degree ... 判断是用1Degree或2Degree run keyword if "${Degree}"=="1Degree" run keywords sleep 1 ... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[2]/div/div/label[1] run keyword if "${Degree}"=="2Degree" run keywords sleep 1 ... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[2]/div/div/label[2] IPGroupAdd [Arguments] ${name} ${ip_type} ${object_name} [Documentation] 调用次关键字前需要添加必填参数: ... ${name}:名称 ... ${ip_type}:填入Ip或者Geography ... ${object_name}:列表形式,列表中是对象的名字 SourceCreate-name ${name} Select-ip_type ${ip_type} sleep 1 click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div/div[2] Create-Sub-Objects ${object_name} NewObject.Create-ok SourceCreate-name [Arguments] ${objName} sleep 2 input text id=objectAdd_name ${objName} SourceCreate-ok sleep 2 click button id=objectAdd_ok DestinationCreate-name [Arguments] ${objName} sleep 2 input text xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[2]/div[2]/div/div[1]/div[1]/div[2]/form/div[1]/div/div[1]/input ${objName} DestinationCreate-ok sleep 2 click button xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[2]/div[2]/div/div[2]/button[1] Create-Conditions sleep 2 click element id=interceptionadd_object Create-Conditions-ip [Arguments] ${objname} sleep 2 click element id=interceptionadd_procolall1 sleep 2 SecurityPolicy.SelectOne ${objname} Create-Conditions-sub [Arguments] ${objname} sleep 2 click element id=interceptionadd_procolall2 sleep 2 SecurityPolicy.SelectOne ${objname} Create-Conditions-protocol [Arguments] ${protocol} sleep 2 click element id=interceptionadd_procolall3 sleep 2 run keyword if '${protocol}'=='http' run keywords sleep 1 ... AND click element id=interceptionadd_prochange0 ... ELSE IF '${protocol}'=='ssl' run keywords sleep 1 ... AND click element id=interceptionadd_prochange1 ... ELSE IF '${protocol}'=='dns' run keywords sleep 1 ... AND click element id=interceptionadd_prochange2 ... ELSE IF '${protocol}'=='mail' run keywords sleep 1 ... AND click element id=interceptionadd_prochange3 ... ELSE IF '${protocol}'=='ftp' run keywords sleep 1 ... AND click element id=interceptionadd_prochange4 ... ELSE log 协议内容错误 Create-Conditions-Search [Arguments] ${Search} input text xpath=//*[@id="proxy"]/div[5]/div[2]/div[2]/div/div[1]/input ${Search} sleep 2 Create-Conditions-Close click button id=interceptionadd_allcancelobject sleep 2 Create-Tag Create-EffectiveDevices Create-Schedule Create-Log Session Create-Description Create-Enabled [Arguments] ${state} sleep 2 run keyword if "${state}"=="open" run keywords click element id=enablencheck_swith ... AND sleep 2 ... AND click button id=interceptionadd-enable-confirm Create-ok execute javascript document.documentElement.scrollTop=1000 sleep 2 click button id=interceptionadd_sub sleep 1 execute javascript document.documentElement.scrollTop=0 Create-cancel click button id=interceptionadd_back Create-Conditions-obj [Arguments] ${action} ${protocol} ${objtype} ${objname} ${objtype1}=null run keyword if '${action}'=='allow' and '${protocol}'=='http' run keywords sleep 1 ... AND click element id=interceptionadd_prochange0 ... AND Create-Conditions-allow&intercept-http ${objtype} ${objname} ... ELSE IF '${action}'=='intercept' and '${protocol}'=='http' run keywords sleep 1 ... AND click element id=interceptionadd_prochange0 ... AND Create-Conditions-allow&intercept-http ${objtype} ${objname} ... ELSE IF '${action}'=='allow' and '${protocol}'=='ssl' run keywords sleep 1 ... AND click element id=interceptionadd_prochange1 ... AND Create-Conditions-allow&intercept-ssl ${objtype} ${objname} ... ELSE IF '${action}'=='intercept' and '${protocol}'=='ssl' run keywords sleep 1 ... AND click element id=interceptionadd_prochange1 ... AND Create-Conditions-allow&intercept-ssl ${objtype} ${objname} ... ELSE IF '${action}'=='deny' and '${protocol}'=='http' run keywords sleep 1 ... AND click element id=interceptionadd_prochange0 ... AND Create-Conditions-deny&monitor-http ${objtype} ${objname} ... ELSE IF '${action}'=='monitor' and '${protocol}'=='http' run keywords sleep 1 ... AND click element id=interceptionadd_prochange0 ... AND Create-Conditions-deny&monitor-http ${objtype} ${objname} ... ELSE IF '${action}'=='deny' and '${protocol}'=='ssl' run keywords sleep 1 ... AND click element id=interceptionadd_prochange1 ... AND Create-Conditions-deny&monitor-ssl ${objtype1} ${objtype} ${objname} ... ELSE IF '${action}'=='monitor' and '${protocol}'=='ssl' run keywords sleep 1 ... AND click element id=interceptionadd_prochange1 ... AND Create-Conditions-deny&monitor-ssl ${objtype1} ${objtype} ${objname} ... ELSE IF '${action}'=='deny' and '${protocol}'=='dns' run keywords sleep 1 ... AND click element id=interceptionadd_prochange2 ... AND Create-Conditions-deny&monitor-dns ${objtype} ${objname} ... ELSE IF '${action}'=='monitor' and '${protocol}'=='dns' run keywords sleep 1 ... AND click element id=interceptionadd_prochange2 ... AND Create-Conditions-deny&monitor-dns ${objtype} ${objname} ... ELSE IF '${action}'=='deny' and '${protocol}'=='mail' run keywords sleep 1 ... AND click element id=interceptionadd_prochange3 ... AND Create-Conditions-deny&monitor-mail ${objtype} ${objname} ... ELSE IF '${action}'=='monitor' and '${protocol}'=='mail' run keywords sleep 1 ... AND click element id=interceptionadd_prochange3 ... AND Create-Conditions-deny&monitor-mail ${objtype} ${objname} ... ELSE IF '${action}'=='deny' and '${protocol}'=='ftp' run keywords sleep 1 ... AND click element id=interceptionadd_prochange4 ... AND Create-Conditions-deny&monitor-ftp ${objtype} ${objname} ... ELSE IF '${action}'=='monitor' and '${protocol}'=='ftp' run keywords sleep 1 ... AND click element id=interceptionadd_prochange4 ... AND Create-Conditions-deny&monitor-ftp ${objtype} ${objname} ... ELSE log 对象错误 Create-Conditions-allow&intercept-http [Arguments] ${objtype} ${objname} sleep 2 run keyword if '${objtype}'=='Fqdn' run keywords click element xpath=//*[@id="interceptionadd_pro0"]/div[2] ... AND sleep 2 ... ELSE IF '${objtype}'=='Category' run keywords click element xpath=//*[@id="interceptionadd_pro0"]/div[3] ... AND sleep 2 ... ELSE log 对象错误 SecurityPolicy.SelectOne ${objname} Create-Conditions-allow&intercept-ssl [Arguments] ${objtype} ${objname} sleep 2 run keyword if '${objtype}'=='Fqdn' run keywords click element xpath=//*[@id="interceptionadd_pro0"]/div[2] ... AND sleep 2 ... ELSE IF '${objtype}'=='Category' run keywords click element xpath=//*[@id="interceptionadd_pro0"]/div[3] ... AND sleep 2 ... ELSE log 对象错误 SecurityPolicy.SelectOne ${objname} Create-Conditions-deny&monitor-http [Arguments] ${objtype} ${objname} sleep 2 run keyword if '${objtype}'=='Fqdn' run keywords click element xpath=//*[@id="interceptionadd_pro0"]/div[2] ... AND sleep 2 ... ELSE IF '${objtype}'=='Category' run keywords click element xpath=//*[@id="interceptionadd_pro0"]/div[3] ... AND sleep 2 ... ELSE IF '${objtype}'=='Url' run keywords click element id=interceptionadd_pro1 ... AND sleep 2 ... ELSE IF '${objtype}'=='Reqhdr' run keywords click element id=interceptionadd_pro2 ... AND sleep 2 ... ELSE IF '${objtype}'=='Reshdr' run keywords click element id=interceptionadd_pro3 ... AND sleep 2 ... ELSE IF '${objtype}'=='Reqbody' run keywords click element id=interceptionadd_pro4 ... AND sleep 2 ... ELSE IF '${objtype}'=='Resbody' run keywords click element id=interceptionadd_pro5 ... AND sleep 2 ... ELSE log 对象错误 SecurityPolicy.SelectOne ${objname} Create-Conditions-deny&monitor-ssl [Arguments] ${objtype1} ${objtype} ${objname} sleep 2 run keyword if '${objtype1}'=='sni' and '${objtype}'=='Fqdn' run keywords click element xpath=//*[@id="interceptionadd_pro0"]/div[2] ... AND sleep 2 ... ELSE IF '${objtype1}'=='sni' and '${objtype}'=='Category' run keywords click element xpath=//*[@id="interceptionadd_pro0"]/div[3] ... AND sleep 2 ... ELSE IF ${objtype1}'=='cn' and ${objtype}'=='Fqdn' run keywords click element id=interceptionadd_pro1 ... AND sleep 2 ... AND click element xpath=//*[@id="interceptionadd_pro1"]/div[2] ... AND sleep 2 ... ELSE IF ${objtype1}'=='cn' and${objtype}'=='Category' run keywords click element id=interceptionadd_pro1 ... AND sleep 2 ... AND click element xpath=//*[@id="interceptionadd_pro1"]/div[3] ... AND sleep 2 ... ELSE IF ${objtype1}'=='san' and ${objtype}'=='Fqdn' run keywords click element id=interceptionadd_pro2 ... AND sleep 2 ... AND click element xpath=//*[@id="interceptionadd_pro2"]/div[2] ... AND sleep 2 ... ELSE IF ${objtype1}'=='san' and ${objtype}'=='Category' run keywords click element id=interceptionadd_pro2 ... AND sleep 2 ... AND click element xpath=//*[@id="interceptionadd_pro2"]/div[3] ... AND sleep 2 ... ELSE log 对象错误 SecurityPolicy.SelectOne ${objname} Create-Conditions-deny&monitor-dns [Arguments] ${objtype} ${objname} sleep 2 run keyword if '${objtype}'=='Fqdn' run keywords click element xpath=//*[@id="interceptionadd_pro0"]/div[2] ... AND sleep 2 ... ELSE IF '${objtype}'=='Category' run keywords click element xpath=//*[@id="interceptionadd_pro0"]/div[3] ... AND sleep 2 ... ELSE log 对象错误 SecurityPolicy.SelectOne ${objname} Create-Conditions-deny&monitor-mail [Arguments] ${objtype} ${objname} sleep 2 run keyword if '${objtype}'=='Subject' run keywords click element id=interceptionadd_pro0 ... AND sleep 2 ... ELSE IF '${objtype}'=='Content' run keywords click element id=interceptionadd_pro1 ... AND sleep 2 ... ELSE IF '${objtype}'=='ATT Name' run keywords click element id=interceptionadd_pro2 ... AND sleep 2 ... ELSE IF '${objtype}'=='ATT CONT' run keywords click element id=interceptionadd_pro3 ... AND sleep 2 ... ELSE IF '${objtype}'=='From' run keywords click element id=interceptionadd_pro4 ... AND sleep 2 ... ELSE IF '${objtype}'=='To' run keywords click element id=interceptionadd_pro5 ... AND sleep 2 ... ELSE IF '${objtype}'=='Account' run keywords click element id=interceptionadd_pro6 ... AND sleep 2 ... ELSE log 对象错误 SecurityPolicy.SelectOne ${objname} Create-Conditions-deny&monitor-ftp [Arguments] ${objtype} ${objname} sleep 2 run keyword if '${objtype}'=='url' run keywords click element id=interceptionadd_pro0 ... AND sleep 2 ... ELSE IF '${objtype}'=='content' run keywords click element id=interceptionadd_pro1 ... AND sleep 2 ... ELSE IF '${objtype}'=='account' run keywords click element id=interceptionadd_pro2 ... AND sleep 2 ... ELSE log 对象错误 SecurityPolicy.SelectOne ${objname} SelectOne [Arguments] ${objname} sleep 2 log ${objname} input text xpath=//*[@id="condistions_protocol"]/div[2]/div[2]/div/div[1]/input ${objname} sleep 1 press keys xpath=//*[@id="condistions_protocol"]/div[2]/div[2]/div/div[1]/input ENTER sleep 2 click element xpath=//*[@id="interceptionadd_checkouobject"]/ul/li[1]