*** Settings *** Library Selenium2Library Resource ../Menu.robot Library Collections Library ../../../04-CustomLibrary/Custometest/StringManipulation.py Resource ../../../03-Variable/bifangapivariable.txt Library DatabaseLibrary *** Keywords *** AdminOpenPages [Arguments] ${SecondaryMenu} ${Three-levelMenu} ${Targeting}=null ${Amenu}=null [Documentation] ... ${SecondaryMenu}:二级菜单 ... ${Three-levelMenu}:三级菜单 ... ${Targeting} :三级菜单 定位方式 默认不输入为id run keyword if "${Amenu}"=="null" run keywords sleep ${sleep_min} ... AND click element id=children7 ... ELSE click element id=${Amenu} sleep ${sleep_min} click element id=${SecondaryMenu} sleep ${sleep_min} run keyword if "${Targeting}"=="null" run keywords sleep ${sleep_min} ... AND click element id=${Three-levelMenu} run keyword if "${Targeting}"=="xpath" run keywords sleep ${sleep_min} ... AND click element ${Targeting}=${Three-levelMenu} sleep ${sleep_min} UserCreatePage [Arguments] ${name} ${username} ${accPasswd} ${Required_Password_Change} ${day} ${accEnable} ${role} Menu administration Accounts Wait Until Element Is Enabled id=userAdd 10 Click element id=userAdd sleep ${sleep} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[1]/div/div[1]/input ${name} sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[2]/div/div[1]/input ${username} sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[3]/div/div/input ${accPasswd} sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[4]/div/div/input ${accPasswd} sleep ${sleep_min} run keyword if "${accEnable}"=="close" run keywords click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[6]/div/div ... AND sleep ${sleep_min} ... ELSE log 不操作 sleep ${sleep_min} run keyword if "${Required_Password_Change}"=="open" Run Keywords click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[5]/div/div ... AND sleep ${sleep_min} ... AND input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[6]/div/div/input ${day} ... ELSE log 不开启密码过期验证 Click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[last()]/div/div/div/span/span/i sleep ${sleep_min} Execute Javascript window.scrollTo(0, document.body.scrollHeight) sleep ${sleep_min} click element //span[.="${role}"] sleep ${sleep_min} click button xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/button[1] Wait Until Element Is Enabled id=profilesTabs_Profile_ResponsePages ${sleep_Wait} UserCreatePageErrorVerification [Arguments] ${name} ${username} ${accPasswd} ${Required_Password_Change} ${day} ${accEnable} ${role} Menu administration Accounts Wait Until Element Is Enabled id=userAdd 10 Click element id=userAdd sleep ${sleep} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[1]/div/div[1]/input ${name} sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[2]/div/div[1]/input ${username} sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[3]/div/div/input ${accPasswd} sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[4]/div/div/input ${accPasswd} sleep ${sleep_min} run keyword if "${accEnable}"=="close" run keywords click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[6]/div/div ... AND sleep ${sleep_min} ... ELSE log 不操作 sleep ${sleep_min} run keyword if "${Required_Password_Change}"=="open" Run Keywords click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[5]/div/div ... AND sleep ${sleep_min} ... AND input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[6]/div/div/input ${day} ... ELSE log 不开启密码过期验证 Click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[last()]/div/div/div/span/span/i sleep ${sleep_min} Execute Javascript window.scrollTo(0, document.body.scrollHeight) sleep ${sleep_min} click element //span[.="${role}"] sleep ${sleep_min} click button xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/button[1] sleep ${sleep} UserEdit [Arguments] ${password} ${enable} sleep ${sleep} click element id=userEdit sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[3]/div/div/input ${password} sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[4]/div/div/input ${password} sleep ${sleep_min} run keyword if "${enable}"=="close" run keywords click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[6]/div/div ... AND sleep ${sleep_min} ... ELSE log 不操作 sleep ${sleep_min} click button xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/button[1] sleep ${sleep} UserSearchName [Arguments] ${name} ${type} sleep ${sleep_min} click element 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 ${sleep} run keyword if "${type}"=="Name" run keywords click element xpath=/html/body/div/div[1]/div[1]/ul/li[3] ... AND sleep ${sleep_min} run keyword if "${type}"=="UserName" run keywords click element xpath=/html/body/div/div[1]/div[1]/ul/li[2] ... AND sleep ${sleep_min} sleep ${sleep} input text 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 ${name} sleep ${sleep} click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[1]/span/div/i sleep ${sleep} click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1] sleep ${sleep} CreateRoles [Arguments] ${name} ${description} ${list} [Documentation] ... ${name}:角色权限名称 ... ${description}:备注 ... ${list}:权限定位列表 sleep ${sleep_min} Click element id=children7 sleep ${sleep_min} Click element id=sidebarsystem_accounts sleep ${sleep_min} Click element id=profilesTabs_Profile_Insert sleep ${sleep_min} Click element id=app_create sleep ${sleep} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[1]/div/div[1]/input ${name} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[2]/div/div/input ${description} sleep ${sleep_min} FOR ${i} IN @{list} log ${i} Execute Javascript window.scrollTo(0, document.body.scrollHeight) click element xpath=${i} sleep ${sleep_min} END click element id=rolesOk sleep ${sleep_min} EditRoles [Arguments] ${name}=null ${description}=null ${Authority}=null ${Authorityxpath}=null sleep ${sleep_min} click element id=appEdit Wait Until Element Is Enabled xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[1] ${sleep_Wait} run keyword if "${name}" != "null" run keywords sleep ${sleep_min} ... AND input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[1]/div/div[1]/input ${name} ... ELSE log name不修改 run keyword if "${description}" != "null" run keywords sleep ${sleep_min} ... AND input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/div[2]/form/div[2]/div/div/input ${description} ... ELSE log description不修改 run keyword if "${Authority}" != "null" run keywords sleep ${sleep_min} ... AND click element xpath=${Authorityxpath} ... ELSE log 权限不修改 sleep ${sleep_min} click element id=rolesOk sleep ${sleep_min} RolesVerification [Arguments] ${rolexpath} ${role} [Documentation] ... ${rolexpath}:权限在侧滑框的定位 ... ${role} : 权限 (Enable、ReadOnly、Disable) click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[3]/div/div/span/span Wait Until Element Is Enabled xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[5]/div ${sleep_Wait} ${text} Get Element Attribute xpath=${rolexpath} class ${role} Set Variable if "${role}" == "Enable" iconfont switch_i icon-Rolesenable ... "${role}" == "ReadOnly" iconfont switch_i icon-Rolesreadonly ... "${role}" == "Disable" iconfont switch_i icon-Rolesdisable sleep ${sleep_min} click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[5]/div/div[2]/div/button sleep ${sleep_min} Should Be Equal As Strings ${text} ${role} RoleSearch [Arguments] ${name} [Documentation] Roles页面搜索功能 ... ${name}:搜索条件name sleep ${sleep_min} Click element 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 ${sleep_min} Click element xpath=/html/body/div/div[1]/div[1]/ul/li[2] sleep ${sleep_min} input text 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 ${name} sleep ${sleep_min} Click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[1]/span/div/i sleep ${sleep} RolesDelete Click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1] sleep ${sleep_min} Click element id=appDel sleep ${sleep_min} Click element xpath=/html/body/div/div/div[3]/button[2] sleep ${sleep_min} AuditLogsSearch [Arguments] ${id} ${TargetType} ${ip}=null [Documentation] ... ${id} :操作对象的id ... ${TargetType}:类型 ... ${ip}:ip不输入默认为测试机IP sleep ${sleep_min} click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/span/div/div/div[2]/div/div/div/input sleep ${sleep} click element xpath=/html/body/div/div[1]/div[1]/ul/li[2] sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/span/div/div/div[2]/div/div/div[3]/div/input ${id} sleep ${sleep_min} click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1] sleep ${sleep_min} click element xpath=/html/body/div/div[1]/div[1]/ul/li[2] sleep ${sleep} run keyword if "${ip}" == "null" run keywords sleep ${sleep_min} ... AND input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/span/div/div/div[2]/div/div[2]/div[3]/div/input ${testClentIP} ... ELSE IF "${ip}" != "null" run keywords sleep ${sleep_min} ... AND input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/span/div/div/div[2]/div/div[2]/div[3]/div/input ${ip} sleep ${sleep_min} click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1] sleep ${sleep_min} click element xpath=/html/body/div/div[1]/div[1]/ul/li[2] sleep ${sleep} Execute Javascript window.scrollTo(0, document.body.scrollHeight) click element xpath=/html/body/div/div[1]/div[1]/ul/li/span[contains(text(), "${TargetType}")] sleep ${sleep_min} click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/span/div/i sleep ${sleep} AuditLogsSearch-NotID [Arguments] ${TargetType} ${ip}=null [Documentation] ... ${TargetType}:类型 ... ${ip}:ip不输入默认为测试机IP sleep ${sleep_min} click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/span/div/div/div[2]/div/div/div/input sleep ${sleep} click element xpath=/html/body/div/div[1]/div[1]/ul/li[3] sleep ${sleep_min} run keyword if "${ip}" == "null" run keywords sleep ${sleep_min} ... AND input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/span/div/div/div[2]/div/div/div[3]/div/input ${testClentIP} ... ELSE IF "${ip}" != "null" run keywords sleep ${sleep_min} ... AND input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/span/div/div/div[2]/div/div/div[3]/div/input ${ip} sleep ${sleep_min} click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1] sleep ${sleep_min} click element xpath=/html/body/div/div[1]/div[1]/ul/li[3] sleep ${sleep_min} Execute Javascript window.scrollTo(0, document.body.scrollHeight) click element xpath=/html/body/div/div[1]/div[1]/ul/li/span[contains(text(), "${TargetType}")] sleep ${sleep_min} click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/span/div/i sleep ${sleep} LoginLogsSearch [Arguments] ${Operator} sleep ${sleep} click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/span/div/div/div[2]/div/div/div/input sleep ${sleep_min} click element xpath=/html/body/div/div[1]/div[1]/ul/li[2] sleep ${sleep} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/span/div/div/div[2]/div/div/div[3]/div/div/input ${Operator} sleep ${sleep} click element xpath=/html/body/div/div/div/ul/li/span[contains(text(), "${Operator}")] sleep ${sleep_min} click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/span/div/i sleep ${sleep} CreateLDAPServer [Arguments] ${list} ${Enbale}=close ${ADCAuthentication}=close ${NoOKButton}=1 [Documentation] ... ${Name}:LDAP服务器名称 ${Host}:主机地址 ${Port}:端口号 ${UserName} :用户名 ${UserMapper-prefix}:用户映射左匹配 ${UserMapper-suffix}:用户映射器右匹配 ... ${Password}:密码 ${ConnectionTimeout}:链接超时时间 ${Enbale};是否生效默认为关闭(open开启) ${ADCAuthentication}:ADC认证默认关闭(open开启) ${NoOKButton}=1不点击OK按钮 AdminOpenPages sidebarsystem_LadpServer sidebarsystem_LadpServer click element id=ldapAdd sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[1]/div/div[1]/input ${list}[0] sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[2]/div/div[1]/input ${list}[1] sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[3]/div/div/input ${list}[2] sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[4]/div/div[1]/input ${list}[3] sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[5]/div/div[1]/input ${list}[4] sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[5]/div/div[2]/input ${list}[5] sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[6]/div/div/input ${list}[6] sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[8]/div/div/div/input ${list}[7] sleep ${sleep_min} run keyword if "${Enbale}"!= "close" run keywords sleep ${sleep_min} ... AND click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[7]/div/div/span ... AND sleep ${sleep_min} ... ELSE log 不开启Enable按钮 run keyword if "${ADCAuthentication}"!= "close" run keywords sleep ${sleep_min} ... AND click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[9]/div/div/span ... AND sleep ${sleep_min} ... ELSE log 不开启ADCAuthentication按钮 click element id=ldapTestConnection Wait Until Element Is Enabled xpath=/html/body/div[last()]/p ${sleep_Wait} run keyword if "${NoOKButton}"== "1" run keywords sleep ${sleep_min} ... AND click element id=ldapAddSuccess sleep ${sleep} EditLDAPServer [Arguments] ${list} ${Enbale}=close ${ADCAuthentication}=close [Documentation] ... ${Name}:LDAP服务器名称 ${Host}:主机地址 ${Port}:端口号 ${UserName} :用户名 ${UserMapper-prefix}:用户映射左匹配 ${UserMapper-suffix}:用户映射器右匹配 ... ${Password}:密码 ${ConnectionTimeout}:链接超时时间 ${Enbale};是否生效默认为关闭(open开启) ${ADCAuthentication}:ADC认证默认关闭(open开启) sleep ${sleep} click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1] sleep ${sleep_min} click element id=ldapEdit sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[4]/div/div[1]/input ${list}[0] sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[5]/div/div[1]/input ${list}[1] sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[6]/div/div/input ${list}[2] sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[7]/div/div[1]/input ${list}[3] sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[8]/div/div[1]/input ${list}[4] sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[8]/div/div[2]/input ${list}[5] sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[9]/div/div/input ${list}[6] sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[11]/div/div/div/input ${list}[7] sleep ${sleep_min} run keyword if "${Enbale}"!= "close" run keywords sleep ${sleep_min} ... AND click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[10]/div/div/span ... AND sleep ${sleep_min} ... ELSE log 不开启Enable按钮 run keyword if "${ADCAuthentication}"!= "close" run keywords sleep ${sleep_min} ... AND click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[12]/div/div/span ... AND sleep ${sleep_min} ... ELSE log 不开启ADCAuthentication按钮 click element id=ldapTestConnection Wait Until Element Is Enabled xpath=/html/body/div[last()]/p ${sleep_Wait} click element id=ldapAddSuccess sleep ${sleep} DeleteLDAPServer sleep ${sleep_min} click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1] sleep ${sleep_min} click element id=ldapDel sleep ${sleep} click element xpath=/html/body/div/div/div[3]/button[2] Wait Until Element Is Enabled xpath=/html/body/div[last()]/p ${sleep_Wait} LDAPServerSearch [Arguments] ${value} ${search} Wait Until Element Is Enabled id=ldapAdd ${sleep_Wait} click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/span/div/div/div[2]/div/div/div/input sleep ${sleep_min} run keyword if "${search}" == "id" run keywords sleep ${sleep_min} ... AND click element xpath=/html/body/div/div[1]/div[1]/ul/li[2] run keyword if "${search}" == "name" run keywords sleep ${sleep_min} ... AND click element xpath=/html/body/div/div[1]/div[1]/ul/li[3] sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/span/div/div/div[2]/div/div/div[3]/div/input ${value} sleep ${sleep} click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[1]/span/div/i sleep ${sleep} LDAPVerificationADC [Arguments] ${name} ${type} [Documentation] 验证name的ADC按钮是否开启,同一个服务ADC只能开启一个 ... ${name}:要查询的LDAPServer的名称 ... ${type}:判断开启和关闭(close / open) AdminOpenPages sidebarsystem_LadpServer sidebarsystem_LadpServer LDAPServerSearch ${name} name ${text} Get Element Attribute xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[9]/div/div/span/div class sleep ${sleep_min} run keyword if "${text}" != "el-switch" and "${type}"=="close" run keywords sleep ${sleep_min} ... AND click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[9]/div/div/span/div run keyword if "${text}" != "el-switch is-checked" and "${type}"=="open" run keywords sleep ${sleep_min} ... AND click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[9]/div/div/span/div sleep ${sleep_min} RestrictionsButton [Arguments] ${type} sleep ${sleep_min} ${status1} Get Element Attribute xpath=//*[@id="policy_Manipulation2"]/div/div[2]/div/div/form/div[1]/div/div class ${status2} Set Variable If "${status1}"=="el-switch" close open run keyword if "${status2}" != "${type}" run keywords sleep ${sleep_min} ... AND click element xpath=//*[@id="policy_Manipulation2"]/div/div[2]/div/div/form/div[1]/div/div/span ... ELSE log 不需要改变 sleep ${sleep} click element id=wanAdd_ok sleep ${sleep} AddAuthorizedSourceIP [Arguments] ${IP} [Documentation] 增加IP sleep ${sleep_min} click element id=temporary_form sleep ${sleep_min} input text xpath=//*[@id="policy_Manipulation2"]/div/div[2]/div/div/form/div[2]/div/div[1]/div[2]/div[1]/div/div[last()]/div/div[1]/div[1]/div/div[2]/div/input ${IP} sleep ${sleep_min} click element id=wanAdd_ok sleep ${sleep} LoginRestrictions-SearchIP [Arguments] ${IP} sleep ${sleep_min} input text id=object_ip_search ${IP} sleep ${sleep_min} press keys id=object_ip_search ENTER sleep ${sleep_min} LoginRestrictions-DeleteIP sleep ${sleep} ${text} Get Element Attribute xpath=/html/body/div/div/div[3]/div[2]/div/div[1]/div/div[2]/div/div/form/div[2]/div/div[1]/div[2]/div[1]/div/div[last()]/div/div/div[2]/i[2] id click element id=${text} sleep ${sleep} click element id=wanAdd_ok sleep ${sleep} LoginRestrictions-LastIPNumber [Documentation] 返回最后一个IP的位数 ${a} Set Variable ${7} sleep ${sleep_min} Execute Javascript window.scrollTo(0, document.body.scrollHeight) ${text} Get Element Attribute xpath=/html/body/div/div/div[3]/div[2]/div/div[1]/div/div[2]/div/div/form/div[2]/div/div[1]/div[2]/div[1]/div/div[last()]/div/div/div[2]/i[2] id sleep ${sleep_min} ${Number}= StringSegmentation_2 ${text} ${a} [Return] ${Number} EditMaximumLoginAttemepts [Arguments] ${Number} [Documentation] 修改最多错误次数 sleep ${sleep_min} input text xpath=//*[@id="policy_Manipulation2"]/div/div[2]/div/div/form/div[3]/div/div[1]/input ${Number} sleep ${sleep_min} click element id=wanAdd_ok sleep ${sleep} EditLockTime [Arguments] ${Time} [Documentation] 修改等待时间 sleep ${sleep_min} input text xpath=//*[@id="policy_Manipulation2"]/div/div[2]/div/div/form/div[4]/div/div[1]/input ${Time} sleep ${sleep_min} click element id=wanAdd_ok sleep ${sleep} OpenMyAccountPage [Documentation] 打开MyAccount侧滑框 sleep ${sleep_min} Mouse Hover xpath=//*[@id="app"]/div/div[1]/div[2]/div/span/div/span Wait Until Element Is Enabled id=editInfo ${sleep_Wait} click element id=editInfo sleep ${sleep} EditMyAccount [Arguments] ${name} ${password} ${ConfirmPassword} ${RequiredPasswordChange}=null ${Day}=null [Documentation] ... sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[1]/div/div/div[1]/div/div/div[1]/div/div/div[1]/div[2]/form/div[1]/div/div[1]/input ${name} sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[1]/div/div/div[1]/div/div/div[1]/div/div/div[1]/div[2]/form/div[3]/div/div/input ${password} sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[1]/div/div/div[1]/div/div/div[1]/div/div/div[1]/div[2]/form/div[4]/div/div/input ${ConfirmPassword} sleep ${sleep_min} ${status} Get Element Attribute xpath=//*[@id="app"]/div/div[3]/div[1]/div/div/div[1]/div/div/div[1]/div/div/div[1]/div[2]/form/div[5]/div/div class run keyword if "${RequiredPasswordChange}"=="open" and "${status}"=="el-switch" run keywords sleep ${sleep_min} ... AND click element xpath=//*[@id="app"]/div/div[3]/div[1]/div/div/div[1]/div/div/div[1]/div/div/div[1]/div[2]/form/div[5]/div/div/span ... AND sleep ${sleep_min} ... AND input text xpath=//*[@id="app"]/div/div[3]/div[1]/div/div/div[1]/div/div/div[1]/div/div/div[1]/div[2]/form/div[6]/div/div/input ${Day} run keyword if "${RequiredPasswordChange}"=="close" and "${status}"=="el-switch is-checked" run keywords sleep ${sleep_min} ... AND click element xpath=//*[@id="app"]/div/div[3]/div[1]/div/div/div[1]/div/div/div[1]/div/div/div[1]/div[2]/form/div[5]/div/div/span ... ELSE log 不修改密码提醒按钮 sleep ${sleep_min} click element id=userOk sleep ${sleep_min} LoginRestrictionsObtainSQLIP [Documentation] 获取数据库白名单并返回 sleep ${sleep_min} Connect To Database Using Custom Params pymysql ${mysqlHost} ${text1} query SELECT login_addr_whitelist FROM login_restrictions_config ${text1} Set Variable ${text1[0][0]} Disconnect From Database log ${text1} [Return] ${text1} UpdataLoginRestrictionsSQLIP [Arguments] ${Whitelist} [Documentation] 恢复白名单数据库 sleep ${sleep_min} Connect To Database Using Custom Params pymysql ${mysqlHost} ${return} Execute Sql String UPDATE login_restrictions_config SET login_addr_whitelist='${Whitelist}' WHERE id=1 Disconnect From Database EditMailServer [Arguments] ${server} ${port} ${NeedAuthentication} ${name} ${e-mail} ${password} ${SSL} [Documentation] ... AdminOpenPages sidebarsystem_MailServer sidebarsystem_MailServer sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[1]/div/div/input ${server} sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[2]/div/div/input ${port} sleep ${sleep_min} ${status} Get Element Attribute xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[3]/div/div class run keyword if "${NeedAuthentication}" == "close" and "${status}" == "el-switch is-checked" run keywords sleep ${sleep_min} ... AND click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[3]/div/div/span run keyword if "${NeedAuthentication}" == "open" and "${status}" == "el-switch" run keywords sleep ${sleep_min} ... AND click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[3]/div/div/span sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[4]/div/div/div[1]/input ${name} sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[5]/div/div/input ${e-mail} sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[6]/div/div/input ${password} sleep ${sleep_min} ${SSLstatus} Get Element Attribute xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[7]/div/div class run keyword if "${SSL}" == "close" and "${SSLstatus}" == "el-switch is-checked" run keywords sleep ${sleep_min} ... AND click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[7]/div/div/span run keyword if "${SSL}" == "open" and "${SSLstatus}" == "el-switch" run keywords sleep ${sleep_min} ... AND click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[2]/form/div[7]/div/div/span sleep ${sleep_min} click element id=mailServerOk sleep ${sleep_min} Login [Arguments] ${UserName} ${Password} Mouse Hover xpath=//*[@id="app"]/div/div[1]/div[2]/div/span/div/span sleep ${sleep_min} click element xpath=//div[@class='SignOut'] sleep ${sleep} input text xpath=//*[@id="app"]/div/div[2]/div/div[2]/div/input ${UserName} sleep ${sleep_min} input text xpath=//*[@id="app"]/div/div[2]/div/div[3]/div/input ${Password} sleep ${sleep_min} click element xpath=/html/body/div/div/div[2]/div/div[4]/button sleep ${sleep} AdminTurnPage [Arguments] ${NextPage} ${PreviousPage} ${JumpInput} ${pages} ${AssertXpath} ${last}=null ${lastxpath}=null [Documentation] ... ${NextPage} 下一页按钮定位 ... ${PreviousPage} 上一页按钮定位 ... ${JumpInput} 跳转页面输入框 ... ${pages} 跳转得页码 ... ${last} 次关键字 当最后一页定位和其他页面不同时,传入非null的值 ... ${lastxpath} 当最后一页定位和其他页面不同时,传入最后一页的xpath 定位 ${text1} get text xpath=${AssertXpath} Click element xpath=${NextPage} sleep ${sleep} ${text2} get text xpath=${AssertXpath} Click element xpath=${PreviousPage} sleep ${sleep} ${text3} get text xpath=${AssertXpath} Clear Element Text xpath=${JumpInput} sleep ${sleep} input text xpath=${JumpInput} ${pages} sleep ${sleep} press keys xpath=${JumpInput} ENTER sleep ${sleep} ${text4} get text xpath=${AssertXpath} run keyword if "${last}"=="null" run keywords sleep ${sleep_min} ... AND Click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[last()]/div/ul/li[last()] ... ELSE Click element xpath=${lastxpath} sleep ${sleep} ${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} AdministrationPagingDisplay [Arguments] ${Number} [Documentation] ... ${Number}: 设置页面显示数据条数 (20、5、30、50、100) ... ${last} 次关键字 当最后一页定位和其他页面不同时,传入非null的值 ... ${lastxpath} 当最后一页定位和其他页面不同时,传入最后一页的xpath 定位 Mouse Over xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div/span/span/div/i sleep ${sleep_min} run keyword if "${Number}"=="30" run keywords sleep ${sleep_min} ... AND Click element xpath=//*[@id="page-size"]/div/label[2] ... ELSE IF "${Number}"=="50" run keywords sleep ${sleep_min} ... AND Click element xpath=//*[@id="page-size"]/div/label[3] ... ELSE IF "${Number}"=="100" run keywords sleep ${sleep_min} ... 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 ${sleep_min} Click element xpath=/html/body/div[last()]/div[1]/div[2]/button sleep ${sleep} ${text} Get text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[4]/div/span[1] sleep ${sleep_min} ${Quantity} StringSegmentation ${text} sleep ${sleep_min} ${quyu} Evaluate ${Quantity}%${Number} ${qumo} Evaluate ${Quantity}/${Number} ${quzheng} Evaluate int(${qumo}) ${b} Set Variable ${1} ${Page1} Evaluate ${quzheng}+${b} ${Page} Set Variable if "${quyu}" != "0" ${Page1} ${quzheng} sleep ${sleep_min} ${text} Get text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div/div/ul/li[last()] Should Be Equal As Strings ${text} ${Page} AuditLogs-PagingDisplay [Arguments] ${Number} [Documentation] ... ${Number}: 设置页面显示数据条数 (20、5、30、50、100) Mouse Over xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div/span/span/div/i sleep ${sleep_min} run keyword if "${Number}"=="30" run keywords sleep ${sleep_min} ... AND Click element xpath=//*[@id="page-size"]/div/label[2] ... ELSE IF "${Number}"=="50" run keywords sleep ${sleep_min} ... AND Click element xpath=//*[@id="page-size"]/div/label[3] ... ELSE IF "${Number}"=="100" run keywords sleep ${sleep_min} ... 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 ${sleep_min} Click element xpath=/html/body/div[last()]/div[1]/div[2]/button sleep ${sleep} ${text} Get text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[4]/div/span[1] sleep ${sleep_min} ${Quantity} StringSegmentation ${text} sleep ${sleep_min} ${quyu} Evaluate ${Quantity}%${Number} ${qumo} Evaluate ${Quantity}/${Number} ${quzheng} Evaluate int(${qumo}) ${b} Set Variable ${1} ${Page1} Evaluate ${quzheng}+${b} ${Page} Set Variable if "${quyu}" != "0" ${Page1} ${quzheng} sleep ${sleep_min} ${text} Get text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[4]/div/ul/li[last()] Should Be Equal As Strings ${text} ${Page} Assertion [Arguments] ${assertxpath} ${asserttext} ${text} Get text xpath=${assertxpath} Should Be Equal As Strings ${text} ${asserttext} Assertion-ElementAttributes [Arguments] ${assertxpath} ${asserttext} ${Element} ${text} Get Element Attribute xpath=${assertxpath} ${Element} Should Be Equal As Strings ${text} ${asserttext}