Commit 92251f55 by 贾伟

首次提交

parent b7be1248
# Default ignored files
/shelf/
/workspace.xml
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="PyUnresolvedReferencesInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredIdentifiers">
<list>
<option value="requests" />
</list>
</option>
</inspection_tool>
</profile>
</component>
\ No newline at end of file
<component name="InspectionProjectProfileManager">
<settings>
<option name="PROJECT_PROFILE" value="Default" />
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9" project-jdk-type="Python SDK" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/script_template.iml" filepath="$PROJECT_DIR$/.idea/script_template.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
*** Settings ***
#用来填写备注说明
Documentation callcenter_Relaynumber_V6_full1.robot
... author: jiawei
#引用 ${EXECDIR}=执行
Resource ${EXECDIR}/keyword/common_keywords_set.robot
#Resource ${EXECDIR}/keyword/call_center_keyword.robot
Resource ${EXECDIR}/callcenter_Skillsgroup_V6_setup_teardown.robot
Suite Setup Run Keywords My Suite Setup
Test Setup Run Keywords My Test Setup
#*********************************************************************
*** Variables ***
${sleep_3} 3
${sleep_2} 2
${sleep_6} 6
${sleep_60} 60
#*********************************************************************
*** Test Cases ***
#用例名字=new tast case
##进入技能组搜索
#Tc0 Skill group search case
##说明
# [Documentation]
# ... - 进入呼叫中心
# ... - 进入呼叫中心
# ... - 进入技能组搜索
# [Tags] Sanity 0 呼叫中心
#
# Log ---------- Tc0 step 1: 进入V6呼叫中心erererrer ------------ console=True
# Click Element ${locator_vars}[V6-新呼叫中心]
#
# Log ---------- Tc0 step 2: 进入呼叫中心 > 技能组 ------------ console=True
# Wait Until Page Contains 技能组 ${sleep_60}
# Click Element ${locator_vars}[V6-呼叫技能组]
# Sleep ${sleep_3}
# Log ---------- Tc0 step 3: 搜索存在数据 ------------------------------- console=True
# #声明关键字
# ${searchlist} Set Variable 测试
# Input Text ${locator_vars}[V6-技能组-名/组号搜索框] ${searchlist}
# Sleep ${sleep_3}
# #获取搜索结果数据 组名称 组号
# ${listDataName} Get Table Data For Column tbody_locator=${locator_vars}[V6-技能组tbody] column=1 right_arrow_locator=${locator_vars}[V6-技能组-下一页]
## Reload Page 刷新界面
## Sleep ${sleep_3}
## Input Text ${locator_vars}[V6-技能组-名/组号搜索框] ${searchlist}
# ${listDataNumber} Get Table Data For Column
# ... tbody_locator=${locator_vars}[V6-技能组tbody]
# ... column=2
# ... right_arrow_locator=${locator_vars}[V6-技能组-下一页]
# ... the_first_page_locator=${locator_vars}[V6-技能组-第一页切换]
# Log ------比对结果--------
# Check Whether Search Getting Table Data Match Column Value column1_list=${listDataName} column2_list=${listDataNumber} search_item=${searchlist}
# Log ---------- Tc0 step 4: 搜索不存在数据 ------------------------------- console=True
# Click Element ${locator_vars}[V6-技能组-搜索框-删除]
# Sleep ${sleep_3}
# ${searchlist} Set Variable 40测试
# Input Text ${locator_vars}[V6-技能组-名/组号搜索框] ${searchlist}
# Check Table Data For Null tbody_locator=${locator_vars}[V6-技能组tbody]
# Log ---------- Tc0 step 5: 搜索不存在数据(特殊符号) ------------------------------- console=True
# Click Element ${locator_vars}[V6-技能组-搜索框-删除]
# Sleep ${sleep_3}
# ${searchlist} Set Variable %#!*
# Input Text ${locator_vars}[V6-技能组-名/组号搜索框] ${searchlist}
# Check Table Data For Null tbody_locator=${locator_vars}[V6-技能组tbody]
# Log ---------- Tc0 step 6: 搜索不存在数据(空格) ------------------------------- console=True
# Click Element ${locator_vars}[V6-技能组-搜索框-删除]
# Sleep ${sleep_3}
# ${searchlist} Set Variable ${SPACE}
# Input Text ${locator_vars}[V6-技能组-名/组号搜索框] ${searchlist}
# Check Table Data For Null tbody_locator=${locator_vars}[V6-技能组tbody]
#断点
#Write Url And Session Into File
#Tc1 Skill group add case
#
# [Documentation]
# ... - 进入呼叫中心
# ... - 进入呼叫中心
# [Tags] Sanity 1 呼叫中心
#
# Log ---------- Tc1 step 0: 进入V6呼叫中心erererrer ------------ console=True
# Click Element ${locator_vars}[V6-新呼叫中心]
#
# Log ---------- Tc1 step 2: 进入呼叫中心 > 技能组 ------------ console=True
# Wait Until Page Contains 技能组 ${sleep_60}
# Click Element ${locator_vars}[V6-呼叫技能组]
# Sleep ${sleep_3}
##添加
# Log --------------- Tc1 step 0: 新增技能组(重复组号/重复名字) ------------------------------- console=True
# ${groupName} Set Variable 自动化测试2121
# ${groupNumber} Set Variable 2121
# Log 新增
# Click Element ${locator_vars}[V6-技能组-新增]
# Input Text ${locator_vars}[V6-技能组-名称文本] ${groupName}
# Input Text ${locator_vars}[V6-技能组-组号] ${groupNumber}
# Click Element ${locator_vars}[V6-技能组-弹板-新建]
# #查看是否有错误弹板
# Check Flash Prompt Message flash_prompt_locator=${locator_vars}[组成员-添加-错误提示弹板] excepted_message=队列号已存在
# Log --------------- Tc1 step 3: 新增技能组(非组号重复名字) ------------------------------- console=True
# Clear Text Information ${locator_vars}[V6-技能组-名称文本]
# Clear Text Information ${locator_vars}[V6-技能组-组号]
# Sleep ${sleep_3}
#
# ${groupNumber} Set Variable 2121
# Log 新增
# Input Text ${locator_vars}[V6-技能组-名称文本] ${groupName}
# Input Text ${locator_vars}[V6-技能组-组号] ${groupNumber}
# Click Element ${locator_vars}[V6-技能组-弹板-新建]
# Sleep ${sleep_3}
# Click Element ${locator_vars}[组成员-添加]
# Log --------校验是否添加成功---------
# Click Element ${locator_vars}[V6-技能组-创建返回列表]
# ${listDataNumber} Get Table Data For Column
# ... tbody_locator=${locator_vars}[V6-技能组tbody]
# ... column=2
# ... right_arrow_locator=${locator_vars}[V6-列表-下一页]
# ... the_first_page_locator=${locator_vars}[V6-列表-第一页切换]
# Check Items Match Or Not In List all_data=${listDataNumber} check_items=${groupNumber}
# Tc2 Skill group upadate case
# [Documentation]
# ... - 进入技能组编辑技能组
# [Tags] Sanity 2 呼叫中心
# Log ---------- Tc2 step 0: 进入V6呼叫中心erererrer ------------ console=True
# Click Element ${locator_vars}[V6-新呼叫中心]
# Log ---------- Tc2 step 1: 进入呼叫中心 > 技能组 ------------ console=True
# Wait Until Page Contains 技能组 ${sleep_60}
# Click Element ${locator_vars}[V6-呼叫技能组]
# Sleep ${sleep_3}
# ${groupNumber} Set Variable 6644
# Input Text ${locator_vars}[V6-技能组-名/组号搜索框] ${groupNumber}
# Press Keys ${locator_vars}[V6-技能组-名/组号搜索框] \ue007
# Sleep ${sleep_3}
# Click Element ${locator_vars}[v6-技能组-编辑-1行]
# Log ---------- Tc2 step 2: 进入呼叫中心 > 技能组 》添加组成员------------ console=True
# Sleep ${sleep_3}
# Click Element ${locator_vars}[组成员-添加]
# Sleep ${sleep_3}
# ${checkMembers} Create Dictionary
# #创建字典
# Set To Dictionary ${checkMembers}
# ... ${locator_vars}[V6-技能组-组成员-添加勾选-1行]=ant-checkbox-wrapper ant-checkbox-wrapper-checked
# ... ${locator_vars}[V6-技能组-组成员-添加勾选-2行]=ant-checkbox-wrapper ant-checkbox-wrapper-checked
# Log ${checkMembers}
# #搜索组成员-------------------------------------------------------------?
# #勾选组成员随便勾选
# Select Checkbox Items By Element Attribute items_dict=${checkMembers} attribute_name=class
# Log 添加
# Click Element ${locator_vars}[V6-技能组-组成员-弹板-添加]
#
# Check Flash Prompt Message flash_prompt_locator=${locator_vars}[V6-技能组-组成员-添加-添加成功] excepted_message=保存成功
# Sleep ${sleep_3}
# Log ------ --------- Tc2 step 3: 进入呼叫中心 > 技能组 》移除成员 ------------ console=True
# #勾选全部移除
# Sleep ${sleep_2}
# Click Element ${locator_vars}[组成员-列表-全选-当页]
# Click Element ${locator_vars}[V6-技能组-组成员-全部移除]
# Sleep ${sleep_2}
# Click Element ${locator_vars}[V6-技能组-组成员-全部移除-确定]
# Check Flash Prompt Message locator=${locator_vars}[V6-技能组-组成员-添加-删除成功] excepted_message=删除成功
# Check Table Data For Null tbody_locator=${locator_vars}[V6-列表-下一页]
#
# Log ------------------------------- Tc2 step 4: 进入呼叫中心 > 技能组 》技能组排队设置 ------------ console=True
# Wait Until Page Contains 技能组排队 ${sleep_60}
# Click Element ${locator_vars}[V6-技能组-技能组排队-Tab]
# Sleep ${sleep_3}
# #开启排队
# Execute Action By Element Attribute
# ... locator=${locator_vars}[V6-技能组-技能组排队-VIP客户]
# ... attribute_name=aria-checked
# ... attribute_value=true
# Execute Action By Element Attribute
# ... locator=${locator_vars}[V6-技能组-技能组排队-VIP客户]
# ... attribute_name=class
# ... attribute_value=ant-switch sui-switch ant-switch-checked
# #输入最大排队人数正向
# ${max} Create List 9999 12 3
# FOR ${number} IN @{max}
# Log ${number}
# FOR ${i} IN RANGE 10
# Press Key ${locator_vars}[V6-技能组-技能组排队-最大排队人数] \\8
# END
# Input text ${locator_vars}[V6-技能组-技能组排队-最大排队人数] ${number}
# Run keyword If 1>=${number}>99 Wait Until Page Contains ${locator_vars}[V6-技能组-技能组排队人数-错误提示] ${sleep_6}
# Log ${number}
# END
# #选择等待提示音
# ${check_item} Set Variable 测试2
# Select Single Item From Dropdown Random List dl_locator=${locator_vars}[V6-技能组-技能组排队-排队等待背景音]
# ... dl_content_locator=${locator_vars}[V6-技能组-技能组排队-排队等待背景音-下拉列表]
# ... single_item=${check_item}
# ... append_locator=${locator_vars}[V6-技能组-技能组排队-排队等待背景音-选中位置]
# #等待间隔提示音打开
# Execute Action By Element Attribute
# ... locator=${locator_vars}[V6-技能组-技能组排队-等待间隔提示音-开关]
# ... attribute_name=class
# ... attribute_value=ant-switch sui-switch ant-switch-checked
# Execute Action By Element Attribute
# ... locator=${locator_vars}[V6-技能组-技能组排队-等待间隔提示音-开关]
# ... attribute_name=aria-checked
# ... attribute_value=true
## #等待间隔提示音关闭
## Execute Action By Element Attribute
## ... locator=${locator_vars}[V6-技能组-技能组排队-等待间隔提示音-开关]
## ... attribute_name=class
## ... attribute_value=ant-switch sui-switch
## Execute Action By Element Attribute
## ... locator=${locator_vars}[V6-技能组-技能组排队-等待间隔提示音-开关]
## ... attribute_name=aria-checked
## ... attribute_value=false
# Sleep ${sleep_2}
# #播放间隔
# ${mine} Set Variable 40
# FOR ${i} IN RANGE 10
# Press Key ${locator_vars}[V6-技能组-技能组排队-等待间隔提示音-播放间隔] \\8
# END
# Input text ${locator_vars}[V6-技能组-技能组排队-等待间隔提示音-播放间隔] ${mine}
# #播放语音
# ${check_item} Set Variable 音频
# Select Single Item From Dropdown Random List dl_locator=${locator_vars}[V6-技能组-技能组排队-等待间隔提示音-播放语音-类型]
# ... dl_content_locator=${locator_vars}[V6-技能组-技能组排队-等待间隔提示音-播放语音-类型-下拉列表]
# ... single_item=${check_item}
# ... append_locator=${locator_vars}[V6-技能组-技能组排队-等待间隔提示音-播放语音-类型-选中位置-音频]
# ${check_item} Set Variable 测试2
# Select Single Item From Dropdown Random List dl_locator=${locator_vars}[V6-技能组-技能组排队-等待间隔提示音-播放语音-音频]
# ... dl_content_locator=${locator_vars}[V6-技能组-技能组排队-等待间隔提示音-播放语音-音频-下拉列表]
# ... single_item=${check_item}
# ... append_locator=${locator_vars}[V6-技能组-技能组排队-等待间隔提示音-播放语音-音频-选中位置]
# Click Element ${locator_vars}[V6-技能组-保存]
# Check Flash Prompt Message flash_prompt_locator=${locator_vars}[V6-技能组-组成员-添加-添加成功] excepted_message=保存成功
# Log ------------------------------- Tc2 step 4: 进入呼叫中心 > 技能组 》组内座席分配 ------------ console=True
# Click Element ${locator_vars}[V6-技能组-组内座席分配]
# #打开组内分配
# Execute Action By Element Attribute
# ... locator=${locator_vars}[V6-技能组-座席分配-优先分配上次接待座席]
# ... attribute_name=class
# ... attribute_value=ant-switch sui-switch ant-switch-checked
# Execute Action By Element Attribute
# ... locator=${locator_vars}[V6-技能组-座席分配-优先分配上次接待座席]
# ... attribute_name=aria-checked
# ... attribute_value=true
# #组内分配关闭
# Execute Action By Element Attribute
# ... locator=${locator_vars}[V6-技能组-座席分配-优先分配上次接待座席]
# ... attribute_name=class
# ... attribute_value=ant-switch sui-switch
# Execute Action By Element Attribute
# ... locator=${locator_vars}[V6-技能组-座席分配-优先分配上次接待座席]
# ... attribute_name=aria-checked
# ... attribute_value=false
# Click Element ${locator_vars}[V6-技能组-座席分配-座席分配策略-空闲时长最长座席]
# ${duration} Set Variable 35
# FOR ${i} IN RANGE 10
# Press Key ${locator_vars}[V6-技能组-座席分配-座席分配策略-座席最长振铃时间] \\8
# END
# Input text ${locator_vars}[V6-技能组-座席分配-座席分配策略-座席最长振铃时间] ${duration}
# #打开客户侧提示音
# Execute Action By Element Attribute
# ... locator=${locator_vars}[V6-技能组-座席分配-座席分配策略-客户侧提示音]
# ... attribute_name=class
# ... attribute_value=ant-switch sui-switch ant-switch-checked
# Execute Action By Element Attribute
# ... locator=${locator_vars}[V6-技能组-座席分配-座席分配策略-客户侧提示音]
# ... attribute_name=aria-checked
# ... attribute_value=true
# #关闭客户侧提示音
# # Execute Action By Element Attribute
# # ... locator=${locator_vars}[V6-技能组-座席分配-座席分配策略-客户侧提示音]
# # ... attribute_name=class
# # ... attribute_value=ant-switch sui-switch
# # Execute Action By Element Attribute
# # ... locator=${locator_vars}[V6-技能组-座席分配-座席分配策略-客户侧提示音]
# # ... attribute_name=aria-checked
# # ... attribute_value=false
# #添加提示音
# Click Element ${locator_vars}[V6-技能组-座席分配-座席分配策略-客户侧提示音-添加]
# Click Element ${locator_vars}[V6-技能组-保存]
# Check Flash Prompt Message flash_prompt_locator=${locator_vars}[V6-技能组-组成员-添加-添加成功] excepted_message=保存成功
Tc3 Skill group upadate case
[Documentation]
... - 进入技能组编辑技能组
[Tags] Sanity 3 呼叫中心
Log ---------- Tc3 step 0: 进入V6呼叫中心erererrer ------------ console=True
Click Element ${locator_vars}[V6-新呼叫中心]
Log ---------- Tc3 step 1: 进入呼叫中心 > 技能组 ------------ console=True
Wait Until Page Contains 技能组 ${sleep_60}
Click Element ${locator_vars}[V6-呼叫技能组]
Sleep ${sleep_3}
${groupNumber} Set Variable 6644
Input Text ${locator_vars}[V6-技能组-名/组号搜索框] ${groupNumber}
Press Keys ${locator_vars}[V6-技能组-名/组号搜索框] \ue007
Click Element ${locator_vars}[V6-呼入路由]
${callinName} Set Variable 自动化引用技能组
Log ----------- 新建 --------------------------------
Sleep ${sleep_3}
Click Element ${locator_vars}[V6-呼入路由-新建]
Input Text ${locator_vars}[V6-呼入路由-编辑-路由名称] ${callinName}
Click Element ${locator_vars}[V6-呼入路由-编辑-呼入中继号码]
Sleep ${sleep_2}
Execute Action By Element Attribute
... locator=${locator_vars}[V6-呼入路由-编辑-呼入中继号码-选择号码-全选-lable]
... attribute_name=class
... attribute_value=ant-checkbox-wrapper ant-checkbox-wrapper-checked
Execute Action By Element Attribute
... locator=${locator_vars}[V6-呼入路由-编辑-呼入中继号码-选择号码-全选-span]
... attribute_name=class
... attribute_value=ant-checkbox ant-checkbox-checked
Click Element ${locator_vars}[V6-呼入路由-编辑-呼入中继号码-选择号码-确定]
#分配规则选择
Select Single Item From Dropdown Random List dl_locator=${locator_vars}[V6-呼入路由-编辑-呼入中继号码-分配规则-选技能组]
... dl_content_locator=${locator_vars}[V6-呼入路由-编辑-呼入中继号码-分配规则-选技能组-下拉列表]
... single_item=${check_item}
... append_locator=${locator_vars}[V6-技能组-技能组排队-等待间隔提示音-播放语音-类型-选中位置-音频]
*** Settings ***
Documentation
... Keyword List:
... My Suite Setup
... My Test Setup
... My Test Teardown
... My Suite Teardown
*** Keywords ***
My Suite Setup
[Documentation]
Log ========================== My Suite Setup Start ========================== console=True
&{gbl_vars}= Fetch Json Vars file=D:\\word\\自动化\\script_template\\json_file\\call_center_vars.json
Set Global Variable ${gbl_vars}
#Log ${gbl_vars}[url] #推荐这种写法
#Log ${gbl_vars}[customer_email]
#Log ${gbl_vars}[customer_email][2]
#Log ${gbl_vars}[time]
#Log ${gbl_vars}[time][minute]
&{locator_vars}= Fetch Json Vars file=D:\\word\\自动化\\script_template\\json_file\\call_center_locator_vars.json
Set Global Variable ${locator_vars}
Set Log Level ${gbl_vars}[log_level]
#Debug Mode
Close All Browsers
Open Browser And Set Size url=${gbl_vars}[url] set_window_size=${True} set_max_browser_window=${True}
Logon Soboten logon_type=0 email=${gbl_vars}[email] password=${gbl_vars}[password]
Sleep 7
Wait Until Element Is Enabled ${locator_vars}[我知道了] 60s
Click Button ${locator_vars}[我知道了]
Click Element ${locator_vars}[智客]
switch window NEW
Wait Until Page Contains 已有企业微信 60s
My Test Setup
Click Link ${locator_vars}[首页]
Wait Until Page Contains 首页 60s
Sleep 2
#My Test Teardown
# Sleep 1
#
#My Suite Teardown
# Close All Browsers
*** Settings ***
Documentation callcenter_callreports_v1_fun1.robot
... case link: xxxxxx
... use command: robot -d xxx -T callcenter_callreports_v1_fun1.robot
... description: funcation description info
... author: xxxxxx
... min support version: xxxxxx
... technology area: 智客
... sub-area: 呼叫中心
... Case List :
... Tc1: case1 info detail description
... Tc2: case2 info detail description
... Tc3: case3 info detail description
Resource ${EXECDIR}/keyword/common_keywords_set.robot
#Resource ${EXECDIR}/keyword/call_center_keyword.robot
Resource ${EXECDIR}/callcenter_callreports_v1_setup_teardown.robot
Suite Setup Run Keywords My Suite Setup
Test Setup Run Keywords My Test Setup
#Test Teardown Run Keywords My Test Teardown
#Suite Teardown Run Keywords My Suite Teardown
#*********************************************************************
*** Variables ***
#*********************************************************************
*** Test Cases ***
Tc0 debug case
[Documentation]
... - xxxxxx
... - xxxxxx
... - xxxxxx
[Tags] Sanity 0 1
Log ---------- Tc1 step: ok ok ok ------------ console=True
Tc1 Test basic function under call reports of call center
[Documentation]
... - 进入呼叫中心
... - 进入呼叫中心 > 通话记录
... - 手工输入起始和结束日期和时间
... - 下拉菜单单选
... - 下拉菜单多选
[Tags] Sanity 1 呼叫中心
Log ---------- Tc1 step 1: 进入呼叫中心 ------------ console=True
Click Link ${locator_vars}[呼叫中心]
Log ---------- Tc1 step 2: 进入呼叫中心 > 通话记录 ------------ console=True
Wait Until Page Contains 记录 60s
Click Element ${locator_vars}[呼叫中心_通话记录]
Wait Until Page Contains 通话记录 60s
#Write Url And Session Into File
Log ---------- Tc1 step 3: 手工输入起始和结束日期和时间 ------------ console=True
Set Calendar From Start To End By Input Date And Time
... clear_locator=${locator_vars}[通话记录_日期控件_时间清除]
... calendar_locator=${locator_vars}[通话记录_日期控件_选中]
... start_locator=${locator_vars}[通话记录_日期控件_开始日期位置]
... end_locator=${locator_vars}[通话记录_日期控件_结束日期位置]
... input_start_date_and_time=2011-01-01 00:00
... input_end_date_and_time=2018-01-01 00:00
... commit_locator=${locator_vars}[通话记录_日期控件_确定]
Log ---------- Tc1 step 4: 下拉菜单单选 ------------ console=True
Select Single Item From Dropdown List dl_locator=${locator_vars}[呼叫方向_下拉框选中] item_locator=${locator_vars}[呼叫方向_呼出]
Select Single Item From Dropdown List dl_locator=${locator_vars}[呼叫方向_下拉框选中] item_locator=${locator_vars}[呼叫方向_呼入]
Select Single Item From Dropdown List dl_locator=${locator_vars}[呼叫方向_下拉框选中] item_locator=${locator_vars}[呼叫方向_全部方向]
Select Single Item From Dropdown List dl_locator=${locator_vars}[接听状态_下拉框选中] item_locator=${locator_vars}[接听状态_未接听]
Select Single Item From Dropdown List dl_locator=${locator_vars}[接听状态_下拉框选中] item_locator=${locator_vars}[接听状态_已接听]
Select Single Item From Dropdown List dl_locator=${locator_vars}[接听状态_下拉框选中] item_locator=${locator_vars}[接听状态_全部接听状态]
Select Single Item From Dropdown List dl_locator=${locator_vars}[是否填写总结_下拉框选中] item_locator=${locator_vars}[是否填写总结_已总结]
Select Single Item From Dropdown List dl_locator=${locator_vars}[是否填写总结_下拉框选中] item_locator=${locator_vars}[是否填写总结_未总结]
Select Single Item From Dropdown List dl_locator=${locator_vars}[是否填写总结_下拉框选中] item_locator=${locator_vars}[是否填写总结_全部总结填写情况]
Select Single Item From Dropdown List dl_locator=${locator_vars}[处理状态_下拉框选中] item_locator=${locator_vars}[处理状态_未处理]
Select Single Item From Dropdown List dl_locator=${locator_vars}[处理状态_下拉框选中] item_locator=${locator_vars}[处理状态_未解决]
Select Single Item From Dropdown List dl_locator=${locator_vars}[处理状态_下拉框选中] item_locator=${locator_vars}[处理状态_全部处理状态]
Select Single Item From Dropdown List dl_locator=${locator_vars}[处理状态_下拉框选中] item_locator=${locator_vars}[处理状态_已解决]
Log ---------- Tc1 step 5: 下拉菜单多选 ------------ console=True
Select Mutiple Items From Dropdown List
... dl_locator=${locator_vars}[最后接待技能组_下拉框选中]
... input_locator=${locator_vars}[最后接待技能组_请输入搜索内容]
... input_content=无技能组
... items_locator=${locator_vars}[最后接待技能组_选项_无技能组]
... commit_locator=${locator_vars}[最后接待技能组_确定]
Select Mutiple Items From Dropdown List
... dl_locator=${locator_vars}[转接/三方现场_下拉框选中]
... items_locator=${locator_vars}[转接/三方现场_选项_列表]
... commit_locator=${locator_vars}[转接/三方现场_确定]
Tc2 go into ZhiKe - 智客SCRM
[Documentation]
... - xxxxxx
... - xxxxxx
... - xxxxxx
[Tags] Sanity 2
Log ---------- Tc2 step 0: 进入智客SCRM > 通话记录 ------------
Click Link ${locator_vars}[智客SCRM]
Wait Until Page Contains 客户中心 60s
Click Element xpath=//a[text()="待分配客户"]
Wait Until Page Contains 待分配客户 60s
Log ---------- Tc2 step 1: 齿轮下拉列表 ------------
Click Element xpath=//*[@id="root"]/div/div[3]/div[2]/div/div/div[2]/div/div/div/div[2]/div/div/div[4] #点击齿轮
Sleep 0.5
Click Element xpath=//*[@id="root"]/div/div[3]/div[2]/div/div/div[2]/div/div/div/div[2]/div/div/div[4]/div/div/div/div/div[2]/div[1]/div/label/span[2] #选中列展示
Sleep 0.5
Click Element xpath=//*[@id="root"]/div/div[3]/div[2]/div/div/div[2]/div/div/div/div[2]/div/div/div[4]/div/div/div/div/div[2]/div[1]/div/span #点击重置
Sleep 0.5
Click Element xpath=//*[@id="root"]/div/div[3]/div[2]/div/div/div[2]/div/div/div/div[2]/div/div/div[4]/div/div/div/div/div[2]/div[2]/div/div[7]/label/span[2] #点击QQ
Sleep 0.5
Click Element xpath=//*[@id="root"]/div/div[3]/div[2]/div/div/div[2]/div/div/div/div[2]/div/div/div[4]/div/div/div/div/div[2]/div[2]/div/div[10]/label/span[2] #点击界面看不到的元素
Log ---------- Tc2 step 2: 上传文件 ------------
Upload Local File
... batch_import_button_locator=${locator_vars}[上传文件_批量导入]
... upload_button_locator=${locator_vars}[上传文件_上传文件]
... file=${locator_vars}[上传文件_文件]
... import_button_locator=${locator_vars}[上传文件_导入]
... confirm_button_locator=${locator_vars}[上传文件_确认]
... sleep_time=2
*** Settings ***
Documentation
... Keyword List:
... My Suite Setup
... My Test Setup
... My Test Teardown
... My Suite Teardown
*** Keywords ***
My Suite Setup
[Documentation]
Log ========================== My Suite Setup Start ========================== console=True
&{gbl_vars}= Fetch Json Vars file=D:\\word\\自动化\\script_template\\json_file\\call_center_vars.json
Set Global Variable ${gbl_vars}
#Log ${gbl_vars}[url] #推荐这种写法
#Log ${gbl_vars}[customer_email]
#Log ${gbl_vars}[customer_email][2]
#Log ${gbl_vars}[time]
#Log ${gbl_vars}[time][minute]
&{locator_vars}= Fetch Json Vars file=D:\\word\\自动化\\script_template\\json_file\\call_center_locator_vars.json
Set Global Variable ${locator_vars}
Set Log Level ${gbl_vars}[log_level]
Close All Browsers
Open Browser And Set Size url=${gbl_vars}[url] set_window_size=${True} set_max_browser_window=${True}
Logon Soboten logon_type=0 email=${gbl_vars}[email] password=${gbl_vars}[password]
Wait Until Element Is Enabled ${locator_vars}[我知道了] 60s
Click Button ${locator_vars}[我知道了]
Click Element ${locator_vars}[智客]
switch window NEW
Wait Until Page Contains 已有企业微信 60s
My Test Setup
Click Element ${locator_vars}[首页]
Wait Until Page Contains 首页 60s
Sleep 2
#My Test Teardown
# Sleep 1
#
#My Suite Teardown
# Close All Browsers
http://127.0.0.1:52990,d05b65ce2dc61b507d1dbac3824f4d58
\ No newline at end of file
{
"我知道了" : "xpath=//button[text()=\"我知道了\"]",
"智客" : "xpath=//div[@data-title=\"智客\"]",
"首页" : "xpath=//*[@id=\"root\"]/div/div[2]/ul/li[2]/a",
"呼叫中心" : "x、】path=//*[@id=\"root\"]/div/div[2]/ul/li[3]/a",
"企微智客" : "xpath=//*[@id=\"root\"]/div/div[2]/ul/li[4]/a",
"智客SCRM" : "xpath=//*[@id=\"root\"]/div/div[2]/ul/li[5]/a",
"在线客服机器人" : "xpath=//*[@id=\"root\"]/div/div[2]/ul/li[6]/a",
"套电机器人" : "xpath=//*[@id=\"root\"]/div/div[2]/ul/li[7]/a",
"客服管理" : "xpath=//*[@id=\"root\"]/div/div[2]/ul/li[8]/a",
"WIKI" : "xpath=//*[@id=\"root\"]/div/div[2]/ul/li[9]/a",
"V6新呼叫中心" : "xpath=//*[@id=\"root\"]/div/div[3]/div/div/div/div[2]/div/div[10]/a",
"在线客服" : "xpath=//*[@id=\"root\"]/div/div[2]/ul/li[11]/a",
"V6-呼叫技能组" : "xpath=//*[@id=\"0-0$Menu\"]/li[3]/a[text()=(\"呼叫技能组\")]",
"V6-新呼叫中心" : "xpath=//*[@id=\"root\"]/div/div[3]/div/div/div/div[2]/div/div[10]/a",
"V6-技能组-新建" : "xpath=//*[@id=\"searchRight\"]/button/span[text()=\"新建\"]",
"V6-技能组-名/组号搜索框" : "xpath=//*[@id=\"searchLeft\"]/span/input[contains(@placeholder,\"搜索技能组名称/组号\")]",
"V6-技能组-搜索框-删除": "xpath=//*[@id=\"searchLeft\"]/span/span",
"V6-技能组tbody":"xpath=//*[@id=\"ant-design-pro-table\"]//table/tbody",
"V6-列表-下一页":"xpath=//*[@id=\"ant-design-pro-table\"]//li[@title=\"下一页\"]/button[@class=\"ant-pagination-item-link\"]",
"V6-技能组-新增": "xpath=//*[@id=\"searchRight\"]/button/span[text()=\"新建\"]",
"V6-技能组-名称文本":"xpath=//*[@id=\"queueName\"]",
"V6-技能组-组号": "xpath=//*[@id=\"queueID\"]",
"V6-技能组-弹板-新建": "xpath=/html/body//button/span[text()=\"新 建\"]",
"V6-技能组-弹板-取消": "xpath=/html/body//button/span[text()=\"取 消\"]",
"V6-技能组-创建返回列表": "xpath=//*[@id=\"call-setting-root\"]/div/div[3]/div[2]/div/div/div[2]/div/div/div/div[1]/h2/a",
"V6-列表-第一页切换": "xpath=//*[@id=\"ant-design-pro-table\"]//a[text()=\"1\"]",
"组成员-列表tbody": "xpath=//*[@id=\"ant-design-pro-table\"]//div[@class=\"ant-table-body\"]/table/tbody",
"组织架构搜索": "xpath=//*[@id=\"rc-tabs-0-panel-1\"]//span[2][text()=\"组织架构\"]",
"组成员-搜索坐席": "xpath=//*[@id=\"rc-tabs-0-panel-1\"]//*[@placeholder='搜索座席姓名/工号/邮箱']",
"组成员-添加": "xpath=//*[@id=\"rc-tabs-0-panel-1\"]//button/span[text()=\"添加\"]",
"组成员-添加-错误提示弹板": "xpath=//html/body/div[3]/div",
"组成员-添加-重复组号提示": "xpath=//html/body//span[text()=\"队列号已存在\"]",
"组成员-添加-界面": "xpath=//html/body/div[6]/div/div[2]/div/div[2]",
"组成员-添加-界面-组织架构下拉": "xpath=//html/body//span[text()=\"组织架构\"]",
"组成员-添加-界面-角色下拉": "xpath=//html/body//span[text()=\"角色\"]",
"组成员-添加-界面-状态下拉": "",
"组成员-列表-移除": "xpath=//*[@id=\"ant-design-pro-table\"]//a[text()=\"移除\"]",
"组成员-移除-按钮": "xpath=//*[@id=\"rc-tabs-0-panel-1\"]//button/span[text()=\"添加\"]",
"组成员-列表-全选-当页": "xpath=//*[@id=\"ant-design-pro-table\"]//div[1]/table/thead/tr/th[1]/div/label",
"V6-技能组-组成员-添加勾选-1行": "xpath=//*[@id=\"ant-design-pro-table\"]/div/div/div[2]/div/div/div/div/div[2]/table/tbody/tr[2]/td[1]/label",
"V6-技能组-组成员-添加勾选-2行": "xpath=//*[@id=\"ant-design-pro-table\"]/div/div/div[2]/div/div/div/div/div[2]/table/tbody/tr[3]/td[1]/label",
"V6-技能组-组成员-弹板-添加": "xpath=//html/body/div[2]/div/div[2]/div/div[2]/div[3]/button[2]",
"V6-技能组-组成员-弹板-全部移除": "xpath=//div/i[text()=\"全部移除\"]",
"V6-技能组-组成员-全部移除": "xpath=//*[@id=\"rc-tabs-0-panel-1\"]/div/button/span[text()=\"移除\"]",
"V6-技能组-组成员-全部移除-确定": "xpath=//div/button/span[text()=\"确 定\"]",
"V6-技能组-组成员-添加-添加成功": "xpath=//span[text()=\"保存成功\"]",
"V6-技能组-组成员-添加-删除成功": "xpath=//span[text()=\"删除成功\"]",
"V6-技能组-技能组排队-Tab": "xpath=//*[@id=\"rc-tabs-0-tab-2\"]",
"V6-技能组-技能组排队-VIP客户": "xpath=//*[@id=\"vipPriority\"]",
"V6-技能组-技能组排队-最大排队人数": "xpath=//*[@id=\"maxMembers\"]",
"V6-技能组-技能组排队-客户最大排队时长": "xpath=//*[@id=\"maxWaitTime\"]",
"V6-技能组-技能组排队人数-错误提示": "xpath=//*[@id=\"rc-tabs-0-panel-2\"]//*[text()=\"排队人数范围为1-99\"]",
"V6-技能组-技能组排队-排队等待背景音": "xpath=//*[@id=\"rc-tabs-0-panel-2\"]//label[text()=\"排队等待背景音\"]/following::span[@class=\"ant-select-selection-item\"]",
"V6-技能组-技能组排队-排队等待背景音-下拉列表": "xpath=//*[@id=\"mohSoundId_list\"]/following-sibling::div[@class=\"rc-virtual-list\"]",
"V6-技能组-技能组排队-排队等待背景音-选中位置": "xpath=//*[@id=\"mohSoundId_list\"]/following-sibling::div[@class=\"rc-virtual-list\"]//div[@label=\"测试2\"]",
"V6-技能组-技能组排队-等待间隔提示音-开关": "xpath=//*[@id=\"tipSound\"]",
"V6-技能组-技能组排队-等待间隔提示音-播放间隔": "xpath=//*[@id=\"tipSoundTime\"]",
"V6-技能组-技能组排队-等待间隔提示音-播放语音-类型": "xpath=//*[@id=\"rc-tabs-0-panel-2\"]//label[text()=\"播放语音\"]/following::span[@class=\"ant-select-selection-item\"]",
"V6-技能组-技能组排队-等待间隔提示音-播放语音-类型-下拉列表": "xpath=//*[@id=\"yy_tipSoundType_list\"]/following-sibling::div[@class=\"rc-virtual-list\"]",
"V6-技能组-技能组排队-等待间隔提示音-播放语音-类型-选中位置-音频": "xpath=//*[@id=\"yy_tipSoundType_list\"]/following-sibling::div[@class=\"rc-virtual-list\"]//div[@title=\"音频\"]",
"V6-技能组-技能组排队-等待间隔提示音-播放语音-类型-选中位置-文本转语音": "xpath=//*[@id=\"yy_tipSoundType_list\"]/following-sibling::div[@class=\"rc-virtual-list\"]//div[@title=\"文本转语音\"]",
"V6-技能组-技能组排队-等待间隔提示音-播放语音-文字转语音-文本": "xpath=//*[@id=\"yy_tipSoundContent\"]",
"V6-技能组-技能组排队-等待间隔提示音-播放语音-音频": "xpath=//*[@id=\"yy_tipSoundId\"]/../parent::div[@class=\"ant-select-selector\"]",
"V6-技能组-技能组排队-等待间隔提示音-播放语音-音频-下拉列表":"xpath=//*[@id=\"yy_tipSoundId_list\"]/following-sibling::div[@class=\"rc-virtual-list\"]",
"V6-技能组-技能组排队-等待间隔提示音-播放语音-音频-选中位置": "xpath=//*[@id=\"yy_tipSoundId_list\"]/following-sibling::div[@class=\"rc-virtual-list\"]//div[@label=\"测试2\"]",
"V6-技能组-组内座席分配": "xpath=//*[@id=\"rc-tabs-0-tab-3\"]",
"V6-技能组-座席分配-优先分配上次接待座席": "xpath=//*[@id=\"lastTalkAgent\"]",
"V6-技能组-座席分配-座席分配策略-空闲时长最长座席": "xpath=//*[@id=\"strategy\"]//input[@value=\"1\"]",
"V6-技能组-座席分配-座席分配策略-电话数最少座席": "xpath=//*[@id=\"strategy\"]//input[@value=\"0\"]",
"V6-技能组-座席分配-座席分配策略-随机分配座席": "xpath=//*[@id=\"strategy\"]//input[@value=\"2\"]",
"V6-技能组-座席分配-座席分配策略-顺序轮流分配座席": "xpath=//*[@id=\"strategy\"]//input[@value=\"3\"]",
"V6-技能组-座席分配-座席分配策略-座席最长振铃时间": "xpath=//*[@id=\"agentOriginateTimeout\"]",
"V6-技能组-座席分配-座席分配策略-客户侧提示音": "xpath=//*[@id=\"announcedAgentId\"]",
"V6-技能组-座席分配-座席分配策略-客户侧提示音-添加":"xpath=//*[@id=\"rc-tabs-5-panel-3\"]//button/span[text()=\"添加\"]",
"V6-技能组-座席分配-技能组资料": "xpath=//*[@id=\"rc-tabs-0-tab-4\"]",
"V6-技能组-座席分配-技能组资料-名称": "xpath=//*[@id=\"queueName\"]",
"V6-技能组-未保存Tab-弹板-取消": "xpath=//div/button[@class=\"ant-btn\"]/span[text()=\"取 消\"]",
"V6-技能组-未保存Tab-弹板-确定": "xpath=//div/button[@class=\"ant-btn ant-btn-primary\"]/span[text()=\"确 定\"]",
"V6-技能组-保存": "xpath=//button[@type=\"submit\"]/span[text()=\"保存\"]",
"": "",
"": "",
"v6-技能组-编辑-1行": "xpath=//*[@id=\"ant-design-pro-table\"]//table/tbody//a[text()=\"编辑\"]",
"v6-技能组-删除-1行":"xpath=//*[@id=\"ant-design-pro-table\"]//table/tbody//a[text()=\"删除\"]",
"V6-呼入路由":"xpath=//*[@id=\"0-0$Men\"]/li/a[text()=\"呼入路由\"]",
"V6-呼入路由-新建":"xpath=//*[@id=\"rc-tabs-12-panel-1\"]//button/span[text()=\"新建路由\"]",
"V6-呼入路由-编辑-路由名称":"xpath=//*[@id=\"routeName\"]",
"V6-呼入路由-编辑-呼入中继号码":"xpath=//*[@id=\"numberRuleFields\"]",
"V6-呼入路由-编辑-呼入中继号码-选择号码-全选-lable":"xpath=//*[@id=\"ant-design-pro-table\"]//th[text()=\"外显号码\"]/preceding-sibling::th//label",
"V6-呼入路由-编辑-呼入中继号码-选择号码-全选-span":"xpath=//*[@id=\"ant-design-pro-table\"]//th[text()=\"外显号码\"]/preceding-sibling::th//span",
"V6-呼入路由-编辑-呼入中继号码-选择号码-确定":"xpath=//button/span[text()=\"确定\"]",
"V6-呼入路由-编辑-呼入中继号码-分配规则-选IVR":"xpath=//*[@id=\"ivrName\"]//parent::span",
"":"",
"":"",
"":""
}
\ No newline at end of file
{
"log_level" : "DEBUG",
"url" : "http://test.sobot.com/console/login",
"browser" :"gc",
"email" : "mjmj@zhichi.com",
"password" : "sobot1234",
"w_size_hor_pixels" : 1920,
"w_size_ver_pixels" : 1080,
"time" : {"hour" : 11, "minute" : "20", "second" : "55"},
"content" : ["abc", "QWE", "!@#", "中国人"],
"has_result" : true,
"comments" : null,
"customer_email" : ["123@test.com", "abc@test.cn", "ruby@sobot.net", "qwe@sobot.net"],
"prov_city_dist" : ["辽宁省", "沈阳市", "大东区"],
"上传文件_文件" : ["C:\\Users\\Administrator\\Desktop\\reports\\3_1.xlsx", "C:\\Users\\Administrator\\Desktop\\reports\\3_2.xlsx", "C:\\Users\\Administrator\\Desktop\\reports\\3_3.xlsx"]
}
\ No newline at end of file
*** Settings ***
Documentation This is call center V6 keyword
... author: Jiawei
...
*** Variables ***
*** Keywords ***
#Skill group queuing
# [Documentation] 技能组排队
# [Arguments] ${vip}=true #是否开启
# ${vip_locator} #开关位置
# ${queuing_people} #最大排队人数
# ${duration}
# ${music_text}
# ${music_locator}
Check text boundary
[Documentation] 校验文本边界
[Arguments] ${text_locator}
... ${min}=0
... ${max}=${None}
... ${number}
Log 填写内容为:${number}
Log 边界为最小:最大 ${min} : ${max}
Log ===============================================
Run keyword IF ${number}>=${min} and
# #!/usr/bin/env python3
# #-*- coding: UTF-8 -*-
#
# """
# Author: JW
# """
# import os
# import json
# #import requests
# from collections import Counter
#
# class public_python_keywords(object):
#
# def __init__(self):
# pass
# """
# 验证查询信息是否符合预期
# """
# @classmethod
# def qery_result_verification(self,data=None,query=""):
# if data is None:
# #再次之后所有内容不在执行
# raise Exception("------please provide raw data------")
# listinfo=[]
# for info in range(len(data)):
# if data[info] is query:
# listinfo.append(data[info])
# return listinfo
\ No newline at end of file
*** Settings ***
Documentation all keywords for zhike test automation
... this is collection of all product lines and public keyword
... author: wuwei
#智科测试自动化的所有关键词
#这是所有产品线和公共关键字的集合
#作者:武威
#Library self_library/globalvars.py
#Library self_library/debug.py
Library Collections
Library String
Library OperatingSystem
Library DateTime
Library re
Library SeleniumLibrary
Library ./public_python_keywords.py
Library ./callcenter_V6_python_keywords.py
Resource ./public_robot_keywords.robot
#!/usr/bin/env python3
#-*- coding: UTF-8 -*-
"""
Description: automation test common python keywords
Author: Wu Wei
"""
import os
import json
import requests
from robot.libraries.BuiltIn import BuiltIn
from collections import Counter
class public_python_keywords(object):
def __init__(self):
pass
@classmethod
def fetch_txt_vars(self,file="H:\\rfs_scripts\\vars.txt"):
vars = {}
f = open(file, "r")
line = f.readline().rstrip('\n')
while line:
if '|' in line:
line_list = line.split('|')
vars[line_list[0]]=line_list[1]
line = f.readline().rstrip('\n')
return vars
def fetch_json_vars(self,file="H:\\rfs_scripts\\vars.json"):
with open(file,'r',encoding='utf-8') as fp:
vars = json.load(fp)
return vars
def fetch_word_counter(self,data=None,word=None):
#usage example:
#${result} Fetch Word Counter data=${data} word=test
if data is None:
raise Exception("------please provide data------")
if word is None:
raise Exception("------please provide word------")
counter_result=Counter(data)
print(counter_result)
count=counter_result[word]
print(count)
return count
def get_data_by_list_remove(self,data=None,remove_list=None,**kwargs):
if data is None:
raise Exception("------please provide raw data------")
if remove_list is None:
raise Exception("------please provide remove list------")
print("data is %s,\n remove_list is %s,\n" %(data,remove_list))
data_list = []
counter = len(data)
for i in range(0,counter):
print(data[i])
if data[i] not in remove_list:
line_list = data[i]
print(line_list)
data_list.append(line_list)
print(data_list)
return data_list
def get_data_by_list_index_and_stepsize(self,data=None,index_value=0,stepsize=3,**kwargs):
if data is None:
raise Exception("------please provide raw data------")
print("data is %s,\n index_value is %s,\n stepsize is %d\n" %(data,index_value,stepsize))
data_list = []
counter = len(data)
for i in range(index_value,counter,stepsize):
#print(data[i])
line_list = data[i]
#print(line_list)
data_list.append(line_list)
print(data_list)
return data_list
def generate_task_var_data(self,var_file=None,**kwargs):
#usage example:
#@{my_templateId} Create List abcdefg1 abcdefg2 abcdefg3 abcdefg4 abcdefg5
#@{my_aniList} Create List 01021753680 01021753672
#Generate Task Var Data
#... var_file=C:\\yaoyao====\\my_vars.txt
#... templateId=${get_templateId}
#... taskName=ruby新任务ffffffffffffffffffffffffffffffffffffffffffffabc
#... robotNum=2
#... aniList=${my_aniList}
key = str(kwargs.get("key",'task'))
templateId = list(kwargs.get("templateId",['a6024192b6fe4f57895bed017a928325']))
taskName = str(kwargs.get("taskName",'新'))
robotNum = int(kwargs.get("robotNum",1))
aniList = list(kwargs.get("aniList",['00000000000']))
print(var_file)
print(key)
print(templateId)
print(taskName)
print(robotNum)
print(aniList)
cmd=''
if var_file is None:
raise Exception("var file doesn't exist, please check it")
if os.path.exists(var_file):
os.remove(var_file)
for i in range(0,len(templateId)):
j = i+1
cmd = 'key=' + key + str(j) + '||templateId=' + templateId[i] + '|taskName=' + taskName + str(j)+ '|robotNum=' + str(robotNum) + '|aniList=' + str(aniList)
print(cmd)
with open(var_file,'a',encoding='utf-8') as f:
if i!=len(templateId)-1:
f.write(cmd+'\n')
else:
f.write(cmd)
def create_task_dict(self,var_file=None,write_file=None,**kwargs):
#usage example:
#Create Task Dict var_file=C:\\yaoyao====\\my_vars.txt write_file=C:\\yaoyao====\\my_write_file.json
if var_file is None:
raise Exception("don't give var file, please check it")
if write_file is None:
raise Exception("don't give written file, please check it")
value_dict = {}
my_task_dict ={}
key_list = []
value_list = []
f = open(var_file, "r", encoding='utf-8')
lines = f.read()
#print(lines)
lines = lines.split('\n')
for line in lines:
new_line = line.split('||')
key = new_line[0].split('=')[1].replace('"',"").replace("'","")
#print(key)
key_list.append(key)
values = new_line[1].split('|')
#print(values)
for value in values:
#print(value)
item = value.split('=')
if item[0] == 'templateId':
value_dict['templateId'] = item[1].replace("'", '').replace('"', '')
if item[0] == 'taskName':
value_dict['taskName'] = item[1].replace("'", '').replace('"', '')
if item[0] == 'robotNum':
value_dict['robotNum'] = int(item[1].replace("'", '').replace('"', ''))
if item[0] == 'aniList':
temp=item[1].replace('\n', '').replace('\r', '').replace(' ', '').replace("[","").replace("]","").replace('"',"").replace("'","")
temp_list=temp.split(',')
value_dict['aniList'] = temp_list
if item[0] == 'timeType':
value_dict['timeType'] = int(item[1].replace("'", '').replace('"', ''))
if item[0] == 'lineType':
value_dict['lineType'] = int(item[1].replace("'", '').replace('"', ''))
if item[0] == 'priority':
value_dict['priority'] = int(item[1].replace("'", '').replace('"', ''))
if item[0] == 'telephoneRule':
value_dict['telephoneRule'] = int(item[1].replace("'", '').replace('"', ''))
if item[0] == 'retryFlag':
value_dict['retryFlag'] = int(item[1].replace("'", '').replace('"', ''))
if item[0] == 'numberHide':
value_dict['numberHide'] = int(item[1].replace("'", '').replace('"', ''))
#print(value_dict)
new_value_dict = value_dict.copy()
value_list.append(new_value_dict)
#print(key_list)
#print(value_list)
my_task_dict = dict(zip(key_list,value_list))
#print("-------------------------------")
#print(my_task_dict)
with open(write_file,'w',encoding='utf-8') as f:
written_info=json.dumps(my_task_dict,ensure_ascii=False)
f.write(written_info)
def fetch_token(self,basic_url="http://82.156.243.104:8000/api/6.0.0/",username=None,**kwargs):
#usage example:
#${get_token} Fetch Token basic_url=http://82.156.243.104:8000/api/6.0.0/ username=${gbl_vars}[email]
if username is not None:
get_apikey_and_apisecret_url = basic_url + 'consumers/' + username
#print(get_apikey_and_apisecret_url)
response = requests.get(url=get_apikey_and_apisecret_url)
response.raise_for_status()
resp_json = json.loads(response.text)
#print(resp_json)
get_apiKey = resp_json["content"][0]["apiKey"]
get_apiSecret = resp_json["content"][0]["apiSecret"]
#print(get_apiKey)
#print(get_apiSecret)
#token url
token_url = basic_url + 'tokens?apiKey=' + get_apiKey + '&apiSecret=' + get_apiSecret
#print(token_url)
response = requests.get(url=token_url)
response.raise_for_status()
resp_json = json.loads(response.text)
print(resp_json)
get_access_token = resp_json["content"]["access_token"]
#print(get_access_token)
return get_access_token
def fetch_companyId(self,basic_url="http://82.156.243.104:8000/api/6.0.0/",username=None,password=None,**kwargs):
#usage example:
#${headers} Create Dictionary Content-Type=application/json
#${datas} Create Dictionary userPassWord=${gbl_vars}[password]
#${get_companyId} Fetch CompanyId basic_url=http://82.156.243.104:8000/api/6.0.0/ username=${gbl_vars}[email] password=${gbl_vars}[password] headers=${headers} datas=${datas}
headers = dict(kwargs.get("headers",dict()))
datas = dict(kwargs.get("datas",dict()))
print(headers)
print(datas)
if username is not None:
get_companyId_url = basic_url + 'reference-icall-users/' + username
print(get_companyId_url)
response = requests.get(url=get_companyId_url,headers=headers,data=json.dumps(datas))
response.raise_for_status()
resp_json = json.loads(response.text)
print(resp_json)
if resp_json["code"]!=200:
raise Exception("status code isn't 200")
get_companyId = resp_json["content"]["companyId"]
print(get_companyId)
return get_companyId
def get_json_templateId_response(self,basic_url="http://82.156.243.104:8000/api/6.0.0/",companyId=None,**kwargs):
headers = dict(kwargs.get("headers",dict()))
print(headers)
if companyId is not None:
get_templateId_url = basic_url + 'companies/' + companyId + '/templates'
print(get_templateId_url)
response = requests.get(url=get_templateId_url,headers=headers)
response.raise_for_status()
resp_json = json.loads(response.text)
return resp_json
def create_task_by_file(self,basic_url="http://82.156.243.104:8000/api/6.0.0/",companyId=None,file=None,**kwargs):
#usage example:
#${headers} Create Dictionary Authorization=Bearer ${get_token} Content-Type=application/json
#Create Task By File basic_url=http://82.156.243.104:8000/api/6.0.0/ companyId=${get_companyId} headers=${headers} file=C:\\yaoyao====\\my_write_file.json
headers = dict(kwargs.get("headers",dict()))
print(headers)
if companyId is not None:
get_create_task_url = basic_url + 'companies/' + companyId + '/tasks'
print(get_create_task_url)
if file is not None:
result = json.load(open(file,'r',encoding='utf-8'))
keys = result.keys()
#print(keys)
for key in keys:
print(result[key])
print("------------")
print(json.dumps(result[key],ensure_ascii=False))
#response = requests.post(url=get_create_task_url,headers=headers,data=json.dumps(result[key],ensure_ascii=False))
response = requests.post(url=get_create_task_url,headers=headers,data=json.dumps(result[key]))
response.raise_for_status()
resp_json = json.loads(response.text)
print(resp_json)
def return_driver_props(self):
print("---------abc-------------")
seLib = BuiltIn().get_library_instance('SeleniumLibrary')
# the driver is instantiated in the SeleniumLibrary, but not provided publicly, thus accessing it through this py code
remote_url = seLib.driver.command_executor._url # for local instance, this is a value in the form 'http://localhost:57856'
session_id = seLib.driver.session_id
return remote_url, session_id
def set_driver_session_id(self,sesion_id):
""" Sets the sessoin_id of the current driver insance to the provided one. """
seLib = BuiltIn().get_library_instance('SeleniumLibrary')
if seLib.driver.session_id != sesion_id: # this is pretty much guaranteed to be the case
seLib.driver.close() # this closes the session's window
seLib.driver.quit() # for remote connections (like ours), this deletes the session, but doesn't stop the SE
#set to the session that's already running
seLib.driver.session_id = sesion_id
if __name__ == '__main__':
b=globalvars().fetch_vars()
print(b)
*** Settings ***
Documentation
... Keyword List:
... Logon Soboten
... Logon Test Environment
... Logon Cloud Customer Service
... Logon Cloud Outgoing Call
... Login initialization
... Get Current Windows Handles
... Open Browser And Set Size
... Fetch Json Vars
... Write Vars Into File
... Get Vars From File
... Write Url And Session Into File
... Debug Mode
... Select Single Item From Dropdown List
... Select Single Item From Dropdown Random List
... Select All Or Cancel All In Dropdown List By Title
... Select All Or Cancel All In Dropdown List By Attribute
... Select Mutiple Items From Dropdown List
... Select Mutiple Items From Dropdown Random List
... Check Whether Items are selected In Dropdown List
... Get Dropdown List Content
... Check Items Exist Or Not In String
... Check Items Exist Or Not In List
... Execute Click Operation For List Exist Items
... Select Checkbox Items
... Select Checkbox Items By Element Attribute
... Upload Local File
... Clear Text Information
... Input Text And Search
... Input Text And Check Result
... Check Flash Prompt Message
... Get Table Current Page Line Number
... Get Table Total Line Number
... Get Table Data For Line Or Current Page
... Get Table Data For All
... Get Table Data For Column
... Get Table Column Number
... Check Table Data For Null
... Check Whether Search Getting Table Data Match Column Value
... Execute Action By Element Attribute
... Operate Scroll Bar
... Fetch Word Counter
... Fetch Audio Duration
... Compare Number Values
... Set Calendar From Start To End By Input Date And Time
#-------------------------------------------
... Check Call Details
... Check Voice Content
... Create Outgoing Call Task
... Fetch TemplateId
... Fetch TemplateId By Curl
... Fetch CompanyId By Curl
... Fetch Token By Curl
#*********************************************************************
*** Variables ***
${timeout} 60
#*********************************************************************
*** Keywords ***
Logon Soboten
[Documentation] 根据参数logon_type值,登录相应的智齿系统
[Arguments] ${email}=${gbl_vars}[email]
... ${password}=${gbl_vars}[password]
... ${logon_type}=0 # 0 is test_environment 1 is "云客服" 2 is "云外呼" 3 is "智客"
Run Keyword If '@' not in "${email}" or '.' not in "${email}" Fail email format is wrong, please double check!
${password_length} Get Length ${password}
Run Keyword If ${password_length} < 8 Fail Password is less than 8 digits
Run Keyword If ${logon_type}>0 Click Element xpath=//div[text()="登录"]
Run Keyword If ${logon_type}==0 Logon Test Environment email=${email} password=${password}
... ELSE IF ${logon_type}==1 Logon Cloud Customer Service email=${email} password=${password}
... ELSE IF ${logon_type}==2 Logon Cloud Outgoing Call email=${email} password=${password}
Logon Test Environment
[Documentation] 登录智齿测试系统
[Arguments] ${email}={gbl_vars}[email]
... ${password}=${gbl_vars}[password]
Wait Until Page Contains 登录智齿客服,开启智慧客服新篇章 60s
Input Text id=userEmail ${email}
Input Text id=userPassword ${password}
Click Button xpath=//button[text()="登 录"]
#Logon Test Environment
# [Documentation] 登录智齿测试系统
# [Arguments] ${email}=${gbl_vars}[email]
# ... ${password}=${gbl_vars}[password]
#
# Log ${email}
# Log ${password}
#
# Wait Until Page Contains 登录智齿外呼,开启智能外呼新篇章 60s
#
# Input Text css=[type=text][name=username] ${email}
# Input Text css=[type=password][name=password] ${password}
#
# Click Button xpath=//button[text()="登录"]
Logon Cloud Customer Service
[Documentation] 登录智齿—云客服
[Arguments] ${email}=${gbl_vars}[email]
... ${password}=${gbl_vars}[password]
Click Element xpath=//a[text()="登录云客服"]
Get Current Windows Handles
Wait Until Page Contains 登录智齿客服,开启智慧客服新篇章 60s
Input Text id=userEmail ${email}
Input Text id=userPassword ${password}
Click Button xpath=//button[text()="登录"]
Logon Cloud Outgoing Call
[Documentation] 登录智齿—云外呼
[Arguments] ${email}=${gbl_vars}[email]
... ${password}=${gbl_vars}[password]
Click Element xpath=//a[text()="登录云外呼"]
Get Current Windows Handles
Wait Until Page Contains 登录智齿外呼,开启智能外呼新篇章 60s
Input Text css=[type=text][name=username] ${email}
Input Text css=[type=password][name=password] ${password}
Click Button xpath=//button[text()="登录"]
Get Current Windows Handles
[Documentation] 当一个web页面上有多个窗口时,得到当前窗口的handle
@{child_handle} Get Window Handles
log ${child_handle}
log @{child_handle}[-1]
Switch Window @{child_handle}[-1]
Open Browser And Set Size
[Documentation] 打开指定类型的浏览器,并设置窗口大小
[Arguments] ${url}=http://test.sobot.com/console/login
... ${browser}=gc
... ${set_window_size}=${True}
... ${hor_pixels}=1920
... ${ver_pixels}=1080
... ${set_max_browser_window}=${True}
Open Browser ${url} ${browser}
Run Keyword If ${set_window_size} Set Window Size ${hor_pixels} ${ver_pixels}
Run Keyword If ${set_max_browser_window} Maximize Browser Window
Login initialization
[Documentation] 仅为智能外呼登录初始化
[Arguments] ${url}=${gbl_vars}[url]
... ${browser}=gc
... ${set_window_size}=${True}
... ${hor_pixels}=1920
... ${ver_pixels}=1080
... ${set_max_browser_window}=${True}
... ${logon_type}=0
... ${email}=${gbl_vars}[email]
... ${password}=${gbl_vars}[password]
... ${implicit_wait_value}=5
Close All Browsers
Open Browser And Set Size url=${url} browser=${browser} set_window_size=${True} set_max_browser_window=${True}
Logon Soboten logon_type=${logon_type} email=${email} password=${password}
Set Selenium Implicit Wait value=${implicit_wait_value}
Compare Number Values
[Documentation] 两个数值比较
[Arguments] ${value1}=value1
... ${operator}==
... ${value2}=value2
... ${offset_value}=0
#usage example:
#Compare Number Values value1=${getting_call_duration} operator=< value2=${call_duration}
Log value1 is: ${value1}
Log operator is: ${operator}
Log value2 is: ${value2}
Log offset_value is: ${offset_value}
Log =======================================================================
${value2} Evaluate ${offset_value} + ${value2}
Run Keyword If ${value1} ${operator} ${value2} Fail value1 and value2 compare failed
Fetch Audio Duration
[Documentation] 得到audio播放总时长
[Arguments] ${locator} #Mandatory parameters,请提供java scripts路径
[Return] ${result} #返回的audio的播放总时长
#usage example:
#${duration} Fetch Audio Duration locator=audio
Log locator is: ${locator}
Log =======================================================================
${result} Execute Javascript return document.querySelector("${locator}").duration
${result} Convert To Integer ${result}
Log ${result}
Select All Or Cancel All In Dropdown List By Attribute
[Documentation] 通过属性全选或者全取消下拉列表里的所有项
[Arguments] ${dl_locator} #Mandatory parameters,下拉框选中位置
... ${all_locator} #Mandatory parameters,"全部"或"全选"或其他表示全选位置的locator
... ${all_attribute_value} #Mandatory parameters,请根据需要,给全选或全取消的属性状态值
... ${all_attribute_name}=class #通过哪个属性获得的属性值,请给这个属性名
... ${commit_locator}=${None} #"确定"或"提交"按钮的locator
... ${sleep_time}=0.5
#usage example:
#Select All Or Cancel All In Dropdown List dl_locator=${locator_vars}[任务_创建人账号_选中]
#... all_locator=${locator_vars}[任务_创建人账号_全部]
#... all_attribute_value=autotest_active
#... commit_locator=${locator_vars}[任务_创建人账号_确定]
Log dl_locator is: ${dl_locator}
Log all_locator is: ${all_locator}
Log all_attribute_value is: ${all_attribute_value}
Log all_attribute_name is: ${all_attribute_name}
Log commit_locator is: ${commit_locator}
Log =======================================================================
Click Element ${dl_locator}
Sleep ${sleep_time}
Execute Action By Element Attribute locator=${all_locator} attribute_name=${all_attribute_name} attribute_value=${all_attribute_value}
Sleep ${sleep_time}
Run Keyword If '${commit_locator}' is not '${None}' Click Element ${commit_locator} #提交
... ELSE Click Element ${dl_locator} #点击下拉框选中, 为了让下拉框关闭
Select Single Item From Dropdown Random List
[Documentation] 从内容可变的下拉列表中选择一项内容
[Arguments] ${dl_locator} #Mandatory parameters,下拉框选中位置
... ${dl_content_locator} #Mandatory parameters,请给下拉框下半部分文本部分的整体locator
... ${single_item} #Mandatory parameters,单选项内容
... ${append_locator} #Mandatory parameters,单选项位置
... ${sleep_time}=0.2
#usage example:
#Select Single Item From Dropdown Random List dl_locator=${dl_locator} dl_content_locator=${dl_content_locator} single_item=${single_item} append_locator=${append_locator}
Log dl_locator is: ${dl_locator}
Log dl_content_locator is: ${dl_content_locator}
Log single_item is: ${single_item}
Log append_locator is: ${append_locator}
Log =======================================================================
${result} Get Dropdown List Content dl_locator=${dl_locator} dl_content_locator=${dl_content_locator}
Check Items Exist Or Not In String all_data=${result} check_items=${single_item}
Execute Click Operation For List Exist Items basic_locator=${dl_content_locator} append_locator=${append_locator}
Select Mutiple Items From Dropdown Random List
[Documentation] 从内容可变的下拉列表中选择一项或多项内容
[Arguments] ${dl_locator} #Mandatory parameters,下拉框选中位置
... ${dl_content_locator} #Mandatory parameters,请给下拉框下半部分文本部分的整体locator
... ${mutiple_items} #Mandatory parameters,多选项内容,多个时需传入一个list
... ${mutiple_items_append_locator} #Mandatory parameters,多选项内容对应的追加locator,多个时需传入一个list
... ${commit_locator}=${None} #提交按钮位置
... ${sleep_time}=0.2
#usage example:
#Select Mutiple Items From Dropdown Random List dl_locator=${dl_locator} dl_content_locator=${dl_content_locator} mutiple_items=${mutiple_items} mutiple_items_append_locator=${mutiple_items_append_locator}
Log dl_locator is: ${dl_locator}
Log dl_content_locator is: ${dl_content_locator}
Log mutiple_items is: ${mutiple_items}
Log mutiple_items_append_locator is: ${mutiple_items_append_locator}
Log commit_locator is: ${commit_locator}
Log =======================================================================
@{mutiple_items} = Run Keyword If isinstance($mutiple_items,list) Copy List ${mutiple_items}
... ELSE Create List ${mutiple_items}
@{mutiple_items_append_locator} = Run Keyword If isinstance($mutiple_items_append_locator,list) Copy List ${mutiple_items_append_locator}
... ELSE Create List ${mutiple_items_append_locator}
${result} Get Dropdown List Content dl_locator=${dl_locator} dl_content_locator=${dl_content_locator}
Check Items Exist Or Not In String all_data=${result} check_items=${mutiple_items}
Sleep ${sleep_time}
Run Keyword If '${commit_locator}' is not '${None}' Execute Click Operation For List Exist Items basic_locator=${dl_content_locator} append_locator=${mutiple_items_append_locator} commit_locator=${commit_locator}
... ELSE IF '${dl_locator}' is not '${None}' Execute Click Operation For List Exist Items basic_locator=${dl_content_locator} append_locator=${mutiple_items_append_locator} dl_locator=${dl_locator}
Create Outgoing Call Task
[Documentation] 创建智能外呼任务
[Arguments] ${create_task_locator} #Mandatory parameters,"新建任务"按钮的locator
... ${task_name_inputbox_locator} #Mandatory parameters,任务名称输入框locator
... ${task_name_input_info} #Mandatory parameters,任务名称输入信息
... ${dl_locator} #Mandatory parameters,下拉框选中位置locator
... ${dl_content_locator} #Mandatory parameters,请给下拉框下半部分文本部分的整体locator
... ${single_item} #Mandatory parameters,单选项内容
... ${append_locator} #Mandatory parameters,单选项位置
... ${robot_number_inputbox_locator} #Mandatory parameters,机器人输入框locator
... ${commit_button_locator} #Mandatory parameters,确定按钮locator
... ${robot_number}=1 #机器人数量
... ${explicit_number_dl_locator}=${None} #外显号码locator
... ${explicit_number_title_locator}=${None} #外显号码标题locator
... ${explicit_number_title_content}=${None} #外显号码标题期望内容
... ${explicit_number_all_locator}=${None} #外显号码"全部号码"locator
... ${explicit_number_content_locator}=${None} #外显号码下拉内容部分locator
... ${explicit_number_choice_items}=${None} #外显号码选择项,用于check选择项在下拉列表里是否存在
... ${explicit_number_choice_append_locator}=${None} #外显号码选择项对应的追加locator
... ${explicit_rule}=${None} #外显规则locator
... ${explicit_basic_rule}=${None} #外显基础规则locator
... ${priority_locator}=${None} #想选的优先级locator
... ${number_hiding_strategy_locator}=${None} #想选的号码隐藏策略locator
... ${dial_result_push_locator}=${None} #拨打结果推送开启/关闭locator
... ${dial_result_push_time_locator}=${None} #拨打结果推送时机locator
... ${dial_result_push_addr_locator}=${None} #拨打结果推送地址locator
... ${dial_result_push_addr_info}=${None} #拨打结果推送地址内容
... ${auto_redial_setting_locator}=${None} #自动重拨设置开启/关闭locator
... ${redial_interval_locator}=${None} #重拨间隔框选中locator
... ${redial_interval_value_locator}=${None} #想选的重拨间隔值locator
... ${redial_times_locator}=${None} #重拨次数框选中locator
... ${redial_times_value_locator}=${None} #想选的重拨次数值locator
... ${redial_condition_item_locator_and_attribute_dict}=${None} #想选的重拨条件项locator及对应的状态字典
... ${redial_condition_item_attribute_value}=class #想选的重拨条件项状态属性值
... ${filter_strategy_locator}=${None} #过滤策略开启/关闭locator
... ${outcall_upper_limit_locator}=${None} #外呼上限框选中locator
... ${outcall_upper_limit_value_locator}=${None} #外呼上限值locator
... ${day_limit_locator}=${None} #天内限制框选中locator
... ${day_limit_value_locator}=${None} #天内限制值locator
... ${redial_condition_locator_list}=${None} #想选的重拨条件,可以是一个,也可以是一个list
... ${flash_prompt_locator}=${None} #快闪提示位置
... ${flash_prompt_expected_info}=${None} #快闪期望信息
... ${sleep_time}=0.2
#usage example:
#Create Outgoing Call Task
#... create_task_locator=${locator_vars}[任务_新建任务]
#... task_name_inputbox_locator=${locator_vars}[任务_新建任务_任务名称输入框]
#... task_name_input_info=${locator_vars}[任务_新建任务_任务名称输入信息]
#... dl_locator=${locator_vars}[任务_新建任务_选择话术框选中]
#... dl_content_locator=${locator_vars}[任务_新建任务_选择话术下拉内容框]
#... single_item=接口
#... append_locator=//span[text()="接口"]
#... explicit_rule=${locator_vars}[任务_新建任务_外显规则]
#... explicit_basic_rule=${locator_vars}[任务_新建任务_外显规则_轮流外显]
#... robot_number_inputbox_locator=${locator_vars}[任务_新建任务_机器人数量输入框]
#... robot_number=3
#... priority_locator=${locator_vars}[任务_新建任务_优先级_高]
#... number_hiding_strategy_locator=${locator_vars}[任务_新建任务_号码隐藏策略_隐藏中间四位]
#... dial_result_push_locator=${locator_vars}[任务_新建任务_拨打结果推送]
#... dial_result_push_time_locator=${locator_vars}[任务_新建任务_拨打结果推送_转人工后推送]
#... dial_result_push_addr_locator=${locator_vars}[任务_新建任务_拨打结果推送_推送地址输入框]
#... dial_result_push_addr_info=${locator_vars}[任务_新建任务_拨打结果推送_推送地址输入内容]
#... auto_redial_setting_locator=${locator_vars}[任务_新建任务_自动重拨设置]
#... redial_interval_locator=${locator_vars}[任务_新建任务_自动重拨设置_重拨间隔框选中]
#... redial_interval_value_locator=${locator_vars}[任务_新建任务_自动重拨设置_重拨间隔值]
#... redial_times_locator=${locator_vars}[任务_新建任务_自动重拨设置_重拨次数框选中]
#... redial_times_value_locator=${locator_vars}[任务_新建任务_自动重拨设置_重拨次数值]
#... redial_condition_item_locator_and_attribute_dict=${locator_vars}[任务_新建任务_自动重拨设置_重拨条件]
#... filter_strategy_locator=${locator_vars}[任务_新建任务_过滤策略]
#... outcall_upper_limit_locator=${locator_vars}[任务_新建任务_过滤策略_外呼上线框选中]
#... outcall_upper_limit_value_locator=${locator_vars}[任务_新建任务_过滤策略_外呼上线值]
#... day_limit_locator=${locator_vars}[任务_新建任务_过滤策略_天内限制框选中]
#... day_limit_value_locator=${locator_vars}[任务_新建任务_过滤策略_天内限制值]
#... commit_button_locator=${locator_vars}[任务_新建任务_确定]
#... flash_prompt_locator=${locator_vars}[任务_新建任务_快闪提示]
#... flash_prompt_expected_info=添加成功
#=======================================================================
Log create_task_locator is: ${create_task_locator}
Log task_name_inputbox_locator is: ${task_name_inputbox_locator}
Log task_name_input_info is: ${task_name_input_info}
Log dl_locator is: ${dl_locator}
Log dl_content_locator is: ${dl_content_locator}
Log single_item is: ${single_item}
Log append_locator is: ${append_locator}
Log explicit_number_dl_locator is: ${explicit_number_dl_locator}
Log explicit_number_title_locator is: ${explicit_number_title_locator}
Log explicit_number_title_content is: ${explicit_number_title_content}
Log explicit_number_all_locator is: ${explicit_number_all_locator}
Log explicit_number_content_locator is: ${explicit_number_content_locator}
Log explicit_number_choice_items is: ${explicit_number_choice_items}
Log explicit_number_choice_append_locator is: ${explicit_number_choice_append_locator}
Log explicit_rule is: ${explicit_rule}
Log explicit_basic_rule is: ${explicit_basic_rule}
Log robot_number_inputbox_locator is: ${robot_number_inputbox_locator}
Log robot_number is: ${robot_number}
Log priority_locator is: ${priority_locator}
Log number_hiding_strategy_locator is: ${number_hiding_strategy_locator}
Log dial_result_push_locator is: ${dial_result_push_locator}
Log dial_result_push_time_locator is: ${dial_result_push_time_locator}
Log dial_result_push_addr_locator is: ${dial_result_push_addr_locator}
Log dial_result_push_addr_info is: ${dial_result_push_addr_info}
Log commit_button_locator is: ${commit_button_locator}
Log auto_redial_setting_locator is: ${auto_redial_setting_locator}
Log redial_interval_locator is: ${redial_interval_locator}
Log redial_interval_value_locator is: ${redial_interval_value_locator}
Log redial_times_locator is: ${redial_times_locator}
Log redial_times_value_locator is: ${redial_times_value_locator}
Log redial_condition_item_locator_and_attribute_dict is: ${redial_condition_item_locator_and_attribute_dict}
Log filter_strategy_locator is: ${filter_strategy_locator}
Log outcall_upper_limit_locator is: ${outcall_upper_limit_locator}
Log outcall_upper_limit_value_locator is: ${outcall_upper_limit_value_locator}
Log day_limit_locator is: ${day_limit_locator}
Log day_limit_value_locator is: ${day_limit_value_locator}
Log flash_prompt_locator is: ${flash_prompt_locator}
Log flash_prompt_expected_info is: ${flash_prompt_expected_info}
Log =======================================================================
Log 点击新建任务
Click Element ${create_task_locator}
Wait Until Page Contains 创建任务 ${timeout}
Log 输入任务名称
Input Text ${task_name_inputbox_locator} ${task_name_input_info}
Log 选择话术
Select Single Item From Dropdown Random List dl_locator=${dl_locator} dl_content_locator=${dl_content_locator} single_item=${single_item} append_locator=${append_locator}
Log 外显号码
Run Keyword If '${explicit_number_dl_locator}' is not '${None}' and '${explicit_number_all_locator}' is '${None}' Fail explicit_number_all_locator is None, this isn't expected result
Run Keyword If '${explicit_number_dl_locator}' is not '${None}' and '${explicit_number_title_locator}' is '${None}' Fail explicit_number_title_locator is None, this isn't expected result
Run Keyword If '${explicit_number_dl_locator}' is not '${None}' and '${explicit_number_title_content}' is '${None}' Fail explicit_number_title_content is None, this isn't expected result
Run Keyword If '${explicit_number_dl_locator}' is not '${None}' and '${explicit_number_content_locator}' is '${None}' Fail explicit_number_content_locator is None, this isn't expected result
Run Keyword If '${explicit_number_dl_locator}' is not '${None}' and '${explicit_number_choice_items}' is '${None}' Fail explicit_number_choice_items is None, this isn't expected result
Run Keyword If '${explicit_number_dl_locator}' is not '${None}' and '${explicit_number_choice_append_locator}' is '${None}' Fail explicit_number_choice_append_locator is None, this isn't expected result
Run Keyword If '${explicit_number_dl_locator}' is not '${None}'
... Select All Or Cancel All In Dropdown List By Title
... dl_locator=${explicit_number_dl_locator}
... dl_title_locator=${explicit_number_title_locator}
... title_content=${explicit_number_title_content}
... all_locator=${explicit_number_all_locator}
Run Keyword If '${explicit_number_dl_locator}' is not '${None}'
... Select Mutiple Items From Dropdown Random List
... dl_locator=${explicit_number_dl_locator}
... dl_content_locator=${explicit_number_content_locator}
... mutiple_items=${explicit_number_choice_items}
... mutiple_items_append_locator=${explicit_number_choice_append_locator}
Log 外显规则
Run Keyword If '${explicit_rule}' is not '${None}' Click Element ${explicit_rule}
Run Keyword If '${explicit_basic_rule}' is not '${None}' Click Element ${explicit_basic_rule}
Log 机器人数量
Input Text ${robot_number_inputbox_locator} ${robot_number}
Log 优先级
Run Keyword If '${priority_locator}' is not '${None}' Click Element ${priority_locator}
Log 拨打时间段
Log 号码隐藏策略
Run Keyword If '${number_hiding_strategy_locator}' is not '${None}' Click Element ${number_hiding_strategy_locator}
Log 任务有效期
Log 拨打结果推送
Run Keyword If '${dial_result_push_locator}' is not '${None}' Click Element ${dial_result_push_locator}
Run Keyword If '${dial_result_push_locator}' is not '${None}' and '${dial_result_push_time_locator}' is not '${None}' Click Element ${dial_result_push_time_locator}
Run Keyword If '${dial_result_push_time_locator}' is not '${None}' and '${dial_result_push_addr_locator}' is '${None}' Fail "dial_result_push_addr_locator" is None, please give the corresponding value
Run Keyword If '${dial_result_push_time_locator}' is not '${None}' and '${dial_result_push_addr_info}' is '${None}' Fail "dial_result_push_addr_info" is None, please give the corresponding value
Run Keyword If '${dial_result_push_locator}' is not '${None}' and '${dial_result_push_addr_locator}' is not '${None}' and '${dial_result_push_addr_info}' is not '${None}' Input Text ${dial_result_push_addr_locator} ${dial_result_push_addr_info}
Log 过滤策略
Sleep ${sleep_time}
Run Keyword If '${filter_strategy_locator}' is not '${None}' Click Element ${filter_strategy_locator}
Run Keyword If '${filter_strategy_locator}' is '${None}' and '${outcall_upper_limit_locator}' is not '${None}' Fail filter_strategy_locator is None, so can't show outcall_upper_limit_locator
Run Keyword If '${filter_strategy_locator}' is '${None}' and '${outcall_upper_limit_value_locator}' is not '${None}' Fail filter_strategy_locator is None, so can't show outcall_upper_limit_value_locator
Run Keyword If '${filter_strategy_locator}' is '${None}' and '${day_limit_locator}' is not '${None}' Fail filter_strategy_locator is None, so can't show day_limit_locator
Run Keyword If '${filter_strategy_locator}' is '${None}' and '${day_limit_value_locator}' is not '${None}' Fail filter_strategy_locator is None, so can't show day_limit_value_locator
Run Keyword If '${outcall_upper_limit_locator}' is not '${None}' and '${outcall_upper_limit_value_locator}' is not '${None}' Select Single Item From Dropdown List dl_locator=${outcall_upper_limit_locator} item_locator=${outcall_upper_limit_value_locator}
Run Keyword If '${day_limit_locator}' is not '${None}' and '${day_limit_value_locator}' is not '${None}' Select Single Item From Dropdown List dl_locator=${day_limit_locator} item_locator=${day_limit_value_locator}
Log 自动重拨设置
Run Keyword If '${auto_redial_setting_locator}' is not '${None}' Click Element ${auto_redial_setting_locator}
Run Keyword If '${auto_redial_setting_locator}' is '${None}' and '${redial_interval_locator}' is not '${None}' Fail auto_redial_setting_locator is None, so can't show redial_interval_locator
Run Keyword If '${auto_redial_setting_locator}' is '${None}' and '${redial_interval_value_locator}' is not '${None}' Fail auto_redial_setting_locator is None, so can't show redial_interval_value_locator
Run Keyword If '${auto_redial_setting_locator}' is '${None}' and '${redial_times_locator}' is not '${None}' Fail auto_redial_setting_locator is None, so can't show redial_times_locator
Run Keyword If '${auto_redial_setting_locator}' is '${None}' and '${redial_times_value_locator}' is not '${None}' Fail auto_redial_setting_locator is None, so can't show redial_times_value_locator
Run Keyword If '${redial_interval_locator}' is not '${None}' and '${redial_interval_value_locator}' is not '${None}' Select Single Item From Dropdown List dl_locator=${redial_interval_locator} item_locator=${redial_interval_value_locator}
Run Keyword If '${redial_times_locator}' is not '${None}' and '${redial_times_value_locator}' is not '${None}' Select Single Item From Dropdown List dl_locator=${redial_times_locator} item_locator=${redial_times_value_locator}
Run Keyword If ${redial_condition_item_locator_and_attribute_dict} is not ${None} Select Checkbox Items By Element Attribute items_dict=${redial_condition_item_locator_and_attribute_dict} attribute_name=${redial_condition_item_attribute_value}
Log 确定和判断
Click Element ${commit_button_locator}
Run Keyword If '${flash_prompt_locator}' is not '${None}' and '${flash_prompt_expected_info}' is not '${None}' Check Flash Prompt Message flash_prompt_locator=${flash_prompt_locator} excepted_message=${flash_prompt_expected_info}
Select Checkbox Items
[Documentation] 选择多选框不根据元素状态
[Arguments] ${items_locator} #Mandatory parameters,请传入一个或多个项的locator
... ${sleep_time}=0.2
#usage example:
#Select Checkbox Items items_locator=${redial_condition_items_locator}
Log items_locator is: ${items_locator}
Log =======================================================================
@{items_locator} = Run Keyword If isinstance($items_locator,list) Copy List ${items_locator}
... ELSE Create List ${items_locator}
FOR ${item_locator} IN @{items_locator}
Log ${item_locator}
Click Element ${item_locator}
END
Select Checkbox Items By Element Attribute
[Documentation] 选择多选框根据元素状态
[Arguments] ${items_dict} #Mandatory parameters,请传入一个字典,key是元素的locator,value是元素的属性值
... ${attribute_name} #Mandatory parameters,通过哪个属性名称得到属性值,请给这个属性名称
... ${sleep_time}=0.2
#usage example:
#Select Checkbox Items By Element Attribute items_dict=${redial_condition_item_locator_and_attribute_dict} attribute_name=${redial_condition_item_attribute_value}
Log items_dict is: ${items_dict}
Log =======================================================================
@{keys_list} Get Dictionary Keys ${items_dict}
Log ${keys_list}
FOR ${item} IN @{keys_list}
Log ${item}
Log ${items_dict}[${item}]
Execute Action By Element Attribute locator=${item} attribute_name=${attribute_name} attribute_value=${items_dict}[${item}]
END
Check Voice Content
[Documentation] check智能外呼通话语音信息
[Arguments] ${robot_voice} #Mandatory parameters,机器人语音,可以是一条语音,可以也是一个list
... ${customer_voice} #Mandatory parameters,客户语音,可以是一条语音,可以也是一个list
... ${sleep_time}=0.2
#usage example:
#${r_var1} Set Variable 喂,你好。
#${r_var2} Set Variable 好家长,我这边是高途课堂的小智老师啊,然后小朋友呢有在我们这边有上过课的,您还记得吧?
#${r_var3} Set Variable 呃,是这样的,就我们高途课堂呢针对老用户推出了金牌名师的春季超前预习课。没有老师呢来一对一的帮助孩子来快速掌握学科重难点。这个课程呢现在只需要十八块钱就可以了。。另外还会赠送价值四十八元的多功能保温杯啊,现在报名的话可以优先安排上课。我这边给您发个优惠链接,您记得及时领取哈。
#@{r_list} Create List ${r_var1} ${r_var2} ${r_var3}
##@{r_list} Create List 喂,你好。 好家长,我这边是高途课堂的小智老师啊,然后小朋友呢有在我们这边有上过课的,您还记得吧? 呃,是这样的,就我们高途课堂呢针对老用户推出了金牌名师的春季超前预习课。没有老师呢来一对一的帮助孩子来快速掌握学科重难点。这个课程呢现在只需要十八块钱就可以了。。另外还会赠送价值四十八元的多功能保温杯啊,现在报名的话可以优先安排上课。我这边给您发个优惠链接,您记得及时领取哈。
#@{c_list} Create List 行 行
#Check Voice Content robot_voice=${r_list} customer_voice=${c_list}
Log robot_voice is: ${robot_voice}
Log customer_voice is: ${customer_voice}
Log =======================================================================
@{robot_voice} = Run Keyword If isinstance($robot_voice,list) Copy List ${robot_voice}
... ELSE Create List ${robot_voice}
@{customer_voice} = Run Keyword If isinstance($customer_voice,list) Copy List ${customer_voice}
... ELSE Create List ${customer_voice}
#处理数据,得到想要的数据
${data} Get Text //body
Log ${data}
@{temp_list_1} Split String From Right ${data} 话术路径 关闭 1
Log ${temp_list_1}
@{temp_list_2} Split String ${temp_list_1}[1] 删除 取消选择
Log ${temp_list_2}[0]
@{response} Split To Lines ${temp_list_2}[0]
Log ${response}
Remove From List ${response} 0
Log ${response}
${loop_num} Get Length ${response}
${quotient} Evaluate ${loop_num}%2
Run Keyword If ${quotient}!=0 Fail quotient isn't 0, please check why
#处理"机器人"和"客户"名称为不同
${times} Set Variable 1
FOR ${i} IN RANGE 0 ${loop_num} 2
Log ${response}[${i}]
${final_robot} Catenate SEPARATOR= 机器人 ${times}
${final_customer} Catenate SEPARATOR= 客户 ${times}
#Log ${final_robot}
#Log ${final_customer}
Run Keyword If '${response}[${i}]' == '机器人' Set List Value ${response} ${i} ${final_robot}
Run Keyword If '${response}[${i}]' == '客户' Set List Value ${response} ${i} ${final_customer}
#Log ${response}
#Log ${response}[${i}]
${times} Evaluate ${times} + 1
${r_times}= Set Variable If '${response}[${i}]' == '${final_robot}' ${times}
#Log ${r_times}
END
Log ${response}
#"机器人"和"客户"说的话分别写入字典
&{my_robot_dict} Create Dictionary
&{my_customer_dict} Create Dictionary
FOR ${i} IN RANGE 0 ${loop_num} 2
${j} Evaluate ${i} + 1
Run Keyword If '机器人' in '${response}[${i}]' Set To Dictionary ${my_robot_dict} ${response}[${i}]=${response}[${j}]
Run Keyword If '客户' in '${response}[${i}]' Set To Dictionary ${my_customer_dict} ${response}[${i}]=${response}[${j}]
END
Log ${my_robot_dict}
Log ${my_customer_dict}
#取得的数据和传入的数据进行对比
@{my_robot_dict_value} Get Dictionary Values ${my_robot_dict}
Log ${my_robot_dict_value}
@{my_customer_dict_value} Get Dictionary Values ${my_customer_dict}
Log ${my_customer_dict_value}
FOR ${getting_item} IN @{my_robot_dict_value}
Log ${getting_item}
FOR ${inputing_item} IN @{robot_voice}
Run Keyword If '${inputing_item}' in '${getting_item}' Exit For Loop
... ELSE Continue For Loop
END
END
FOR ${getting_item} IN @{my_customer_dict_value}
Log ${getting_item}
FOR ${inputing_item} IN @{customer_voice}
Run Keyword If '${inputing_item}' in '${getting_item}' Exit For Loop
... ELSE Continue For Loop
END
END
Check Call Details
[Documentation] check智能外呼通话详细信息
[Arguments] ${phone_number}=${None} #电话号码
... ${call_result}=${None} #拨打结果
... ${customer_intention}=${None} #客户意向
... ${speech_template}=${None} #话术模板
... ${owned_task}=${None} #所属任务
... ${customer_response_number}=0 #客户回复数
... ${transfer_to_person}=否 #转人工情况
... ${send_message}=未发送 #短信发送情况
... ${explicit_number}=01021753672 #外显号码
... ${call_duration}=${None} #通话时长
... ${sleep_time}=0.2
#usage example:
#Check Call Details
#... phone_number=15801490162
#... call_result=已接通
#... customer_intention=无意向
#... speech_template=教育营销_有问题
#... owned_task=test008
#... customer_response_number=1
#... transfer_to_person=否
#... send_message=未发送
#... explicit_number=01021753672
#... call_duration=140
Log phone_number is: ${phone_number}
Log call_result is: ${call_result}
Log customer_intention is: ${customer_intention}
Log speech_template is: ${speech_template}
Log owned_task is: ${owned_task}
Log customer_response_number is: ${customer_response_number}
Log transfer_to_person is: ${transfer_to_person}
Log send_message is: ${send_message}
Log explicit_number is: ${explicit_number}
Log call_duration is: ${call_duration}
Log =======================================================================
#处理数据,得到想要的数据
${data} Get Text //body
Log ${data}
@{temp_list_1} Split String From Right ${data} 变量字段 1
Log ${temp_list_1}
@{temp_list_2} Split String ${temp_list_1}[0] 通话基本信息
Log ${temp_list_2}[1]
@{response} Split To Lines ${temp_list_2}[1]
Log ${response}
Remove From List ${response} 0
Log ${response}
${loop_num} Get Length ${response}
${quotient} Evaluate ${loop_num}%2
Run Keyword If ${quotient}!=0 Fail quotient isn't 0, please check why
#把数据写入字典
&{my_dict} Create Dictionary
FOR ${i} IN RANGE 0 ${loop_num} 2
${j} Evaluate ${i} + 1
Set To Dictionary ${my_dict} ${response}[${i}]=${response}[${j}]
END
Log ${my_dict}
#取得的数据和传入的数据进行对比
Run Keyword If '${phone_number}' is not '${None}' Should Be Equal As Strings ${my_dict}[电话号码] ${phone_number}
Run Keyword If '${call_result}' is not '${None}' Should Be Equal As Strings ${my_dict}[拨打结果] ${call_result}
Run Keyword If '${customer_intention}' is not '${None}' Should Be Equal As Strings ${my_dict}[客户意向] ${customer_intention}
Run Keyword If '${speech_template}' is not '${None}' Should Be Equal As Strings ${my_dict}[话术模板] ${speech_template}
Run Keyword If '${owned_task}' is not '${None}' Should Be Equal As Strings ${my_dict}[所属任务] ${owned_task}
Run Keyword If '${my_dict}[callId]' is '${Empty}' Fail callId is empty, this's wrong
${getting_response_number} Convert To Integer ${my_dict}[客户回复数]
Run Keyword If '${my_dict}[拨打结果]' != '已接通' Should Be Equal As Integers ${getting_response_number} 0
... ELSE Compare Number Values value1=${getting_response_number} operator=< value2=${customer_response_number}
Run Keyword If '${my_dict}[拨打结果]' != '已接通' Should Be Equal As Strings ${my_dict}[转人工情况] 否
... ELSE Should Be Equal As Strings ${my_dict}[转人工情况] ${transfer_to_person}
Run Keyword If '${send_message}' is not '${None}' Should Be Equal As Strings ${my_dict}[短信发送情况] ${send_message}
Run Keyword If '${explicit_number}' is not '${None}' Should Be Equal As Strings ${my_dict}[外显号码] ${explicit_number}
Run Keyword If '${my_dict}[拨打时间]' is '${Empty}' Fail call time is empty, this's wrong
${getting_call_duration} Convert Time ${my_dict}[通话时长]
${getting_call_duration} Convert To Integer ${getting_call_duration}
Log ${getting_call_duration}
Run Keyword If '${call_duration}' is not '${None}' Compare Number Values value1=${getting_call_duration} operator=< value2=${call_duration}
Operate Scroll Bar
[Documentation] 操作横向纵向滚动条
[Arguments] ${locator} #Mandatory parameters,请提供java scripts路径
... ${type}=HV # H(表示横向滚动条),V(纵向滚动条),HV(横向滚动条和纵向滚动条)
... ${h_value}=9999 #横向滚动条距离左边的值
... ${v_value}=9999 #纵向滚动条距离上边的值
... ${sleep_time}=0.2
#usage example:
#Operate Scroll Bar locator=${locator_vars}[任务_table_滚动条] type=H h_value=800
#Operate Scroll Bar locator=${locator_vars}[任务_table_滚动条] type=HV h_value=9999 v_value=9999
Log scroll bar locator: ${locator}
Log scroll bar type: ${type}
Log scroll bar h_value: ${h_value}
Log scroll bar v_value: ${v_value}
Log =======================================================================
Sleep ${sleep_time}
Run Keyword If '${type}' == 'H' Execute Javascript document.querySelector("${locator}").scrollLeft=${h_value}
... ELSE IF '${type}' == 'V' Execute Javascript document.querySelector("${locator}").scrollTop=${v_value}
... ELSE IF '${type}' == 'HV' Execute Javascript document.querySelector("${locator}").scrollTo(${h_value},${v_value})
Input Text And Search
[Documentation] 根据文本内容进行搜索
[Arguments] ${input_locator} #Mandatory parameters,请给input box的locator
... ${input_content} #Mandatory parameters,请给input box的data
... ${search_locator}=${None} #请给搜索的locator
... ${sleep_time}=0.2
#usage example:
#Input Text And Search input_locator=${locator_vars}[任务_输入框] input_content=test search_locator=${locator_vars}[任务_输入框后搜索]
Log input_locator is: ${input_locator}
Log search_locator is: ${search_locator}
Log =======================================================================
Input Text ${input_locator} ${input_content} #在输入框中输入查询内容
Sleep ${sleep_time}
Run Keyword If '${search_locator}' is not '${None}' Click Element ${search_locator}
Get Dropdown List Content
[Documentation] 得到下拉列表里文本内容
[Arguments] ${dl_locator} #Mandatory parameters,请给下拉框上半部分的locator
... ${dl_content_locator} #Mandatory parameters,请给下拉框下半部分文本部分的整体locator
... ${sleep_time}=0.5
[Return] ${result} #返回的是string
#usage example:
#${result} Get Dropdown List Content dl_locator=${locator_vars}[任务_话术模板_选中] dl_content_locator=${locator_vars}[任务_话术模板_下拉框中文本显示部分]
Log dropdown list locator: ${dl_locator}
Log dropdown list content locator: ${dl_content_locator}
Log =======================================================================
Click Element ${dl_locator}
Sleep ${sleep_time}
${result} Get Text ${dl_content_locator}
Log ${result}
Check Items Exist Or Not In String
[Documentation] 在string里检查items数据是否存在
[Arguments] ${all_data} #Mandatory parameters,请传入string
... ${check_items} #Mandatory parameters, 如果多于一个请传入list
... ${exist}=${True} #{True}表示存在,{False}表示不存在
... ${sleep_time}=0.2
#usage example:
#@{my_list} Create List 接口 test
#Check Items Exist Or Not In String all_data=${result} check_items=${my_list}
Log all_data is: ${all_data}
Log check_items is: ${check_items}
Log exist is: ${True}
Log =======================================================================
@{check_items} = Run Keyword If isinstance($check_items,list) Copy List ${check_items}
... ELSE Create List ${check_items}
FOR ${item} IN @{check_items}
Run Keyword If ${exist} Should Contain ${all_data} ${item}
... ELSE Should Not Contain ${all_data} ${item}
END
Check Items Match Or Not In List
[Documentation] 在list里检查items数据是否精确匹配
[Arguments] ${all_data} #Mandatory parameters,仅支持传入list,用于精确匹配
... ${check_items} #Mandatory parameters, 如果多于一个请传入list
... ${match}=${True} #{True}表示精确匹配,{False}表示不匹配
... ${sleep_time}=0.2
#usage example:
#@{my_list} Create List yao
#Check Items Match Or Not In List all_data=${column_data} check_items=${my_list} match=${False}
#Check Items Match Or Not In List all_data=${column_data} check_items=${my_list} match=${True}
Log all_data is: ${all_data}
Log check_items is: ${check_items}
Log exist is: ${True}
Log =======================================================================
@{all_data} = Run Keyword If isinstance($all_data,list) Copy List ${all_data}
... ELSE Create List ${all_data}
@{check_items} = Run Keyword If isinstance($check_items,list) Copy List ${check_items}
... ELSE Create List ${check_items}
${action} Set Variable If ${match}==${True} ==
... ${match}==${False} !=
Log ${action}
FOR ${item} IN @{check_items}
FOR ${sub_data} IN @{all_dat
Run Keyword If '${item}' ${action} '${sub_data}' Exit For Loop
END
END
Check Items Exist Or Not In List
[Documentation] 在list里检查items数据是否存在
[Arguments] ${all_data} #Mandatory parameters,仅支持传入list,用于精确匹配或模糊匹配
... ${check_items} #Mandatory parameters, 如果多于一个请传入list
... ${exist}=${True} #{True}表示存在,{False}表示不存在
... ${sleep_time}=0.2
#usage example:
#@{my_list} Create List yao
#Check Items Exist Or Not In List all_data=${column_data} check_items=${my_list} exist=${False}
#Check Items Exist Or Not In List all_data=${column_data} check_items=${my_list} exist=${True}
Log all_data is: ${all_data}
Log check_items is: ${check_items}
Log exist is: ${True}
Log =======================================================================
@{all_data} = Run Keyword If isinstance($all_data,list) Copy List ${all_data}
... ELSE Create List ${all_data}
@{check_items} = Run Keyword If isinstance($check_items,list) Copy List ${check_items}
... ELSE Create List ${check_items}
${action} Set Variable If ${exist}==${True} not in
... ${exist}==${False} in
Log ${action}
FOR ${item} IN @{check_items}
FOR ${sub_data} IN @{all_data}
Run Keyword If '${item}' ${action} '${sub_data}' Fail this's not expected result
END
END
Check Whether Items are selected In Dropdown List
[Documentation] 检查某项或某些项在下拉框中是否已选中或未选中
[Arguments] ${dl_title_locator} #Mandatory parameters,下拉框上部分title的locator, 例如"全部" "创建人账号"等等
... ${check_items} #Mandatory parameters,多个时需传入一个list
... ${title_attribute_name}=${None} #标题文本从哪个属性中提取,请根据源码实际情况选择是否给此值,如果此项为空,表示从标签对中取文本
... ${selected}=${True} #${True}表示被选,${False}表示没被选
... ${sleep_time}=0.2
#usage example:
#Check Whether Items are selected In Dropdown List dl_title_locator=${locator_vars}[任务_创建人账号_标题] check_items=${my_items} selected=${False}
Log dl_title_locator is: ${dl_title_locator}
Log check_items is: ${check_items}
Log title_attribute_name is: ${title_attribute_name}
Log selected is: ${selected}
Log =======================================================================
@{check_items} = Run Keyword If isinstance($check_items,list) Copy List ${check_items}
... ELSE Create List ${check_items}
#${getting_title} Get Element Attribute ${dl_title_locator} ${title_attribute_name}
${getting_title} Run Keyword If '${title_attribute_name}' is not '${None}' Get Element Attribute ${dl_title_locator} ${title_attribute_name}
... ELSE Get Text ${dl_title_locator}
Log ${getting_title}
FOR ${item} IN @{check_items}
Run Keyword If ${selected} Should Contain ${getting_title} ${item}
... ELSE Should Not Contain ${getting_title} ${item}
END
Execute Click Operation For List Exist Items
[Documentation] 对于list存在项执行click操作
[Arguments] ${basic_locator} #Mandatory parameters,给出这些项基本的存在位置
... ${append_locator} #Mandatory parameters,操作项locator,如果多于一个请传入list
... ${commit_locator}=${None} #提交按钮位置, 如果有提交按钮, 请提供此位置
... ${dl_locator}=${None} #下拉框选中, 如果没有提交按钮, 请提供此位置, 目的是关闭下拉框, 否则无法后续操作
... ${sleep_time}=0.2
#usage example:
#Execute Click Operation For List Exist Items basic_locator=${locator_vars}[任务_话术模板_下拉框中文本显示部分] append_locator=${locator_vars}[任务_话术模板_追加list]
Log basic_locator is: ${basic_locator}
Log append_locator is: ${append_locator}
Log commit_locator is: ${commit_locator}
Log dl_locator is: ${dl_locator}
Log =======================================================================
@{append_locator} = Run Keyword If isinstance($append_locator,list) Copy List ${append_locator}
... ELSE Create List ${append_locator}
FOR ${item_locator} IN @{append_locator}
Log ${item_locator}
# ${final_locator} Catenate SEPARATOR= ${basic_locator} ${item_locator}
# Log ${final_locator}
# Click Element ${final_locator}
Click Element ${item_locator}
Sleep ${sleep_time}
END
Sleep ${sleep_time}
Run Keyword If '${commit_locator}' is not '${None}' Click Element ${commit_locator} #提交
... ELSE IF '${dl_locator}' is not '${None}' Click Element ${dl_locator} #点击下拉框选中, 为了让下拉框关闭
Execute Action By Element Attribute
[Documentation] 根据属性值来判断是否执行相应的操作
[Arguments] ${locator} #Mandatory parameters,元素的位置
... ${attribute_name} #Mandatory parameters,元素的属性名称
... ${attribute_value} #Mandatory parameters,期望的属性值
... ${click_object}=Element #Button, Element, Link
... ${sleep_time}=0.1
#usage example:
#Execute Action By Element Attribute
#... locator=//*[@id="templateFlow"]
#... attribute_name=class
#... attribute_value=zc-j-switch active
Log locator is: ${locator}
Log attribute name is: ${attribute_name}
Log attribute value is: ${attribute_value}
Log click object is: ${click_object}
Log =======================================================================
Sleep ${sleep_time}
${get_attr} Get Element Attribute ${locator} ${attribute_name}
Run Keyword If '${get_attr}' != '${attribute_value}' Click ${click_object} ${locator}
Input Text And Check Result
[Documentation] 输入文本后check输入的文本是否存在
[Arguments] ${inputbox_locator} #Mandatory parameters,提示框界面的action按钮locator,例如"确定"、"删除"等
... ${enter_inputbox_page_locator}=${None} #点击它进入到输入界面的locator,例如"创建模板"等
... ${input_text}=test #输入的文本信息
... ${commit_button_locator}=${None} #提交按钮locator,例如:"提交"、"确定"等
... ${error_info}=已经存在
... ${click_object}=Element #Button, Element, Link
... ${sleep_time}=0.3
#usage example:
#Input Text And Check Result
#... enter_inputbox_page_locator=${locator_vars}[话术模板_我的模板_创建模板]
#... inputbox_locator=${locator_vars}[话术模板_我的模板_创建模板_模板名称]
#... input_text=mytest
#... commit_button_locator=${locator_vars}[话术模板_我的模板_创建模板_确定]
Log enter inputbox page locator is: ${enter_inputbox_page_locator}
Log inputbox locator is: ${inputbox_locator}
Log input text is: ${input_text}
Log commit button locator is: ${commit_button_locator}
Log error info is: ${error_info}
Log click object is: ${click_object}
Log =======================================================================
Sleep ${sleep_time}
Run Keyword If '${enter_inputbox_page_locator}' is not '${None}' Click ${click_object} ${enter_inputbox_page_locator}
Sleep ${sleep_time}
Input Text ${inputbox_locator} ${input_text}
Sleep ${sleep_time}
Run Keyword If '${commit_button_locator}' is not '${None}' Click ${click_object} ${commit_button_locator}
${result} Get Text //body
Log ${result}
Run Keyword If '${error_info}' in '''${result}''' Fail input text info already exist, so add failed, please double check
Check Flash Prompt Message
[Documentation] check三秒提示信息是否是预期值
[Arguments] ${flash_prompt_locator} #Mandatory parameters,快闪提示长方形locator
... ${textlink_locator}=${None} #文本link的locator,例如"删除"
... ${button_locator}=${None} #提示框界面的action按钮locator,例如"确定"或"删除"等
... ${excepted_message}=成功
... ${click_object}=Element #Button, Element, Link
... ${sleep_time}=0.3
#usage example:
#Check Flash Prompt Message
#... flash_prompt_locator=xpath=//*[@id="toast-container"]
#... excepted_message=成功
Log textlink locator is: ${textlink_locator}
Log button locator is: ${button_locator}
Log flash prompt locator is: ${flash_prompt_locator}
Log excepted message is: ${excepted_message}
Log click object is: ${click_object}
Log =======================================================================
${final_message} Set Variable
Sleep ${sleep_time}
Run Keyword If '${textlink_locator}' is not '${None}' Click ${click_object} ${textlink_locator}
Sleep ${sleep_time}
Run Keyword If '${button_locator}' is not '${None}' Click ${click_object} ${button_locator}
Sleep ${sleep_time}
${result} Get Text ${flash_prompt_locator}
@{response} Split To Lines ${result}
FOR ${item} IN @{response}
${final_message} Catenate ${final_message} ${item}
END
Log ${final_message}
Run Keyword If '${excepted_message}' not in '${final_message}' Fail check flash prompt message failed
Fetch TemplateId
[Documentation] 获取templated ID
[Arguments] ${basic_url}=http://82.156.243.104:8000/api/6.0.0/
... ${companyId}=companyid_value
... ${headers}=header_value
[return] ${get_templateId}
#usage example:
#${headers} Create Dictionary Authorization=Bearer ${get_token}
#@{get_templateId} Fetch TemplateId basic_url=http://82.156.243.104:8000/api/6.0.0/ companyId=${get_companyId} headers=${headers}
Log ${basic_url}
Log ${companyId}
Log ${headers}
Log =======================================================================
${templateId} Get Json TemplateId Response basic_url=${basic_url} companyId=${companyId} headers=${headers}
Log ${templateId}
${get_message} Get Value From Json ${templateId} $..message
${get_code} Get Value From Json ${templateId} $..code
${get_templateId} Get Value From Json ${templateId} $..templateId
Log ${get_templateId}
Get Table Data For Line Or Current Page
[Documentation] 取得table指定行或当前页数据
[Arguments] ${tbody_locator} #Mandatory parameters,请给table下tbody的locator
... ${line}=${None} #如果想得到第三行数据,输入3即可
... ${new_console}=${True} #新控件第一行为空,需要删除掉,如果是老控件,请给${False}
... ${sleep_time}=2
[Return] ${table_data} #返回的是一个list
#usage example:
#${data} Get Table Data For Line Or Current Page tbody_locator=${locator_vars}[任务_table_tbody]
#${data} Get Table Data For Line Or Current Page line=3 tbody_locator=${locator_vars}[任务_table_tbody]
Log table tbdoy locator: ${tbody_locator}
Log specified line: ${line}
Log =======================================================================
${table_data} Create List
${get_data} Run Keyword If '${line}' is not '${None}' Get Text ${tbody_locator}/tr[${line}]
... ELSE Get Text ${tbody_locator}
${get_data} Set Variable If ${new_console}==${True} and '${line}' is '${None}' Get Slice From List ${get_data} 1
@{data_list} Split String ${get_data} \n
${num} Get Length ${data_list}
FOR ${i} IN RANGE 0 ${num}
Log ${data_list}[${i}]
Append To List ${table_data} ${data_list}[${i}]
END
Log ${table_data}
Check Table Data For Null
[Documentation] 检查表数据是否为空
[Arguments] ${tbody_locator} #Mandatory parameters,请给table下tbody的locator
... ${null_mark}=暂无数据
... ${sleep_time}=1
#usage example:
#${data} Check Table Data For Null
#... tbody_locator=${locator_vars}[任务_table_tbody]
Log tbody_locator is: ${tbody_locator}
Log =======================================================================
Sleep ${sleep_time}
${page_line} Get Table Current Page Line Number tbody_locator=${tbody_locator}
${page_data} Get Text ${tbody_locator}
Run Keyword If ${page_line}==0 and '''${page_data}'''=='${Empty}' Log table data is expected null result
... ELSE IF ${page_line}==1 and '''${page_data}'''=='${null_mark}' Log table data is expected null result
... ELSE Fail table data isn't null
Check Whether Search Getting Table Data Match Column Value
[Documentation] 检查通过搜索得到的表数据是否match列值
[Arguments] ${column1_list} #Mandatory parameters,所需的第一列数据
... ${column2_list} #Mandatory parameters,所需的第二列数据
... ${search_item} #Mandatory parameters,搜索项
... ${sleep_time}=0.2
#usage example:
#Check Whether Search Getting Table Data Match Column Value column1_list=${listDataName} column2_list=${listDataNumber} search_item=3
Log column1_list is: ${column1_list}
Log column2_list is: ${column2_list}
Log search_item is: ${search_item}
Log =======================================================================
${column1_len} Get Length ${column1_list}
${column2_len} Get Length ${column2_list}
Should Be Equal As Integers ${column1_len} ${column2_len}
FOR ${i} IN RANGE 0 ${column1_len}
Log ${column1_list}[${i}]
Log ${column2_list}[${i}]
Run Keyword If '${search_item}' not in '${column1_list}[${i}]' and '${search_item}' not in '${column2_list}[${i}]' Fail data can't match search item, please double check!
END
Get Table Data For All
[Documentation] 取得table全部数据
[Arguments] ${tbody_locator} #Mandatory parameters,请给table下tbody的locator
... ${right_arrow_locator} #Mandatory parameters,翻页右键头, table脚下>的locator
... ${new_console}=${True} #新控件第一行为空,需要删除掉,如果是老控件,请给${False}
... ${click_object}=Element #Button, Element, Link
... ${sleep_time}=2
[Return] ${table_all_data} #返回的是一个list
#usage example:
#${data} Get Table Data For All
#... tbody_locator=${locator_vars}[任务_table_tbody]
#... right_arrow_locator=${locator_vars}[任务_table_右键头]
Log tbody_locator: ${tbody_locator}
Log right_arrow_locator: ${right_arrow_locator}
Log new_console: ${new_console}
Log =======================================================================
${table_all_data} Create List
${page_line} Get Table Current Page Line Number tbody_locator=${tbody_locator}
${total_line} Get Table Total Line Number tbody_locator=${tbody_locator}
${page_number} Evaluate ${total_line}/${page_line}
Convert To Integer ${page_number}
${loop_number} Evaluate ${page_number} + 1
Log ${loop_number}
FOR ${i} IN RANGE 1 ${loop_number}
${page_data} Get Text ${tbody_locator} #得到当前页数据
@{new_page_list} Split To Lines ${page_data}
Log ${new_page_list}
${new_page_list} Set Variable If ${new_console}==${True} Get Slice From List ${new_page_list} 1
${num} Get Length ${new_page_list}
FOR ${j} IN RANGE 0 ${num}
Log ${new_page_list}[${j}]
Append To List ${table_all_data} ${new_page_list}[${j}]
END
Run Keyword If ${i} < ${page_number} Click ${click_object} ${right_arrow_locator} #点击键头进入下一页
Sleep ${sleep_time}
END
Log ${table_all_data}
Get Table Column Number
[Documentation] 取得table总列数
[Arguments] ${table_head_locator} #Mandatory parameters,请给table下表头行tr级的locator,例如://*[@id="autotest_table_table_thead"]/tr
... ${append_locator}=th
... ${sleep_time}=1
[Return] ${column_number}
#usage example:
#${column_number} Get Table Column Number table_head_locator=//*[@id="autotest_table_table_thead"]/tr append_locator=th
Log table_head_locator: ${table_head_locator}
Log =======================================================================
Sleep ${sleep_time}
${final_locator} Catenate SEPARATOR= ${table_head_locator}/ ${append_locator}
Log ${final_locator}
${column_number} Get Element Count ${final_locator}
Log ${column_number}
Get Table Data For Column
[Documentation] 取得table列数据
[Arguments] ${tbody_locator} #Mandatory parameters,请给table下tbody的locator
... ${column}=1 #如果想得到第三列数据,输入3即可
... ${right_arrow_locator}=${None} #翻页右键头, table脚下>的locator,如果需要取当前页以外的数据需要提供此位置, 如果不传该参数,只取当前页的列值
... ${new_console}=${True} #新控件第一行为空,需要删除掉,如果是老控件,请给${False}
... ${the_first_page_locator}=${None} #请给翻页码中第1页位置
... ${sleep_time}=2
[Return] ${column_data} #返回的是一个list
#usage example:
#${column_data} Get Table Data For Column tbody_locator=${locator_vars}[任务_table_tbody] column=9 right_arrow_locator=${locator_vars}[任务_table_右键头]
#${column_data} Get Table Data For Column tbody_locator=${locator_vars}[任务_table_tbody] column=2 right_arrow_locator=${locator_vars}[任务_table_右键头] remove_first_null_value_from_result=${False}
Log tbody_locator is: ${tbody_locator}
Log column is: ${column}
Log right_arrow_locator is: ${right_arrow_locator}
Log the_first_page_locator is: ${the_first_page_locator}
Log new_console is: ${new_console}
Log =======================================================================
Sleep ${sleep_time}
${column_data} Create List
Run Keyword If '${the_first_page_locator}' is not '${None}' Click Element ${the_first_page_locator}
${page_line} Get Table Current Page Line Number tbody_locator=${tbody_locator}
${total_line} Get Table Total Line Number tbody_locator=${tbody_locator}
${page_number} Evaluate ${total_line}/${page_line}
${page_number_new} Convert To Integer ${page_number}
${times_1} Evaluate ${page_number_new} + 1
${times_2} Evaluate ${page_number_new} + 2
${loop_number} Set Variable If ${page_number_new} == ${page_number} ${times_1}
... ${page_number_new} < ${page_number} ${times_2}
${loop_number} Set Variable If '${right_arrow_locator}' is '${None}' 2
... '${right_arrow_locator}' is not '${None}' ${loop_number}
${line_start_number} Set Variable If ${new_console}==${True} 2
... ${new_console}==${False} 1
FOR ${i} IN RANGE 1 ${loop_number}
${page_line} Get Table Current Page Line Number tbody_locator=${tbody_locator}
${page_old_console_line} Evaluate ${page_line} + 1
${page_new_console_line} Evaluate ${page_line} + 2
${page_line} Set Variable If ${new_console}==${True} ${page_new_console_line}
... ${new_console}==${False} ${page_old_console_line}
FOR ${line} IN RANGE ${line_start_number} ${page_line}
${cell_data} Get Text ${tbody_locator}/tr[${line}]/td[${column}] #得到此行此列数据
Log ${cell_data}
Append To List ${column_data} ${cell_data}
END
Run Keyword If '${right_arrow_locator}' is not '${None}' and ${i} < ${page_number} Click Element ${right_arrow_locator} #点击键头进入下一页
Sleep ${sleep_time}
END
Log ${column_data}
Get Table Current Page Line Number
[Documentation] 取得table当前页行数
[Arguments] ${tbody_locator} #Mandatory parameters,请给table下tbody的locator,因下面会用到${tbody_locator}/tr, 所以${tbody_locator}请给xpath格式
... ${new_console}=${True} #新控件第一行为空,需要删除掉,如果是老控件,请给${False}
... ${sleep_time}=2
[Return] ${line_number}
#usage example:
#${page_line} Get Table Current Page Line Number tbody_locator=${tbody_locator}
Log table tbdoy locator: ${tbody_locator}
Log new_console is: ${new_console}
Log =======================================================================
Sleep ${sleep_time}
${line_number} Get Element Count ${tbody_locator}/tr
${temp_page_line} Evaluate ${line_number} - 1
${line_number} Set Variable If ${new_console}==${True} ${temp_page_line}
... ${new_console}==${False} ${line_number}
Get Table Total Line Number
[Documentation] 取得table总行数
[Arguments] ${sleep_time}=2
[Return] ${line_number}
#usage example:
#${total_line} Get Table Total Line Number tbody_locator=${tbody_locator}
Log =======================================================================
${result} Get Text //body
Log ${result}
${match_result} ${line_number} Should Match Regexp ${result} (?is)共\\s+(\\d+)\\s+条
Log ==> get item number is ${line_number}
Select All Or Cancel All In Dropdown List By Title
[Documentation] 通过标题全选或者全取消下拉列表里的所有项
[Arguments] ${dl_locator} #Mandatory parameters,下拉框选中位置
... ${dl_title_locator} #Mandatory parameters,下拉框上部分title的locator, 例如"全部" "创建人账号"等等
... ${title_content} #Mandatory parameters,期望出现的title内容
... ${all_locator} #Mandatory parameters,"全部"或"全选"或其他表示全选位置的locator
... ${title_attribute_name}=${None} #标题文本从哪个属性中提取,请根据源码实际情况选择是否给此值,如果此项为空,表示从标签对中取文本
... ${commit_locator}=${None} #"确定"或"提交"按钮的locator
... ${sleep_time}=0.5
#usage example:
#Select All Or Cancel All In Dropdown List By Title
#... dl_locator=${locator_vars}[任务_创建人账号_选中]
#... dl_title_locator=${locator_vars}[任务_创建人账号_标题]
#... title_content=全部
#... all_locator=${locator_vars}[任务_创建人账号_全部]
#... commit_locator=${locator_vars}[任务_创建人账号_确定]
Log dl_locator is: ${dl_locator}
Log dl_title_locator is: ${dl_title_locator}
Log title_content is: ${title_content}
Log all_locator is: ${all_locator}
Log title_attribute_name is: ${title_attribute_name}
Log commit_locator is: ${commit_locator}
Log =======================================================================
FOR ${i} IN RANGE 2
#${getting_title} Get Element Attribute ${dl_title_locator} ${title_attribute_name}
${getting_title} Run Keyword If '${title_attribute_name}' is not '${None}' Get Element Attribute ${dl_title_locator} ${title_attribute_name}
... ELSE Get Text ${dl_title_locator}
Run Keyword If '${getting_title}' != '${title_content}' Select Mutiple Items From Dropdown List dl_locator=${dl_locator} items_locator=${all_locator} commit_locator=${commit_locator}
... ELSE Exit For Loop
END
Select Single Item From Dropdown List
[Documentation] 从内容不变的下拉列表中选择一项内容
[Arguments] ${dl_locator} #Mandatory parameters,下拉框选中位置
... ${item_locator} #Mandatory parameters,选择项位置
... ${input_locator}=${None} #输入框位置
... ${input_content}=${None} #查询内容,特别说明:尽量不用这种方式,如果要用这种方式,一定要输入完整项,不能只输入部分,因为有些页面上输入部分后源代码中文本会分成二部分,导致匹配不上
... ${sleep_time}=0.2
#usage example:
#Select Single Item From Dropdown List dl_locator=${locator_vars}[呼叫方向_下拉框选中] item_locator=${locator_vars}[呼叫方向_呼出]
#Select Single Item From Dropdown List dl_locator=${locator_vars}[任务_话术模板_选中] item_locator=${locator_vars}[任务_话术模板_tts按键] input_locator=${locator_vars}[任务_话术模板_搜索] input_content=${locator_vars}[任务_话术模板_搜索输入内容]
Log dropdown list locator is: ${dl_locator}
Log input locator is: ${input_locator}
Log input content is: ${input_content}
Log the item to be selected is: ${item_locator}
Log =======================================================================
Click Element ${dl_locator}
Sleep ${sleep_time}
Run Keyword If '${input_locator}' is not '${None}' and '${input_content}' is not '${None}' Input Text ${input_locator} ${input_content} #在输入框中输入查询内容
Sleep ${sleep_time}
Click Element ${item_locator}
Write Vars Into File
[Documentation] 把变量写入文件
[Arguments] ${vars}=vars
... ${file}=file_with_vars.txt
Create File ${EXECDIR}/${file} ${vars}
Get Vars From File
[Documentation] 从文件里得到变量
[Arguments] ${file}=file
[Return] ${contents}
${contents}= Get File ${EXECDIR}/${file}
Upload Local File
[Documentation] 上传文件
[Arguments] ${batch_import_button_locator} #Mandatory parameters,批量导入按钮locator
... ${check_info} #Mandatory parameters,通过文本判断是否进入预期页面
... ${upload_button_locator} #Mandatory parameters,上传文件的locator
... ${file} #Mandatory parameters,上传的文件可以是一个,也可以是多个,如果是多个请传入文件list
... ${import_button_locator} #Mandatory parameters,导入按钮的locator
... ${check_info_2} #Mandatory parameters,通过文本判断是否进入预期页面
... ${confirm_button_locator} #Mandatory parameters,确认按钮的locator
... ${sleep_time}=0.5
Log =======================================================================
@{file} = Run Keyword If isinstance($file,list) Copy List ${file}
... ELSE Create List ${file}
Log 批量导入的位置是: ${batch_import_button_locator}
Log 上传文件的位置是:${upload_button_locator}
Log 上传的文件是: ${file}
Log 导入按钮的位置是:${import_button_locator}
Log 确认按钮的位置是:${confirm_button_locator}
FOR ${index} IN @{file}
Sleep ${sleep_time}
Click Element ${batch_import_button_locator} #选中"批量导入"
Wait Until Page Contains ${check_info} 60s #等待导入界面出现并确认信息
choose file ${upload_button_locator} ${index} #输入需要上传的文件
Sleep ${sleep_time}
Capture Page Screenshot
Click Element ${import_button_locator} #点击导入按钮
Wait Until Page Contains ${check_info_2} 60s
Sleep ${sleep_time}
Click Element ${confirm_button_locator} #点击确认按钮
Sleep ${sleep_time}
END
Write Url And Session Into File
[Documentation] 得到url和session id并写入文件
[Arguments] ${file}=file_with_vars.txt
${conn_url} ${session_id}= Return Driver Props
Write Vars Into File vars=${conn_url},${session_id} file=${file}
Debug Mode
[Documentation] Debug Mode
[Arguments] ${file}=file_with_vars.txt
... ${browser}=chrome
${vars_content}= Get Vars From File file=${file}
@{items} = Split String ${vars_content} ,
Log conn_url is : ${items}[0]
Log session_id is : ${items}[1]
Open Browser about:about remote_url=${items}[0] browser=${browser}
Set Driver Session ID ${items}[1]
Clear Text Information
[Documentation] 删除已存在的文本信息
[Arguments] ${locator} #Mandatory parameters,清除位置的locator
... ${count}=10 #退格的次数,退格一次删除一个字符
Log =======================================================================
Log input locator is : ${locator}
FOR ${index} IN RANGE 0 ${count}
Press Keys ${locator} \ue003
END
Select Mutiple Items From Dropdown List
[Documentation] 从内容不可变的下拉列表中选择一项或多项内容
[Arguments] ${dl_locator} #Mandatory parameters,下拉框位置
... ${items_locator} #Mandatory parameters,选择项位置,如果多于一个请传入list
... ${input_locator}=${None} #输入框位置
... ${input_content}=${None} #查询内容
... ${commit_locator}=${None} #提交按钮位置
... ${sleep_time}=0.3
#usage example:
#Select Mutiple Items From Dropdown List dl_locator=${dl_locator} items_locator=${all_locator} commit_locator=${commit_locator}
Log 下拉框位置: ${dl_locator}
Log 输入框位置: ${input_locator}
Log 查询内容: ${input_content}
Log 选择项位置: ${items_locator}
Log 提交按钮位置: ${commit_locator}
Log =======================================================================
@{items_locator} = Run Keyword If isinstance($items_locator,list) Copy List ${items_locator}
... ELSE Create List ${items_locator}
Click Element ${dl_locator} #选中多选下拉框
Sleep ${sleep_time}
Run Keyword If '${input_locator}' is not '${None}' and '${input_content}' is not '${None}' Input Text ${input_locator} ${input_content} #在输入框中输入查询内容
Sleep ${sleep_time}
FOR ${item} IN @{items_locator} #选择所选项
Click Element ${item}
END
Capture Page Screenshot
Sleep ${sleep_time}
Run Keyword If '${commit_locator}' is not '${None}' Click Element ${commit_locator} #提交
... ELSE Click Element ${dl_locator}
#Set customized Date Or Time
# [Documentation] 设置日历的开始日期时间和结束日期时间
# [Arguments] ${customize_locator} #Mandatory parameters,"自定义"选项位置
# ... ${start_locator} #Mandatory parameters,开始日期或时间输入位置
# ... ${end_locator} #Mandatory parameters,结束日期或时间输入位置
# ... ${input_start_date_or_time} #Mandatory parameters,输入开始日期和时间,例如2011-01-01, 2011-01-01 00:00
# ... ${input_end_date_or_time} #Mandatory parameters,输入结束日期和时间,例如2018-01-01, 2018-01-01 00:00
# ... ${commit_button_locator} #Mandatory parameters,确定按钮位置
# ... ${sleep_time}=0.2
#
# Log customize_locator is: ${customize_locator}
# Log start_locator is: ${start_locator}
# log end_locator is: ${end_locator}
# log input_start_date_or_time is: ${input_start_date_or_time}
# log input_end_date_or_time is: ${input_end_date_or_time}
# log commit_button_locator is: ${commit_button_locator}
# Log =======================================================================
#
# Click Element ${customize_locator} #点开日历设置
# Sleep ${sleep_time}
#
# Clear Element Text ${start_locator}
# Sleep ${sleep_time}
#
# Click Element ${start_locator} #选中开始位置
# Sleep ${sleep_time}
#
# Input Text ${start_locator} ${input_start_date_and_time} #输入开始日期和时间
# Sleep ${sleep_time}
#
# Input Text ${end_locator} ${input_end_date_and_time} #输入开始日期和时间
# Sleep ${sleep_time}
#
# Click Element ${commit_locator} #确定提交
Set Calendar From Start To End By Input Date And Time
[Documentation] 设置日历的开始日期时间和结束日期时间
[Arguments] ${clear_locator} #Mandatory parameters,日期控件清除位置
... ${calendar_locator} #Mandatory parameters,日期控件下拉框位置
... ${start_locator} #Mandatory parameters,开始日期输入位置
... ${end_locator} #Mandatory parameters,结束日期输入位置
... ${input_start_date_and_time} #Mandatory parameters,输入开始日期和时间,例如2011-01-01 00:00
... ${input_end_date_and_time} #Mandatory parameters,输入结束日期和时间,例如2018-01-01 00:00
... ${commit_locator} #Mandatory parameters,确定按钮位置
... ${sleep_time}=0.2
Log clear_locator is: ${clear_locator}
Log calendar_locator is: ${calendar_locator}
log start_locator is: ${start_locator}
log end_locator is: ${end_locator}
log input_start_date_and_time is: ${input_start_date_and_time}
log input_end_date_and_time is: ${input_end_date_and_time}
log commit_locator is: ${commit_locator}
Log =======================================================================
Click Element ${clear_locator} #清除日历
Sleep ${sleep_time}
Click Element ${calendar_locator} #点开日历
Sleep ${sleep_time}
Click Element ${start_locator} #选中开始位置
Sleep ${sleep_time}
Input Text ${start_locator} ${input_start_date_and_time} #输入开始日期和时间
Sleep ${sleep_time}
Input Text ${end_locator} ${input_end_date_and_time} #输入开始日期和时间
Sleep ${sleep_time}
Click Element ${commit_locator} #确定提交
Create Task By Curl
[Documentation] Create Task By Curl
[Arguments] ${curl_path}=C:\\tools
... ${protocol}=http
... ${ip}=82.156.243.104:8000
... ${version}=6.0.0
... ${head_Content_Type}=Content-Type:application/json
... ${json_file}=C:\\yaoyao====\\file.json
... ${companyId}=companyidvalue
... ${token}=tokenvalue
Run ${curl_path}\\curl.exe -X POST -H "${head_Content_Type}" -H "Authorization:Bearer ${token}" -d "@${json_file}" "${protocol}://${ip}/api/${version}/companies/${companyId}/tasks" > ${curl_path}\\tempfile_task
${json} Get File ${curl_path}\\tempfile_task
${js} Convert String to JSON ${json}
${get_message} Get Value From Json ${js} $..message
${get_code} Get Value From Json ${js} $..code
Run Keyword If ${get_code}[0] != 200 Fail return interface info failed, return code isn't 200, is ${get_code}[0]
Fetch TemplateId By Curl
[Documentation] Fetch TemplateId By Curl
[Arguments] ${curl_path}=C:\\tools
... ${protocol}=http
... ${ip}=82.156.243.104:8000
... ${version}=6.0.0
... ${companyId}=companyidvalue
... ${token}=tokenvalue
[return] ${get_templateId}
Run ${curl_path}\\curl.exe -X GET -H "Authorization:Bearer ${token}" "${protocol}://${ip}/api/${version}/companies/${companyId}/templates" > ${curl_path}\\tempfile_templateId
${json} Get File ${curl_path}\\tempfile_templateId
${js} Convert String to JSON ${json}
${get_message} Get Value From Json ${js} $..message
${get_code} Get Value From Json ${js} $..code
Run Keyword If ${get_code}[0] != 200 Fail return interface info failed, return code isn't 200, is ${get_code}[0]
${get_templateId} Get Value From Json ${js} $..templateId
Log ${get_templateId}
Fetch CompanyId By Curl
[Documentation] Fetch CompanyId By Curl
[Arguments] ${curl_path}=C:\\tools
... ${protocol}=http
... ${ip}=82.156.243.104:8000
... ${version}=6.0.0
... ${head_Content_Type}=Content-Type:application/json
... ${username}=test_user
... ${password}=123456
[return] ${get_companyId}[0]
Run ${curl_path}\\curl.exe -X GET -H "${head_Content_Type}" --data "{\\"userPassWord\\":\\"${password}\\"}" "${protocol}://${ip}/api/${version}/reference-icall-users/${username}" > ${curl_path}\\tempfile_companyId
${json} Get File ${curl_path}\\tempfile_companyId
${js} Convert String to JSON ${json}
${get_message} Get Value From Json ${js} $..message
${get_code} Get Value From Json ${js} $..code
Run Keyword If ${get_code}[0] != 200 Fail return interface info failed, return code isn't 200, is ${get_code}[0]
${get_companyId} Get Value From Json ${js} $..companyId #${get_companyId} is list, not string
Fetch Token By Curl
[Documentation] Fetch Token By Curl
[Arguments] ${curl_path}=C:\\tools
... ${protocol}=http
... ${ip}=82.156.243.104:8000
... ${version}=6.0.0
... ${username}=test_user
[return] ${get_token}[0]
Run ${curl_path}\\curl.exe -X GET "${protocol}://${ip}/api/${version}/consumers/${username}" > ${curl_path}\\tempfile_apikey_and_apisecret
${json} Get File ${curl_path}\\tempfile_apikey_and_apisecret
${js} Convert String to JSON ${json}
${get_message} Get Value From Json ${js} $..message
${get_code} Get Value From Json ${js} $..code
Run Keyword If ${get_code}[0] != 200 Fail return interface info failed, return code isn't 200, is ${get_code}[0]
${get_apikey} Get Value From Json ${js} $..apiKey
${get_apisecret} Get Value From Json ${js} $..apiSecret
Run ${curl_path}\\curl.exe -X GET "${protocol}://${ip}/api/${version}/tokens?apiKey=${get_apikey}[0]&apiSecret=${get_apisecret}[0]" > ${curl_path}\\tempfile_token
${json} Get File ${curl_path}\\tempfile_token
${js} Convert String to JSON ${json}
${get_message} Get Value From Json ${js} $..message
${get_code} Get Value From Json ${js} $..code
Run Keyword If ${get_code}[0] != 200 Fail return interface info failed, return code isn't 200, is ${get_code}[0]
${get_token} Get Value From Json ${js} $..access_token #${get_token} is list, not string
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 4.0.3 (Python 3.8.8 on win32)" generated="20210629 17:07:24.597" rpa="false" schemaversion="2">
<suite id="s1" name="Callcenter Callreports V1 Fun1" source="D:\word\自动化\script_template\callcenter_callreports_v1_fun1.robot">
<kw name="Run Keywords" library="BuiltIn" type="SETUP">
<arg>My Suite Setup</arg>
<doc>Executes all the given keywords in a sequence.</doc>
<kw name="My Suite Setup" library="callcenter_callreports_v1_setup_teardown">
<kw name="Log" library="BuiltIn">
<arg>========================== My Suite Setup Start ==========================</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210629 17:07:24.943" level="INFO">========================== My Suite Setup Start ==========================</msg>
<status status="PASS" starttime="20210629 17:07:24.943" endtime="20210629 17:07:24.943"/>
</kw>
<kw name="Fetch Json Vars" library="public_python_keywords">
<var>&amp;{gbl_vars}</var>
<arg>file=D:\\word\\自动化\\script_template\\json_file\\call_center_vars.json</arg>
<msg timestamp="20210629 17:07:24.944" level="INFO">&amp;{gbl_vars} = { log_level=DEBUG | url=http://test.sobot.com/console/login | browser=gc | email=mjmj@zhichi.com | password=sobot1234 | w_size_hor_pixels=1920 | w_size_ver_pixels=1080 | time={'hour': 11, 'minute': '2...</msg>
<status status="PASS" starttime="20210629 17:07:24.943" endtime="20210629 17:07:24.944"/>
</kw>
<kw name="Set Global Variable" library="BuiltIn">
<arg>${gbl_vars}</arg>
<doc>Makes a variable available globally in all tests and suites.</doc>
<msg timestamp="20210629 17:07:24.944" level="INFO">${gbl_vars} = {'log_level': 'DEBUG', 'url': 'http://test.sobot.com/console/login', 'browser': 'gc', 'email': 'mjmj@zhichi.com', 'password': 'sobot1234', 'w_size_hor_pixels': 1920, 'w_size_ver_pixels': 1080, 'time':...</msg>
<status status="PASS" starttime="20210629 17:07:24.944" endtime="20210629 17:07:24.944"/>
</kw>
<kw name="Fetch Json Vars" library="public_python_keywords">
<var>&amp;{locator_vars}</var>
<arg>file=D:\\word\\自动化\\script_template\\json_file\\call_center_locator_vars.json</arg>
<msg timestamp="20210629 17:07:24.945" level="INFO">&amp;{locator_vars} = { 我知道了=xpath=//button[text()="我知道了"] | 智客=xpath=//div[@data-title="智客"] | 首页=xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a | 呼叫中心=x、】path=//*[@id="root"]/div/div[2]/ul/li[3]/a | 企微智客=xpath=//*[@id="root...</msg>
<status status="PASS" starttime="20210629 17:07:24.944" endtime="20210629 17:07:24.945"/>
</kw>
<kw name="Set Global Variable" library="BuiltIn">
<arg>${locator_vars}</arg>
<doc>Makes a variable available globally in all tests and suites.</doc>
<msg timestamp="20210629 17:07:24.947" level="INFO">${locator_vars} = {'我知道了': 'xpath=//button[text()="我知道了"]', '智客': 'xpath=//div[@data-title="智客"]', '首页': 'xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a', '呼叫中心': 'x、】path=//*[@id="root"]/div/div[2]/ul/li[3]/a', '企微智客': '...</msg>
<status status="PASS" starttime="20210629 17:07:24.945" endtime="20210629 17:07:24.947"/>
</kw>
<kw name="Set Log Level" library="BuiltIn">
<arg>${gbl_vars}[log_level]</arg>
<doc>Sets the log threshold to the specified level and returns the old level.</doc>
<msg timestamp="20210629 17:07:24.947" level="INFO">Log level changed from INFO to DEBUG.</msg>
<status status="PASS" starttime="20210629 17:07:24.947" endtime="20210629 17:07:24.947"/>
</kw>
<kw name="Close All Browsers" library="SeleniumLibrary">
<doc>Closes all open browsers and resets the browser cache.</doc>
<msg timestamp="20210629 17:07:24.948" level="DEBUG">Closing all browsers.</msg>
<status status="PASS" starttime="20210629 17:07:24.947" endtime="20210629 17:07:24.948"/>
</kw>
<kw name="Open Browser And Set Size" library="public_robot_keywords">
<arg>url=${gbl_vars}[url]</arg>
<arg>set_window_size=${True}</arg>
<arg>set_max_browser_window=${True}</arg>
<doc>打开指定类型的浏览器,并设置窗口大小</doc>
<kw name="Open Browser" library="SeleniumLibrary">
<arg>${url}</arg>
<arg>${browser}</arg>
<doc>Opens a new browser instance to the optional ``url``.</doc>
<msg timestamp="20210629 17:07:24.949" level="INFO">Opening browser 'gc' to base url 'http://test.sobot.com/console/login'.</msg>
<msg timestamp="20210629 17:07:25.518" level="DEBUG">POST http://127.0.0.1:64650/session {"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "platformName": "any", "goog:chromeOptions": {"extensions": [], "args": []}}}, "desiredCapabilities": {"browserName": "chrome", "version": "", "platform": "ANY", "goog:chromeOptions": {"extensions": [], "args": []}}}</msg>
<msg timestamp="20210629 17:07:25.519" level="DEBUG">Starting new HTTP connection (1): 127.0.0.1:64650</msg>
<msg timestamp="20210629 17:07:26.367" level="DEBUG">http://127.0.0.1:64650 "POST /session HTTP/1.1" 200 753</msg>
<msg timestamp="20210629 17:07:26.368" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:26.368" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/timeouts {"script": 5000}</msg>
<msg timestamp="20210629 17:07:26.369" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/timeouts HTTP/1.1" 200 14</msg>
<msg timestamp="20210629 17:07:26.370" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:26.370" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/timeouts {"implicit": 0}</msg>
<msg timestamp="20210629 17:07:26.372" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/timeouts HTTP/1.1" 200 14</msg>
<msg timestamp="20210629 17:07:26.372" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:26.373" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/url {"url": "http://test.sobot.com/console/login"}</msg>
<msg timestamp="20210629 17:07:29.560" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/url HTTP/1.1" 200 14</msg>
<msg timestamp="20210629 17:07:29.561" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:29.561" level="DEBUG">Opened browser with session id 407a09cff384b7e51ac39259fa4db44c.</msg>
<status status="PASS" starttime="20210629 17:07:24.949" endtime="20210629 17:07:29.561"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${set_window_size}</arg>
<arg>Set Window Size</arg>
<arg>${hor_pixels}</arg>
<arg>${ver_pixels}</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Set Window Size" library="SeleniumLibrary">
<arg>${hor_pixels}</arg>
<arg>${ver_pixels}</arg>
<doc>Sets current windows size to given ``width`` and ``height``.</doc>
<msg timestamp="20210629 17:07:29.565" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/window/rect {"x": null, "y": null, "width": 1920, "height": 1080}</msg>
<msg timestamp="20210629 17:07:29.763" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/window/rect HTTP/1.1" 200 51</msg>
<msg timestamp="20210629 17:07:29.764" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210629 17:07:29.564" endtime="20210629 17:07:29.764"/>
</kw>
<status status="PASS" starttime="20210629 17:07:29.562" endtime="20210629 17:07:29.764"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${set_max_browser_window}</arg>
<arg>Maximize Browser Window</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Maximize Browser Window" library="SeleniumLibrary">
<doc>Maximizes current browser window.</doc>
<msg timestamp="20210629 17:07:29.766" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/window/maximize {}</msg>
<msg timestamp="20210629 17:07:29.988" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/window/maximize HTTP/1.1" 200 51</msg>
<msg timestamp="20210629 17:07:29.989" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210629 17:07:29.765" endtime="20210629 17:07:29.989"/>
</kw>
<status status="PASS" starttime="20210629 17:07:29.765" endtime="20210629 17:07:29.990"/>
</kw>
<status status="PASS" starttime="20210629 17:07:24.948" endtime="20210629 17:07:29.990"/>
</kw>
<kw name="Logon Soboten" library="public_robot_keywords">
<arg>logon_type=0</arg>
<arg>email=${gbl_vars}[email]</arg>
<arg>password=${gbl_vars}[password]</arg>
<doc>根据参数logon_type值,登录相应的智齿系统</doc>
<kw name="Run Keyword If" library="BuiltIn">
<arg>'@' not in "${email}" or '.' not in "${email}"</arg>
<arg>Fail</arg>
<arg>email format is wrong, please double check!</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210629 17:07:29.992" endtime="20210629 17:07:29.993"/>
</kw>
<kw name="Get Length" library="BuiltIn">
<var>${password_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<msg timestamp="20210629 17:07:29.993" level="INFO">Length is 9</msg>
<msg timestamp="20210629 17:07:29.993" level="INFO">${password_length} = 9</msg>
<status status="PASS" starttime="20210629 17:07:29.993" endtime="20210629 17:07:29.993"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${password_length} &lt; 8</arg>
<arg>Fail</arg>
<arg>Password is less than 8 digits</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210629 17:07:29.994" endtime="20210629 17:07:29.994"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${logon_type}&gt;0</arg>
<arg>Click Element</arg>
<arg>xpath=//div[text()="登录"]</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210629 17:07:29.994" endtime="20210629 17:07:29.994"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${logon_type}==0</arg>
<arg>Logon Test Environment</arg>
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<arg>ELSE IF</arg>
<arg>${logon_type}==1</arg>
<arg>Logon Cloud Customer Service</arg>
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<arg>ELSE IF</arg>
<arg>${logon_type}==2</arg>
<arg>Logon Cloud Outgoing Call</arg>
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Logon Test Environment" library="public_robot_keywords">
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<doc>登录智齿测试系统</doc>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>登录智齿客服,开启智慧客服新篇章</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210629 17:07:29.996" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//*[contains(., '\u767b\u5f55\u667a\u9f7f\u5ba2\u670d\uff0c\u5f00\u542f\u667a\u6167\u5ba2\u670d\u65b0\u7bc7\u7ae0')]"}</msg>
<msg timestamp="20210629 17:07:30.010" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 722</msg>
<msg timestamp="20210629 17:07:30.010" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210629 17:07:29.996" endtime="20210629 17:07:30.011"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>id=userEmail</arg>
<arg>${email}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210629 17:07:30.011" level="INFO">Typing text 'mjmj@zhichi.com' into text field 'id=userEmail'.</msg>
<msg timestamp="20210629 17:07:30.011" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "css selector", "value": "[id=\"userEmail\"]"}</msg>
<msg timestamp="20210629 17:07:30.018" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210629 17:07:30.018" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:30.019" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/element/8dc37168-6c19-4fe0-80b4-5cb89c1e78d4/clear {"id": "8dc37168-6c19-4fe0-80b4-5cb89c1e78d4"}</msg>
<msg timestamp="20210629 17:07:30.046" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/element/8dc37168-6c19-4fe0-80b4-5cb89c1e78d4/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210629 17:07:30.046" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:30.046" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/element/8dc37168-6c19-4fe0-80b4-5cb89c1e78d4/value {"text": "mjmj@zhichi.com", "value": ["m", "j", "m", "j", "@", "z", "h", "i", "c", "h", "i", ".", "c", "o", "m"], "id": "8dc37168-6c19-4fe0-80b4-5cb89c1e78d4"}</msg>
<msg timestamp="20210629 17:07:30.124" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/element/8dc37168-6c19-4fe0-80b4-5cb89c1e78d4/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210629 17:07:30.124" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210629 17:07:30.011" endtime="20210629 17:07:30.124"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>id=userPassword</arg>
<arg>${password}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210629 17:07:30.127" level="INFO">Typing text 'sobot1234' into text field 'id=userPassword'.</msg>
<msg timestamp="20210629 17:07:30.127" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "css selector", "value": "[id=\"userPassword\"]"}</msg>
<msg timestamp="20210629 17:07:30.136" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210629 17:07:30.137" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:30.137" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/element/6fe5fe3f-87b7-425a-8fd2-41d3fa74224f/clear {"id": "6fe5fe3f-87b7-425a-8fd2-41d3fa74224f"}</msg>
<msg timestamp="20210629 17:07:30.164" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/element/6fe5fe3f-87b7-425a-8fd2-41d3fa74224f/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210629 17:07:30.165" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:30.165" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/element/6fe5fe3f-87b7-425a-8fd2-41d3fa74224f/value {"text": "sobot1234", "value": ["s", "o", "b", "o", "t", "1", "2", "3", "4"], "id": "6fe5fe3f-87b7-425a-8fd2-41d3fa74224f"}</msg>
<msg timestamp="20210629 17:07:30.232" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/element/6fe5fe3f-87b7-425a-8fd2-41d3fa74224f/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210629 17:07:30.233" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210629 17:07:30.125" endtime="20210629 17:07:30.233"/>
</kw>
<kw name="Click Button" library="SeleniumLibrary">
<arg>xpath=//button[text()="登 录"]</arg>
<doc>Clicks the button identified by ``locator``.</doc>
<msg timestamp="20210629 17:07:30.233" level="INFO">Clicking button 'xpath=//button[text()="登 录"]'.</msg>
<msg timestamp="20210629 17:07:30.234" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u767b \u5f55\"]"}</msg>
<msg timestamp="20210629 17:07:30.243" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210629 17:07:30.244" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:30.244" level="DEBUG">GET http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/element/44fab275-708e-44a0-9824-d3168ef7fd48/name {"id": "44fab275-708e-44a0-9824-d3168ef7fd48"}</msg>
<msg timestamp="20210629 17:07:30.247" level="DEBUG">http://127.0.0.1:64650 "GET /session/407a09cff384b7e51ac39259fa4db44c/element/44fab275-708e-44a0-9824-d3168ef7fd48/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210629 17:07:30.247" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:30.247" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u767b \u5f55\"]"}</msg>
<msg timestamp="20210629 17:07:30.252" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210629 17:07:30.252" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:30.253" level="DEBUG">GET http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/element/44fab275-708e-44a0-9824-d3168ef7fd48/name {"id": "44fab275-708e-44a0-9824-d3168ef7fd48"}</msg>
<msg timestamp="20210629 17:07:30.256" level="DEBUG">http://127.0.0.1:64650 "GET /session/407a09cff384b7e51ac39259fa4db44c/element/44fab275-708e-44a0-9824-d3168ef7fd48/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210629 17:07:30.256" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:30.256" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/element/44fab275-708e-44a0-9824-d3168ef7fd48/click {"id": "44fab275-708e-44a0-9824-d3168ef7fd48"}</msg>
<msg timestamp="20210629 17:07:30.315" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/element/44fab275-708e-44a0-9824-d3168ef7fd48/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210629 17:07:30.315" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210629 17:07:30.233" endtime="20210629 17:07:30.315"/>
</kw>
<status status="PASS" starttime="20210629 17:07:29.995" endtime="20210629 17:07:30.316"/>
</kw>
<status status="PASS" starttime="20210629 17:07:29.995" endtime="20210629 17:07:30.316"/>
</kw>
<status status="PASS" starttime="20210629 17:07:29.990" endtime="20210629 17:07:30.316"/>
</kw>
<kw name="Wait Until Element Is Enabled" library="SeleniumLibrary">
<arg>${locator_vars}[我知道了]</arg>
<arg>60s</arg>
<doc>Waits until the element ``locator`` is enabled.</doc>
<msg timestamp="20210629 17:07:30.317" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:30.339" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:30.339" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:30.551" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:30.557" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:30.558" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:30.764" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:30.769" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:30.769" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:30.978" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:30.984" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:30.984" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:31.192" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:31.308" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:31.308" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:31.512" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:31.519" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:31.519" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:31.726" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:31.731" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:31.731" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:31.941" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:31.949" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:31.949" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:32.155" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:32.160" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:32.161" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:32.374" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:32.380" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:32.380" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:32.593" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:32.599" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:32.599" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:32.810" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:32.817" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:32.817" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:33.028" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:33.162" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:33.162" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:33.377" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:33.385" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:33.385" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:33.593" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:33.599" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:33.600" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:33.810" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:33.814" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:33.814" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:34.025" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:34.032" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:34.032" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:34.241" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:34.246" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:34.246" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:34.460" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:34.463" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:34.463" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:34.675" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:34.683" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:34.683" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:34.890" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:34.895" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:34.895" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:35.106" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:35.113" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:35.113" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:35.323" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:35.328" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:35.328" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:35.539" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:35.544" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:35.544" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:35.756" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:35.762" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:35.763" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:35.970" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:35.976" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:35.976" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:36.187" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:36.192" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:36.192" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:36.404" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:36.409" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:36.409" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:36.618" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:36.622" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:36.622" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:36.823" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:36.828" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:36.828" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:37.038" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:37.043" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:37.044" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:37.258" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:37.267" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210629 17:07:37.267" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:37.267" level="DEBUG">GET http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/element/1a81875e-57c2-4e55-8567-32ecfe64ee5b/enabled {"id": "1a81875e-57c2-4e55-8567-32ecfe64ee5b"}</msg>
<msg timestamp="20210629 17:07:37.274" level="DEBUG">http://127.0.0.1:64650 "GET /session/407a09cff384b7e51ac39259fa4db44c/element/1a81875e-57c2-4e55-8567-32ecfe64ee5b/enabled HTTP/1.1" 200 14</msg>
<msg timestamp="20210629 17:07:37.274" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:37.274" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/execute/sync {"script": "return (function(){return function(){var d=this;function f(a){return\"string\"==typeof a};function h(a,b){this.code=a;this.a=l[a]||m;this.message=b||\"\";a=this.a.replace(/((?:^|\\s+)[a-z])/g,function(a){return a.toUpperCase().replace(/^[\\s\\xa0]+/g,\"\")});b=a.length-5;if(0&gt;b||a.indexOf(\"Error\",b)!=b)a+=\"Error\";this.name=a;a=Error(this.message);a.name=this.name;this.stack=a.stack||\"\"}\n(function(){var a=Error;function b(){}b.prototype=a.prototype;h.b=a.prototype;h.prototype=new b;h.prototype.constructor=h;h.a=function(b,c,g){for(var e=Array(arguments.length-2),k=2;k&lt;arguments.length;k++)e[k-2]=arguments[k];return a.prototype[c].apply(b,e)}})();var m=\"unknown error\",l={15:\"element not selectable\",11:\"element not visible\"};l[31]=m;l[30]=m;l[24]=\"invalid cookie domain\";l[29]=\"invalid element coordinates\";l[12]=\"invalid element state\";l[32]=\"invalid selector\";l[51]=\"invalid selector\";\nl[52]=\"invalid selector\";l[17]=\"javascript error\";l[405]=\"unsupported operation\";l[34]=\"move target out of bounds\";l[27]=\"no such alert\";l[7]=\"no such element\";l[8]=\"no such frame\";l[23]=\"no such window\";l[28]=\"script timeout\";l[33]=\"session not created\";l[10]=\"stale element reference\";l[21]=\"timeout\";l[25]=\"unable to set cookie\";l[26]=\"unexpected alert open\";l[13]=m;l[9]=\"unknown command\";h.prototype.toString=function(){return this.name+\": \"+this.message};var n;a:{var p=d.navigator;if(p){var q=p.userAgent;if(q){n=q;break a}}n=\"\"}function r(a){return-1!=n.indexOf(a)};function t(a,b){for(var e=a.length,c=f(a)?a.split(\"\"):a,g=0;g&lt;e;g++)g in c&amp;&amp;b.call(void 0,c[g],g,a)};function v(){return r(\"iPhone\")&amp;&amp;!r(\"iPod\")&amp;&amp;!r(\"iPad\")};function w(){return(r(\"Chrome\")||r(\"CriOS\"))&amp;&amp;!r(\"Edge\")};var x=r(\"Opera\"),y=r(\"Trident\")||r(\"MSIE\"),z=r(\"Edge\"),A=r(\"Gecko\")&amp;&amp;!(-1!=n.toLowerCase().indexOf(\"webkit\")&amp;&amp;!r(\"Edge\"))&amp;&amp;!(r(\"Trident\")||r(\"MSIE\"))&amp;&amp;!r(\"Edge\"),aa=-1!=n.toLowerCase().indexOf(\"webkit\")&amp;&amp;!r(\"Edge\");function B(){var a=d.document;return a?a.documentMode:void 0}var C;\na:{var D=\"\",E=function(){var a=n;if(A)return/rv\\:([^\\);]+)(\\)|;)/.exec(a);if(z)return/Edge\\/([\\d\\.]+)/.exec(a);if(y)return/\\b(?:MSIE|rv)[: ]([^\\);]+)(\\)|;)/.exec(a);if(aa)return/WebKit\\/(\\S+)/.exec(a);if(x)return/(?:Version)[ \\/]?(\\S+)/.exec(a)}();E&amp;&amp;(D=E?E[1]:\"\");if(y){var F=B();if(null!=F&amp;&amp;F&gt;parseFloat(D)){C=String(F);break a}}C=D}var G;var H=d.document;G=H&amp;&amp;y?B()||(\"CSS1Compat\"==H.compatMode?parseInt(C,10):5):void 0;var ba=r(\"Firefox\"),ca=v()||r(\"iPod\"),da=r(\"iPad\"),I=r(\"Android\")&amp;&amp;!(w()||r(\"Firefox\")||r(\"Opera\")||r(\"Silk\")),ea=w(),J=r(\"Safari\")&amp;&amp;!(w()||r(\"Coast\")||r(\"Opera\")||r(\"Edge\")||r(\"Silk\")||r(\"Android\"))&amp;&amp;!(v()||r(\"iPad\")||r(\"iPod\"));function K(a){return(a=a.exec(n))?a[1]:\"\"}(function(){if(ba)return K(/Firefox\\/([0-9.]+)/);if(y||z||x)return C;if(ea)return v()||r(\"iPad\")||r(\"iPod\")?K(/CriOS\\/([0-9.]+)/):K(/Chrome\\/([0-9.]+)/);if(J&amp;&amp;!(v()||r(\"iPad\")||r(\"iPod\")))return K(/Version\\/([0-9.]+)/);if(ca||da){var a=/Version\\/(\\S+).*Mobile\\/(\\S+)/.exec(n);if(a)return a[1]+\".\"+a[2]}else if(I)return(a=K(/Android\\s+([0-9.]+)/))?a:K(/Version\\/([0-9.]+)/);return\"\"})();var L,M=function(){if(!A)return!1;var a=d.Components;if(!a)return!1;try{if(!a.classes)return!1}catch(g){return!1}var b=a.classes,a=a.interfaces,e=b[\"@mozilla.org/xpcom/version-comparator;1\"].getService(a.nsIVersionComparator),c=b[\"@mozilla.org/xre/app-info;1\"].getService(a.nsIXULAppInfo).version;L=function(a){e.compare(c,\"\"+a)};return!0}(),N=y&amp;&amp;!(8&lt;=Number(G)),fa=y&amp;&amp;!(9&lt;=Number(G));I&amp;&amp;M&amp;&amp;L(2.3);I&amp;&amp;M&amp;&amp;L(4);J&amp;&amp;M&amp;&amp;L(6);var ga={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1},O={IMG:\" \",BR:\"\\n\"};function P(a,b,e){if(!(a.nodeName in ga))if(3==a.nodeType)e?b.push(String(a.nodeValue).replace(/(\\r\\n|\\r|\\n)/g,\"\")):b.push(a.nodeValue);else if(a.nodeName in O)b.push(O[a.nodeName]);else for(a=a.firstChild;a;)P(a,b,e),a=a.nextSibling};function Q(a,b){b=b.toLowerCase();return\"style\"==b?ha(a.style.cssText):N&amp;&amp;\"value\"==b&amp;&amp;R(a,\"INPUT\")?a.value:fa&amp;&amp;!0===a[b]?String(a.getAttribute(b)):(a=a.getAttributeNode(b))&amp;&amp;a.specified?a.value:null}var ia=/[;]+(?=(?:(?:[^\"]*\"){2})*[^\"]*$)(?=(?:(?:[^']*'){2})*[^']*$)(?=(?:[^()]*\\([^()]*\\))*[^()]*$)/;\nfunction ha(a){var b=[];t(a.split(ia),function(a){var c=a.indexOf(\":\");0&lt;c&amp;&amp;(a=[a.slice(0,c),a.slice(c+1)],2==a.length&amp;&amp;b.push(a[0].toLowerCase(),\":\",a[1],\";\"))});b=b.join(\"\");return b=\";\"==b.charAt(b.length-1)?b:b+\";\"}function S(a,b){N&amp;&amp;\"value\"==b&amp;&amp;R(a,\"OPTION\")&amp;&amp;null===Q(a,\"value\")?(b=[],P(a,b,!1),a=b.join(\"\")):a=a[b];return a}function R(a,b){b&amp;&amp;\"string\"!==typeof b&amp;&amp;(b=b.toString());return!!a&amp;&amp;1==a.nodeType&amp;&amp;(!b||a.tagName.toUpperCase()==b)}\nfunction T(a){return R(a,\"OPTION\")?!0:R(a,\"INPUT\")?(a=a.type.toLowerCase(),\"checkbox\"==a||\"radio\"==a):!1};var ja={\"class\":\"className\",readonly:\"readOnly\"},U=\"allowfullscreen allowpaymentrequest allowusermedia async autofocus autoplay checked compact complete controls declare default defaultchecked defaultselected defer disabled ended formnovalidate hidden indeterminate iscontenteditable ismap itemscope loop multiple muted nohref nomodule noresize noshade novalidate nowrap open paused playsinline pubdate readonly required reversed scoped seamless seeking selected truespeed typemustmatch willvalidate\".split(\" \");function V(a,b){var e=null,c=b.toLowerCase();if(\"style\"==c)return(e=a.style)&amp;&amp;!f(e)&amp;&amp;(e=e.cssText),e;if((\"selected\"==c||\"checked\"==c)&amp;&amp;T(a)){if(!T(a))throw new h(15,\"Element is not selectable\");b=\"selected\";e=a.type&amp;&amp;a.type.toLowerCase();if(\"checkbox\"==e||\"radio\"==e)b=\"checked\";return S(a,b)?\"true\":null}var g=R(a,\"A\");if(R(a,\"IMG\")&amp;&amp;\"src\"==c||g&amp;&amp;\"href\"==c)return(e=Q(a,c))&amp;&amp;(e=S(a,c)),e;if(\"spellcheck\"==c){e=Q(a,c);if(null!==e){if(\"false\"==e.toLowerCase())return\"false\";if(\"true\"==e.toLowerCase())return\"true\"}return S(a,\nc)+\"\"}g=ja[b]||b;a:if(f(U))c=f(c)&amp;&amp;1==c.length?U.indexOf(c,0):-1;else{for(var u=0;u&lt;U.length;u++)if(u in U&amp;&amp;U[u]===c){c=u;break a}c=-1}if(0&lt;=c)return(e=null!==Q(a,b)||S(a,g))?\"true\":null;try{var k=S(a,g)}catch(ka){}(c=null==k)||(c=typeof k,c=\"object\"==c&amp;&amp;null!=k||\"function\"==c);c?e=Q(a,b):e=k;return null!=e?e.toString():null}var W=[\"_\"],X=d;W[0]in X||!X.execScript||X.execScript(\"var \"+W[0]);\nfor(var Y;W.length&amp;&amp;(Y=W.shift());){var Z;if(Z=!W.length)Z=void 0!==V;Z?X[Y]=V:X[Y]&amp;&amp;X[Y]!==Object.prototype[Y]?X=X[Y]:X=X[Y]={}};; return this._.apply(null,arguments);}.apply({navigator:typeof window!='undefined'?window.navigator:null,document:typeof window!='undefined'?window.document:null}, arguments);}\n).apply(null, arguments);", "args": [{"ELEMENT": "1a81875e-57c2-4e55-8567-32ecfe64ee5b", "element-6066-11e4-a52e-4f735466cecf": "1a81875e-57c2-4e55-8567-32ecfe64ee5b"}, "readonly"]}</msg>
<msg timestamp="20210629 17:07:37.279" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/execute/sync HTTP/1.1" 200 14</msg>
<msg timestamp="20210629 17:07:37.279" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210629 17:07:30.316" endtime="20210629 17:07:37.279"/>
</kw>
<kw name="Click Button" library="SeleniumLibrary">
<arg>${locator_vars}[我知道了]</arg>
<doc>Clicks the button identified by ``locator``.</doc>
<msg timestamp="20210629 17:07:37.279" level="INFO">Clicking button 'xpath=//button[text()="我知道了"]'.</msg>
<msg timestamp="20210629 17:07:37.279" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:37.284" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210629 17:07:37.284" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:37.284" level="DEBUG">GET http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/element/1a81875e-57c2-4e55-8567-32ecfe64ee5b/name {"id": "1a81875e-57c2-4e55-8567-32ecfe64ee5b"}</msg>
<msg timestamp="20210629 17:07:37.286" level="DEBUG">http://127.0.0.1:64650 "GET /session/407a09cff384b7e51ac39259fa4db44c/element/1a81875e-57c2-4e55-8567-32ecfe64ee5b/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210629 17:07:37.286" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:37.286" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210629 17:07:37.292" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210629 17:07:37.292" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:37.292" level="DEBUG">GET http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/element/1a81875e-57c2-4e55-8567-32ecfe64ee5b/name {"id": "1a81875e-57c2-4e55-8567-32ecfe64ee5b"}</msg>
<msg timestamp="20210629 17:07:37.294" level="DEBUG">http://127.0.0.1:64650 "GET /session/407a09cff384b7e51ac39259fa4db44c/element/1a81875e-57c2-4e55-8567-32ecfe64ee5b/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210629 17:07:37.294" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:37.294" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/element/1a81875e-57c2-4e55-8567-32ecfe64ee5b/click {"id": "1a81875e-57c2-4e55-8567-32ecfe64ee5b"}</msg>
<msg timestamp="20210629 17:07:37.328" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/element/1a81875e-57c2-4e55-8567-32ecfe64ee5b/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210629 17:07:37.328" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210629 17:07:37.279" endtime="20210629 17:07:37.328"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[智客]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210629 17:07:37.329" level="INFO">Clicking element 'xpath=//div[@data-title="智客"]'.</msg>
<msg timestamp="20210629 17:07:37.330" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//div[@data-title=\"\u667a\u5ba2\"]"}</msg>
<msg timestamp="20210629 17:07:37.339" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210629 17:07:37.339" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:37.339" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/element/804815a9-e8c1-4711-be4f-f9ebb2f717d7/click {"id": "804815a9-e8c1-4711-be4f-f9ebb2f717d7"}</msg>
<msg timestamp="20210629 17:07:37.408" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/element/804815a9-e8c1-4711-be4f-f9ebb2f717d7/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210629 17:07:37.409" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210629 17:07:37.328" endtime="20210629 17:07:37.409"/>
</kw>
<kw name="Switch Window" library="SeleniumLibrary">
<arg>NEW</arg>
<doc>Switches to browser window matching ``locator``.</doc>
<msg timestamp="20210629 17:07:37.411" level="DEBUG">GET http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/window {}</msg>
<msg timestamp="20210629 17:07:37.413" level="DEBUG">http://127.0.0.1:64650 "GET /session/407a09cff384b7e51ac39259fa4db44c/window HTTP/1.1" 200 53</msg>
<msg timestamp="20210629 17:07:37.414" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:37.414" level="DEBUG">GET http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/window/handles {}</msg>
<msg timestamp="20210629 17:07:37.417" level="DEBUG">http://127.0.0.1:64650 "GET /session/407a09cff384b7e51ac39259fa4db44c/window/handles HTTP/1.1" 200 99</msg>
<msg timestamp="20210629 17:07:37.417" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:37.417" level="DEBUG">GET http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/window {}</msg>
<msg timestamp="20210629 17:07:37.418" level="DEBUG">http://127.0.0.1:64650 "GET /session/407a09cff384b7e51ac39259fa4db44c/window HTTP/1.1" 200 53</msg>
<msg timestamp="20210629 17:07:37.418" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:37.419" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/window {"handle": "CDwindow-F94EB233C28AA90CA608EBF72968D8D0"}</msg>
<msg timestamp="20210629 17:07:37.423" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/window HTTP/1.1" 200 14</msg>
<msg timestamp="20210629 17:07:37.423" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210629 17:07:37.410" endtime="20210629 17:07:37.423"/>
</kw>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>已有企业微信</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210629 17:07:37.424" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210629 17:07:38.438" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210629 17:07:38.439" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:38.654" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210629 17:07:38.688" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 1117</msg>
<msg timestamp="20210629 17:07:38.688" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210629 17:07:37.423" endtime="20210629 17:07:38.689"/>
</kw>
<status status="PASS" starttime="20210629 17:07:24.942" endtime="20210629 17:07:38.689"/>
</kw>
<status status="PASS" starttime="20210629 17:07:24.942" endtime="20210629 17:07:38.689"/>
</kw>
<test id="s1-t1" name="Tc0 debug case">
<kw name="Run Keywords" library="BuiltIn" type="SETUP">
<arg>My Test Setup</arg>
<doc>Executes all the given keywords in a sequence.</doc>
<kw name="My Test Setup" library="callcenter_callreports_v1_setup_teardown">
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[首页]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210629 17:07:38.690" level="INFO">Clicking element 'xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a'.</msg>
<msg timestamp="20210629 17:07:38.690" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//*[@id=\"root\"]/div/div[2]/ul/li[2]/a"}</msg>
<msg timestamp="20210629 17:07:38.699" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210629 17:07:38.700" level="DEBUG">Finished Request</msg>
<msg timestamp="20210629 17:07:38.700" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/element/66a192bb-fd60-4290-9699-5a0e65ab6240/click {"id": "66a192bb-fd60-4290-9699-5a0e65ab6240"}</msg>
<msg timestamp="20210629 17:07:39.148" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/element/66a192bb-fd60-4290-9699-5a0e65ab6240/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210629 17:07:39.149" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210629 17:07:38.690" endtime="20210629 17:07:39.149"/>
</kw>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>首页</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210629 17:07:39.150" level="DEBUG">POST http://127.0.0.1:64650/session/407a09cff384b7e51ac39259fa4db44c/elements {"using": "xpath", "value": "//*[contains(., '\u9996\u9875')]"}</msg>
<msg timestamp="20210629 17:07:39.180" level="DEBUG">http://127.0.0.1:64650 "POST /session/407a09cff384b7e51ac39259fa4db44c/elements HTTP/1.1" 200 801</msg>
<msg timestamp="20210629 17:07:39.180" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210629 17:07:39.150" endtime="20210629 17:07:39.180"/>
</kw>
<kw name="Sleep" library="BuiltIn">
<arg>2</arg>
<doc>Pauses the test executed for the given time.</doc>
<msg timestamp="20210629 17:07:41.193" level="INFO">Slept 2 seconds</msg>
<status status="PASS" starttime="20210629 17:07:39.181" endtime="20210629 17:07:41.193"/>
</kw>
<status status="PASS" starttime="20210629 17:07:38.690" endtime="20210629 17:07:41.193"/>
</kw>
<status status="PASS" starttime="20210629 17:07:38.690" endtime="20210629 17:07:41.193"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>---------- Tc1 step: ok ok ok ------------</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210629 17:07:41.194" level="INFO">---------- Tc1 step: ok ok ok ------------</msg>
<status status="PASS" starttime="20210629 17:07:41.194" endtime="20210629 17:07:41.195"/>
</kw>
<doc>- xxxxxx
- xxxxxx
- xxxxxx</doc>
<tag>0</tag>
<tag>1</tag>
<tag>Sanity</tag>
<status status="PASS" starttime="20210629 17:07:38.689" endtime="20210629 17:07:41.195"/>
</test>
<doc>callcenter_callreports_v1_fun1.robot
case link: xxxxxx
use command: robot -d xxx -T callcenter_callreports_v1_fun1.robot
description: funcation description info
author: xxxxxx
min support version: xxxxxx
technology area: 智客
sub-area: 呼叫中心
Case List :
Tc1: case1 info detail description
Tc2: case2 info detail description
Tc3: case3 info detail description</doc>
<status status="PASS" starttime="20210629 17:07:24.599" endtime="20210629 17:07:41.197"/>
</suite>
<statistics>
<total>
<stat pass="1" fail="0" skip="0">All Tests</stat>
</total>
<tag>
<stat pass="1" fail="0" skip="0">0</stat>
<stat pass="1" fail="0" skip="0">1</stat>
<stat pass="1" fail="0" skip="0">Sanity</stat>
</tag>
<suite>
<stat pass="1" fail="0" skip="0" id="s1" name="Callcenter Callreports V1 Fun1">Callcenter Callreports V1 Fun1</stat>
</suite>
</statistics>
<errors>
<msg timestamp="20210629 17:07:24.898" level="WARN">Imported library 'D:\word\自动化\script_template\keyword\callcenter_V6_python_keywords.py' contains no keywords.</msg>
</errors>
</robot>
<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 4.0.3 (Python 3.8.8 on win32)" generated="20210630 16:51:49.393" rpa="false" schemaversion="2">
<suite id="s1" name="Callcenter Callreports V1 Fun1" source="D:\word\自动化\script_template\callcenter_callreports_v1_fun1.robot">
<kw name="Run Keywords" library="BuiltIn" type="SETUP">
<arg>My Suite Setup</arg>
<doc>Executes all the given keywords in a sequence.</doc>
<kw name="My Suite Setup" library="callcenter_callreports_v1_setup_teardown">
<kw name="Log" library="BuiltIn">
<arg>========================== My Suite Setup Start ==========================</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 16:51:49.794" level="INFO">========================== My Suite Setup Start ==========================</msg>
<status status="PASS" starttime="20210630 16:51:49.794" endtime="20210630 16:51:49.794"/>
</kw>
<kw name="Fetch Json Vars" library="public_python_keywords">
<var>&amp;{gbl_vars}</var>
<arg>file=D:\\word\\自动化\\script_template\\json_file\\call_center_vars.json</arg>
<msg timestamp="20210630 16:51:49.795" level="INFO">&amp;{gbl_vars} = { log_level=DEBUG | url=http://test.sobot.com/console/login | browser=gc | email=mjmj@zhichi.com | password=sobot1234 | w_size_hor_pixels=1920 | w_size_ver_pixels=1080 | time={'hour': 11, 'minute': '2...</msg>
<status status="PASS" starttime="20210630 16:51:49.794" endtime="20210630 16:51:49.795"/>
</kw>
<kw name="Set Global Variable" library="BuiltIn">
<arg>${gbl_vars}</arg>
<doc>Makes a variable available globally in all tests and suites.</doc>
<msg timestamp="20210630 16:51:49.796" level="INFO">${gbl_vars} = {'log_level': 'DEBUG', 'url': 'http://test.sobot.com/console/login', 'browser': 'gc', 'email': 'mjmj@zhichi.com', 'password': 'sobot1234', 'w_size_hor_pixels': 1920, 'w_size_ver_pixels': 1080, 'time':...</msg>
<status status="PASS" starttime="20210630 16:51:49.795" endtime="20210630 16:51:49.796"/>
</kw>
<kw name="Fetch Json Vars" library="public_python_keywords">
<var>&amp;{locator_vars}</var>
<arg>file=D:\\word\\自动化\\script_template\\json_file\\call_center_locator_vars.json</arg>
<msg timestamp="20210630 16:51:49.796" level="INFO">&amp;{locator_vars} = { 我知道了=xpath=//button[text()="我知道了"] | 智客=xpath=//div[@data-title="智客"] | 首页=xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a | 呼叫中心=x、】path=//*[@id="root"]/div/div[2]/ul/li[3]/a | 企微智客=xpath=//*[@id="root...</msg>
<status status="PASS" starttime="20210630 16:51:49.796" endtime="20210630 16:51:49.796"/>
</kw>
<kw name="Set Global Variable" library="BuiltIn">
<arg>${locator_vars}</arg>
<doc>Makes a variable available globally in all tests and suites.</doc>
<msg timestamp="20210630 16:51:49.797" level="INFO">${locator_vars} = {'我知道了': 'xpath=//button[text()="我知道了"]', '智客': 'xpath=//div[@data-title="智客"]', '首页': 'xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a', '呼叫中心': 'x、】path=//*[@id="root"]/div/div[2]/ul/li[3]/a', '企微智客': '...</msg>
<status status="PASS" starttime="20210630 16:51:49.796" endtime="20210630 16:51:49.797"/>
</kw>
<kw name="Set Log Level" library="BuiltIn">
<arg>${gbl_vars}[log_level]</arg>
<doc>Sets the log threshold to the specified level and returns the old level.</doc>
<msg timestamp="20210630 16:51:49.797" level="INFO">Log level changed from INFO to DEBUG.</msg>
<status status="PASS" starttime="20210630 16:51:49.797" endtime="20210630 16:51:49.797"/>
</kw>
<kw name="Close All Browsers" library="SeleniumLibrary">
<doc>Closes all open browsers and resets the browser cache.</doc>
<msg timestamp="20210630 16:51:49.797" level="DEBUG">Closing all browsers.</msg>
<status status="PASS" starttime="20210630 16:51:49.797" endtime="20210630 16:51:49.797"/>
</kw>
<kw name="Open Browser And Set Size" library="public_robot_keywords">
<arg>url=${gbl_vars}[url]</arg>
<arg>set_window_size=${True}</arg>
<arg>set_max_browser_window=${True}</arg>
<doc>打开指定类型的浏览器,并设置窗口大小</doc>
<kw name="Open Browser" library="SeleniumLibrary">
<arg>${url}</arg>
<arg>${browser}</arg>
<doc>Opens a new browser instance to the optional ``url``.</doc>
<msg timestamp="20210630 16:51:49.798" level="INFO">Opening browser 'gc' to base url 'http://test.sobot.com/console/login'.</msg>
<msg timestamp="20210630 16:51:50.320" level="DEBUG">POST http://127.0.0.1:57621/session {"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "platformName": "any", "goog:chromeOptions": {"extensions": [], "args": []}}}, "desiredCapabilities": {"browserName": "chrome", "version": "", "platform": "ANY", "goog:chromeOptions": {"extensions": [], "args": []}}}</msg>
<msg timestamp="20210630 16:51:50.320" level="DEBUG">Starting new HTTP connection (1): 127.0.0.1:57621</msg>
<msg timestamp="20210630 16:51:51.241" level="DEBUG">http://127.0.0.1:57621 "POST /session HTTP/1.1" 200 753</msg>
<msg timestamp="20210630 16:51:51.241" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:51:51.242" level="DEBUG">POST http://127.0.0.1:57621/session/357fa470d7d4c4486cc995566a65452f/timeouts {"script": 5000}</msg>
<msg timestamp="20210630 16:51:51.243" level="DEBUG">http://127.0.0.1:57621 "POST /session/357fa470d7d4c4486cc995566a65452f/timeouts HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 16:51:51.244" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:51:51.244" level="DEBUG">POST http://127.0.0.1:57621/session/357fa470d7d4c4486cc995566a65452f/timeouts {"implicit": 0}</msg>
<msg timestamp="20210630 16:51:51.246" level="DEBUG">http://127.0.0.1:57621 "POST /session/357fa470d7d4c4486cc995566a65452f/timeouts HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 16:51:51.246" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:51:51.246" level="DEBUG">POST http://127.0.0.1:57621/session/357fa470d7d4c4486cc995566a65452f/url {"url": "http://test.sobot.com/console/login"}</msg>
<msg timestamp="20210630 16:52:07.893" level="DEBUG">http://127.0.0.1:57621 "POST /session/357fa470d7d4c4486cc995566a65452f/url HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 16:52:07.894" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:52:07.894" level="DEBUG">Opened browser with session id 357fa470d7d4c4486cc995566a65452f.</msg>
<status status="PASS" starttime="20210630 16:51:49.798" endtime="20210630 16:52:07.894"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${set_window_size}</arg>
<arg>Set Window Size</arg>
<arg>${hor_pixels}</arg>
<arg>${ver_pixels}</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Set Window Size" library="SeleniumLibrary">
<arg>${hor_pixels}</arg>
<arg>${ver_pixels}</arg>
<doc>Sets current windows size to given ``width`` and ``height``.</doc>
<msg timestamp="20210630 16:52:07.895" level="DEBUG">POST http://127.0.0.1:57621/session/357fa470d7d4c4486cc995566a65452f/window/rect {"x": null, "y": null, "width": 1920, "height": 1080}</msg>
<msg timestamp="20210630 16:52:07.896" level="DEBUG">http://127.0.0.1:57621 "POST /session/357fa470d7d4c4486cc995566a65452f/window/rect HTTP/1.1" 404 975</msg>
<msg timestamp="20210630 16:52:07.896" level="DEBUG">Finished Request</msg>
<kw name="Capture Page Screenshot" library="SeleniumLibrary">
<doc>Takes a screenshot of the current page and embeds it into a log file.</doc>
<msg timestamp="20210630 16:52:07.898" level="DEBUG">GET http://127.0.0.1:57621/session/357fa470d7d4c4486cc995566a65452f/screenshot {}</msg>
<msg timestamp="20210630 16:52:07.899" level="DEBUG">http://127.0.0.1:57621 "GET /session/357fa470d7d4c4486cc995566a65452f/screenshot HTTP/1.1" 404 975</msg>
<msg timestamp="20210630 16:52:07.899" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:52:07.903" level="FAIL">NoSuchWindowException: Message: no such window: target window already closed
from unknown error: web view not found
(Session info: chrome=91.0.4472.114)
</msg>
<msg timestamp="20210630 16:52:07.903" level="DEBUG">Traceback (most recent call last):
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\SeleniumLibrary\__init__.py", line 492, in run_keyword
return DynamicCore.run_keyword(self, name, args, kwargs)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\robotlibcore.py", line 103, in run_keyword
return self.keywords[name](*args, **(kwargs or {}))
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\SeleniumLibrary\keywords\screenshot.py", line 113, in capture_page_screenshot
return self._capture_page_screenshot_to_file(filename)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\SeleniumLibrary\keywords\screenshot.py", line 118, in _capture_page_screenshot_to_file
if not self.driver.save_screenshot(path):
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1055, in save_screenshot
return self.get_screenshot_as_file(filename)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1032, in get_screenshot_as_file
png = self.get_screenshot_as_png()
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1064, in get_screenshot_as_png
return base64.b64decode(self.get_screenshot_as_base64().encode('ascii'))
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1074, in get_screenshot_as_base64
return self.execute(Command.SCREENSHOT)['value']
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)</msg>
<status status="FAIL" starttime="20210630 16:52:07.896" endtime="20210630 16:52:07.903"/>
</kw>
<msg timestamp="20210630 16:52:07.903" level="WARN">Keyword 'Capture Page Screenshot' could not be run on failure: NoSuchWindowException: Message: no such window: target window already closed
from unknown error: web view not found
(Session info: chrome=91.0.4472.114)
</msg>
<msg timestamp="20210630 16:52:07.911" level="FAIL">NoSuchWindowException: Message: no such window: target window already closed
from unknown error: web view not found
(Session info: chrome=91.0.4472.114)
</msg>
<msg timestamp="20210630 16:52:07.911" level="DEBUG">Traceback (most recent call last):
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\SeleniumLibrary\__init__.py", line 492, in run_keyword
return DynamicCore.run_keyword(self, name, args, kwargs)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\robotlibcore.py", line 103, in run_keyword
return self.keywords[name](*args, **(kwargs or {}))
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\SeleniumLibrary\keywords\window.py", line 237, in set_window_size
return self.driver.set_window_size(width, height)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1090, in set_window_size
self.set_window_rect(width=int(width), height=int(height))
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1180, in set_window_rect
return self.execute(Command.SET_WINDOW_RECT, {"x": x, "y": y,
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)</msg>
<status status="FAIL" starttime="20210630 16:52:07.894" endtime="20210630 16:52:07.911"/>
</kw>
<status status="FAIL" starttime="20210630 16:52:07.894" endtime="20210630 16:52:07.911"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${set_max_browser_window}</arg>
<arg>Maximize Browser Window</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="NOT RUN" starttime="20210630 16:52:07.911" endtime="20210630 16:52:07.911"/>
</kw>
<status status="FAIL" starttime="20210630 16:51:49.798" endtime="20210630 16:52:07.912"/>
</kw>
<kw name="Logon Soboten" library="public_robot_keywords">
<arg>logon_type=0</arg>
<arg>email=${gbl_vars}[email]</arg>
<arg>password=${gbl_vars}[password]</arg>
<doc>根据参数logon_type值,登录相应的智齿系统</doc>
<status status="NOT RUN" starttime="20210630 16:52:07.912" endtime="20210630 16:52:07.912"/>
</kw>
<kw name="Wait Until Element Is Enabled" library="SeleniumLibrary">
<arg>${locator_vars}[我知道了]</arg>
<arg>60s</arg>
<doc>Waits until the element ``locator`` is enabled.</doc>
<status status="NOT RUN" starttime="20210630 16:52:07.913" endtime="20210630 16:52:07.913"/>
</kw>
<kw name="Click Button" library="SeleniumLibrary">
<arg>${locator_vars}[我知道了]</arg>
<doc>Clicks the button identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 16:52:07.913" endtime="20210630 16:52:07.913"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[智客]</arg>
<doc>Click the element identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 16:52:07.913" endtime="20210630 16:52:07.914"/>
</kw>
<kw name="Switch Window" library="SeleniumLibrary">
<arg>NEW</arg>
<doc>Switches to browser window matching ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 16:52:07.914" endtime="20210630 16:52:07.915"/>
</kw>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>已有企业微信</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<status status="NOT RUN" starttime="20210630 16:52:07.915" endtime="20210630 16:52:07.916"/>
</kw>
<status status="FAIL" starttime="20210630 16:51:49.794" endtime="20210630 16:52:07.917"/>
</kw>
<status status="FAIL" starttime="20210630 16:51:49.794" endtime="20210630 16:52:07.917"/>
</kw>
<test id="s1-t1" name="Tc0 debug case">
<doc>- xxxxxx
- xxxxxx
- xxxxxx</doc>
<tag>0</tag>
<tag>1</tag>
<tag>Sanity</tag>
<status status="FAIL" starttime="20210630 16:52:07.918" endtime="20210630 16:52:07.928">Parent suite setup failed:
NoSuchWindowException: Message: no such window: target window already closed
from unknown error: web view not found
(Session info: chrome=91.0.4472.114)
</status>
</test>
<test id="s1-t2" name="Tc1 Test basic function under call reports of call center">
<doc>- 进入呼叫中心
- 进入呼叫中心 &gt; 通话记录
- 手工输入起始和结束日期和时间
- 下拉菜单单选
- 下拉菜单多选</doc>
<tag>1</tag>
<tag>Sanity</tag>
<tag>呼叫中心</tag>
<status status="FAIL" starttime="20210630 16:52:07.931" endtime="20210630 16:52:07.934">Parent suite setup failed:
NoSuchWindowException: Message: no such window: target window already closed
from unknown error: web view not found
(Session info: chrome=91.0.4472.114)
</status>
</test>
<doc>callcenter_callreports_v1_fun1.robot
case link: xxxxxx
use command: robot -d xxx -T callcenter_callreports_v1_fun1.robot
description: funcation description info
author: xxxxxx
min support version: xxxxxx
technology area: 智客
sub-area: 呼叫中心
Case List :
Tc1: case1 info detail description
Tc2: case2 info detail description
Tc3: case3 info detail description</doc>
<status status="FAIL" starttime="20210630 16:51:49.394" endtime="20210630 16:52:07.937">Suite setup failed:
NoSuchWindowException: Message: no such window: target window already closed
from unknown error: web view not found
(Session info: chrome=91.0.4472.114)
</status>
</suite>
<statistics>
<total>
<stat pass="0" fail="2" skip="0">All Tests</stat>
</total>
<tag>
<stat pass="0" fail="1" skip="0">0</stat>
<stat pass="0" fail="2" skip="0">1</stat>
<stat pass="0" fail="2" skip="0">Sanity</stat>
<stat pass="0" fail="1" skip="0">呼叫中心</stat>
</tag>
<suite>
<stat pass="0" fail="2" skip="0" id="s1" name="Callcenter Callreports V1 Fun1">Callcenter Callreports V1 Fun1</stat>
</suite>
</statistics>
<errors>
<msg timestamp="20210630 16:51:49.737" level="WARN">Imported library 'D:\word\自动化\script_template\keyword\callcenter_V6_python_keywords.py' contains no keywords.</msg>
<msg timestamp="20210630 16:52:07.903" level="WARN">Keyword 'Capture Page Screenshot' could not be run on failure: NoSuchWindowException: Message: no such window: target window already closed
from unknown error: web view not found
(Session info: chrome=91.0.4472.114)
</msg>
</errors>
</robot>
<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 4.0.3 (Python 3.8.8 on win32)" generated="20210630 16:53:38.364" rpa="false" schemaversion="2">
<suite id="s1" name="callcenter Skillsgroup V6 full1" source="D:\word\自动化\script_template\callcenter_Skillsgroup_V6_full1.robot">
<kw name="Run Keywords" library="BuiltIn" type="SETUP">
<arg>My Suite Setup</arg>
<doc>Executes all the given keywords in a sequence.</doc>
<kw name="My Suite Setup" library="callcenter_Skillsgroup_V6_setup_teardown">
<kw name="Log" library="BuiltIn">
<arg>========================== My Suite Setup Start ==========================</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 16:53:38.680" level="INFO">========================== My Suite Setup Start ==========================</msg>
<status status="PASS" starttime="20210630 16:53:38.680" endtime="20210630 16:53:38.681"/>
</kw>
<kw name="Fetch Json Vars" library="public_python_keywords">
<var>&amp;{gbl_vars}</var>
<arg>file=D:\\word\\自动化\\script_template\\json_file\\call_center_vars.json</arg>
<msg timestamp="20210630 16:53:38.681" level="INFO">&amp;{gbl_vars} = { log_level=DEBUG | url=http://test.sobot.com/console/login | browser=gc | email=mjmj@zhichi.com | password=sobot1234 | w_size_hor_pixels=1920 | w_size_ver_pixels=1080 | time={'hour': 11, 'minute': '2...</msg>
<status status="PASS" starttime="20210630 16:53:38.681" endtime="20210630 16:53:38.681"/>
</kw>
<kw name="Set Global Variable" library="BuiltIn">
<arg>${gbl_vars}</arg>
<doc>Makes a variable available globally in all tests and suites.</doc>
<msg timestamp="20210630 16:53:38.682" level="INFO">${gbl_vars} = {'log_level': 'DEBUG', 'url': 'http://test.sobot.com/console/login', 'browser': 'gc', 'email': 'mjmj@zhichi.com', 'password': 'sobot1234', 'w_size_hor_pixels': 1920, 'w_size_ver_pixels': 1080, 'time':...</msg>
<status status="PASS" starttime="20210630 16:53:38.682" endtime="20210630 16:53:38.682"/>
</kw>
<kw name="Fetch Json Vars" library="public_python_keywords">
<var>&amp;{locator_vars}</var>
<arg>file=D:\\word\\自动化\\script_template\\json_file\\call_center_locator_vars.json</arg>
<msg timestamp="20210630 16:53:38.683" level="INFO">&amp;{locator_vars} = { 我知道了=xpath=//button[text()="我知道了"] | 智客=xpath=//div[@data-title="智客"] | 首页=xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a | 呼叫中心=x、】path=//*[@id="root"]/div/div[2]/ul/li[3]/a | 企微智客=xpath=//*[@id="root...</msg>
<status status="PASS" starttime="20210630 16:53:38.682" endtime="20210630 16:53:38.683"/>
</kw>
<kw name="Set Global Variable" library="BuiltIn">
<arg>${locator_vars}</arg>
<doc>Makes a variable available globally in all tests and suites.</doc>
<msg timestamp="20210630 16:53:38.683" level="INFO">${locator_vars} = {'我知道了': 'xpath=//button[text()="我知道了"]', '智客': 'xpath=//div[@data-title="智客"]', '首页': 'xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a', '呼叫中心': 'x、】path=//*[@id="root"]/div/div[2]/ul/li[3]/a', '企微智客': '...</msg>
<status status="PASS" starttime="20210630 16:53:38.683" endtime="20210630 16:53:38.683"/>
</kw>
<kw name="Set Log Level" library="BuiltIn">
<arg>${gbl_vars}[log_level]</arg>
<doc>Sets the log threshold to the specified level and returns the old level.</doc>
<msg timestamp="20210630 16:53:38.683" level="INFO">Log level changed from INFO to DEBUG.</msg>
<status status="PASS" starttime="20210630 16:53:38.683" endtime="20210630 16:53:38.683"/>
</kw>
<kw name="Close All Browsers" library="SeleniumLibrary">
<doc>Closes all open browsers and resets the browser cache.</doc>
<msg timestamp="20210630 16:53:38.684" level="DEBUG">Closing all browsers.</msg>
<status status="PASS" starttime="20210630 16:53:38.684" endtime="20210630 16:53:38.684"/>
</kw>
<kw name="Open Browser And Set Size" library="public_robot_keywords">
<arg>url=${gbl_vars}[url]</arg>
<arg>set_window_size=${True}</arg>
<arg>set_max_browser_window=${True}</arg>
<doc>打开指定类型的浏览器,并设置窗口大小</doc>
<kw name="Open Browser" library="SeleniumLibrary">
<arg>${url}</arg>
<arg>${browser}</arg>
<doc>Opens a new browser instance to the optional ``url``.</doc>
<msg timestamp="20210630 16:53:38.685" level="INFO">Opening browser 'gc' to base url 'http://test.sobot.com/console/login'.</msg>
<msg timestamp="20210630 16:53:39.243" level="DEBUG">POST http://127.0.0.1:53641/session {"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "platformName": "any", "goog:chromeOptions": {"extensions": [], "args": []}}}, "desiredCapabilities": {"browserName": "chrome", "version": "", "platform": "ANY", "goog:chromeOptions": {"extensions": [], "args": []}}}</msg>
<msg timestamp="20210630 16:53:39.243" level="DEBUG">Starting new HTTP connection (1): 127.0.0.1:53641</msg>
<msg timestamp="20210630 16:53:39.941" level="DEBUG">http://127.0.0.1:53641 "POST /session HTTP/1.1" 200 753</msg>
<msg timestamp="20210630 16:53:39.942" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:53:39.943" level="DEBUG">POST http://127.0.0.1:53641/session/c0f17b2bc6dd59ac5d15159f351dceb8/timeouts {"script": 5000}</msg>
<msg timestamp="20210630 16:53:39.946" level="DEBUG">http://127.0.0.1:53641 "POST /session/c0f17b2bc6dd59ac5d15159f351dceb8/timeouts HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 16:53:39.946" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:53:39.947" level="DEBUG">POST http://127.0.0.1:53641/session/c0f17b2bc6dd59ac5d15159f351dceb8/timeouts {"implicit": 0}</msg>
<msg timestamp="20210630 16:53:39.948" level="DEBUG">http://127.0.0.1:53641 "POST /session/c0f17b2bc6dd59ac5d15159f351dceb8/timeouts HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 16:53:39.948" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:53:39.948" level="DEBUG">POST http://127.0.0.1:53641/session/c0f17b2bc6dd59ac5d15159f351dceb8/url {"url": "http://test.sobot.com/console/login"}</msg>
<msg timestamp="20210630 16:54:16.374" level="DEBUG">http://127.0.0.1:53641 "POST /session/c0f17b2bc6dd59ac5d15159f351dceb8/url HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 16:54:16.374" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:54:16.374" level="DEBUG">Opened browser with session id c0f17b2bc6dd59ac5d15159f351dceb8.</msg>
<status status="PASS" starttime="20210630 16:53:38.684" endtime="20210630 16:54:16.375"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${set_window_size}</arg>
<arg>Set Window Size</arg>
<arg>${hor_pixels}</arg>
<arg>${ver_pixels}</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Set Window Size" library="SeleniumLibrary">
<arg>${hor_pixels}</arg>
<arg>${ver_pixels}</arg>
<doc>Sets current windows size to given ``width`` and ``height``.</doc>
<msg timestamp="20210630 16:54:16.376" level="DEBUG">POST http://127.0.0.1:53641/session/c0f17b2bc6dd59ac5d15159f351dceb8/window/rect {"x": null, "y": null, "width": 1920, "height": 1080}</msg>
<msg timestamp="20210630 16:54:16.376" level="DEBUG">http://127.0.0.1:53641 "POST /session/c0f17b2bc6dd59ac5d15159f351dceb8/window/rect HTTP/1.1" 404 975</msg>
<msg timestamp="20210630 16:54:16.377" level="DEBUG">Finished Request</msg>
<kw name="Capture Page Screenshot" library="SeleniumLibrary">
<doc>Takes a screenshot of the current page and embeds it into a log file.</doc>
<msg timestamp="20210630 16:54:16.379" level="DEBUG">GET http://127.0.0.1:53641/session/c0f17b2bc6dd59ac5d15159f351dceb8/screenshot {}</msg>
<msg timestamp="20210630 16:54:16.381" level="DEBUG">http://127.0.0.1:53641 "GET /session/c0f17b2bc6dd59ac5d15159f351dceb8/screenshot HTTP/1.1" 404 975</msg>
<msg timestamp="20210630 16:54:16.381" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:54:16.385" level="FAIL">NoSuchWindowException: Message: no such window: target window already closed
from unknown error: web view not found
(Session info: chrome=91.0.4472.114)
</msg>
<msg timestamp="20210630 16:54:16.385" level="DEBUG">Traceback (most recent call last):
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\SeleniumLibrary\__init__.py", line 492, in run_keyword
return DynamicCore.run_keyword(self, name, args, kwargs)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\robotlibcore.py", line 103, in run_keyword
return self.keywords[name](*args, **(kwargs or {}))
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\SeleniumLibrary\keywords\screenshot.py", line 113, in capture_page_screenshot
return self._capture_page_screenshot_to_file(filename)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\SeleniumLibrary\keywords\screenshot.py", line 118, in _capture_page_screenshot_to_file
if not self.driver.save_screenshot(path):
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1055, in save_screenshot
return self.get_screenshot_as_file(filename)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1032, in get_screenshot_as_file
png = self.get_screenshot_as_png()
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1064, in get_screenshot_as_png
return base64.b64decode(self.get_screenshot_as_base64().encode('ascii'))
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1074, in get_screenshot_as_base64
return self.execute(Command.SCREENSHOT)['value']
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)</msg>
<status status="FAIL" starttime="20210630 16:54:16.377" endtime="20210630 16:54:16.385"/>
</kw>
<msg timestamp="20210630 16:54:16.385" level="WARN">Keyword 'Capture Page Screenshot' could not be run on failure: NoSuchWindowException: Message: no such window: target window already closed
from unknown error: web view not found
(Session info: chrome=91.0.4472.114)
</msg>
<msg timestamp="20210630 16:54:16.388" level="FAIL">NoSuchWindowException: Message: no such window: target window already closed
from unknown error: web view not found
(Session info: chrome=91.0.4472.114)
</msg>
<msg timestamp="20210630 16:54:16.389" level="DEBUG">Traceback (most recent call last):
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\SeleniumLibrary\__init__.py", line 492, in run_keyword
return DynamicCore.run_keyword(self, name, args, kwargs)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\robotlibcore.py", line 103, in run_keyword
return self.keywords[name](*args, **(kwargs or {}))
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\SeleniumLibrary\keywords\window.py", line 237, in set_window_size
return self.driver.set_window_size(width, height)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1090, in set_window_size
self.set_window_rect(width=int(width), height=int(height))
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1180, in set_window_rect
return self.execute(Command.SET_WINDOW_RECT, {"x": x, "y": y,
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)</msg>
<status status="FAIL" starttime="20210630 16:54:16.375" endtime="20210630 16:54:16.389"/>
</kw>
<status status="FAIL" starttime="20210630 16:54:16.375" endtime="20210630 16:54:16.389"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${set_max_browser_window}</arg>
<arg>Maximize Browser Window</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="NOT RUN" starttime="20210630 16:54:16.389" endtime="20210630 16:54:16.389"/>
</kw>
<status status="FAIL" starttime="20210630 16:53:38.684" endtime="20210630 16:54:16.389"/>
</kw>
<kw name="Logon Soboten" library="public_robot_keywords">
<arg>logon_type=0</arg>
<arg>email=${gbl_vars}[email]</arg>
<arg>password=${gbl_vars}[password]</arg>
<doc>根据参数logon_type值,登录相应的智齿系统</doc>
<status status="NOT RUN" starttime="20210630 16:54:16.389" endtime="20210630 16:54:16.389"/>
</kw>
<kw name="Wait Until Element Is Enabled" library="SeleniumLibrary">
<arg>${locator_vars}[我知道了]</arg>
<arg>60s</arg>
<doc>Waits until the element ``locator`` is enabled.</doc>
<status status="NOT RUN" starttime="20210630 16:54:16.389" endtime="20210630 16:54:16.389"/>
</kw>
<kw name="Click Button" library="SeleniumLibrary">
<arg>${locator_vars}[我知道了]</arg>
<doc>Clicks the button identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 16:54:16.389" endtime="20210630 16:54:16.390"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[智客]</arg>
<doc>Click the element identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 16:54:16.390" endtime="20210630 16:54:16.390"/>
</kw>
<kw name="Switch Window" library="SeleniumLibrary">
<arg>NEW</arg>
<doc>Switches to browser window matching ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 16:54:16.390" endtime="20210630 16:54:16.390"/>
</kw>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>已有企业微信</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<status status="NOT RUN" starttime="20210630 16:54:16.390" endtime="20210630 16:54:16.390"/>
</kw>
<status status="FAIL" starttime="20210630 16:53:38.680" endtime="20210630 16:54:16.390"/>
</kw>
<status status="FAIL" starttime="20210630 16:53:38.680" endtime="20210630 16:54:16.390"/>
</kw>
<test id="s1-t1" name="Tc1 Skill group add case">
<doc>- 进入呼叫中心
- 进入呼叫中心</doc>
<tag>1</tag>
<tag>Sanity</tag>
<tag>呼叫中心</tag>
<status status="FAIL" starttime="20210630 16:54:16.390" endtime="20210630 16:54:16.392">Parent suite setup failed:
NoSuchWindowException: Message: no such window: target window already closed
from unknown error: web view not found
(Session info: chrome=91.0.4472.114)
</status>
</test>
<doc>callcenter_Relaynumber_V6_full1.robot
author: jiawei</doc>
<status status="FAIL" starttime="20210630 16:53:38.366" endtime="20210630 16:54:16.394">Suite setup failed:
NoSuchWindowException: Message: no such window: target window already closed
from unknown error: web view not found
(Session info: chrome=91.0.4472.114)
</status>
</suite>
<statistics>
<total>
<stat pass="0" fail="1" skip="0">All Tests</stat>
</total>
<tag>
<stat pass="0" fail="1" skip="0">1</stat>
<stat pass="0" fail="1" skip="0">Sanity</stat>
<stat pass="0" fail="1" skip="0">呼叫中心</stat>
</tag>
<suite>
<stat pass="0" fail="1" skip="0" id="s1" name="callcenter Skillsgroup V6 full1">callcenter Skillsgroup V6 full1</stat>
</suite>
</statistics>
<errors>
<msg timestamp="20210630 16:53:38.634" level="WARN">Imported library 'D:\word\自动化\script_template\keyword\callcenter_V6_python_keywords.py' contains no keywords.</msg>
<msg timestamp="20210630 16:54:16.385" level="WARN">Keyword 'Capture Page Screenshot' could not be run on failure: NoSuchWindowException: Message: no such window: target window already closed
from unknown error: web view not found
(Session info: chrome=91.0.4472.114)
</msg>
</errors>
</robot>
<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 4.0.3 (Python 3.8.8 on win32)" generated="20210630 16:57:11.263" rpa="false" schemaversion="2">
<suite id="s1" name="callcenter Skillsgroup V6 full1" source="D:\word\自动化\script_template\callcenter_Skillsgroup_V6_full1.robot">
<kw name="Run Keywords" library="BuiltIn" type="SETUP">
<arg>My Suite Setup</arg>
<doc>Executes all the given keywords in a sequence.</doc>
<kw name="My Suite Setup" library="callcenter_Skillsgroup_V6_setup_teardown">
<kw name="Log" library="BuiltIn">
<arg>========================== My Suite Setup Start ==========================</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 16:57:11.576" level="INFO">========================== My Suite Setup Start ==========================</msg>
<status status="PASS" starttime="20210630 16:57:11.576" endtime="20210630 16:57:11.577"/>
</kw>
<kw name="Fetch Json Vars" library="public_python_keywords">
<var>&amp;{gbl_vars}</var>
<arg>file=D:\\word\\自动化\\script_template\\json_file\\call_center_vars.json</arg>
<msg timestamp="20210630 16:57:11.577" level="INFO">&amp;{gbl_vars} = { log_level=DEBUG | url=http://test.sobot.com/console/login | browser=gc | email=mjmj@zhichi.com | password=sobot1234 | w_size_hor_pixels=1920 | w_size_ver_pixels=1080 | time={'hour': 11, 'minute': '2...</msg>
<status status="PASS" starttime="20210630 16:57:11.577" endtime="20210630 16:57:11.577"/>
</kw>
<kw name="Set Global Variable" library="BuiltIn">
<arg>${gbl_vars}</arg>
<doc>Makes a variable available globally in all tests and suites.</doc>
<msg timestamp="20210630 16:57:11.578" level="INFO">${gbl_vars} = {'log_level': 'DEBUG', 'url': 'http://test.sobot.com/console/login', 'browser': 'gc', 'email': 'mjmj@zhichi.com', 'password': 'sobot1234', 'w_size_hor_pixels': 1920, 'w_size_ver_pixels': 1080, 'time':...</msg>
<status status="PASS" starttime="20210630 16:57:11.577" endtime="20210630 16:57:11.578"/>
</kw>
<kw name="Fetch Json Vars" library="public_python_keywords">
<var>&amp;{locator_vars}</var>
<arg>file=D:\\word\\自动化\\script_template\\json_file\\call_center_locator_vars.json</arg>
<msg timestamp="20210630 16:57:11.578" level="INFO">&amp;{locator_vars} = { 我知道了=xpath=//button[text()="我知道了"] | 智客=xpath=//div[@data-title="智客"] | 首页=xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a | 呼叫中心=x、】path=//*[@id="root"]/div/div[2]/ul/li[3]/a | 企微智客=xpath=//*[@id="root...</msg>
<status status="PASS" starttime="20210630 16:57:11.578" endtime="20210630 16:57:11.578"/>
</kw>
<kw name="Set Global Variable" library="BuiltIn">
<arg>${locator_vars}</arg>
<doc>Makes a variable available globally in all tests and suites.</doc>
<msg timestamp="20210630 16:57:11.579" level="INFO">${locator_vars} = {'我知道了': 'xpath=//button[text()="我知道了"]', '智客': 'xpath=//div[@data-title="智客"]', '首页': 'xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a', '呼叫中心': 'x、】path=//*[@id="root"]/div/div[2]/ul/li[3]/a', '企微智客': '...</msg>
<status status="PASS" starttime="20210630 16:57:11.578" endtime="20210630 16:57:11.579"/>
</kw>
<kw name="Set Log Level" library="BuiltIn">
<arg>${gbl_vars}[log_level]</arg>
<doc>Sets the log threshold to the specified level and returns the old level.</doc>
<msg timestamp="20210630 16:57:11.579" level="INFO">Log level changed from INFO to DEBUG.</msg>
<status status="PASS" starttime="20210630 16:57:11.579" endtime="20210630 16:57:11.579"/>
</kw>
<kw name="Close All Browsers" library="SeleniumLibrary">
<doc>Closes all open browsers and resets the browser cache.</doc>
<msg timestamp="20210630 16:57:11.579" level="DEBUG">Closing all browsers.</msg>
<status status="PASS" starttime="20210630 16:57:11.579" endtime="20210630 16:57:11.579"/>
</kw>
<kw name="Open Browser And Set Size" library="public_robot_keywords">
<arg>url=${gbl_vars}[url]</arg>
<arg>set_window_size=${True}</arg>
<arg>set_max_browser_window=${True}</arg>
<doc>打开指定类型的浏览器,并设置窗口大小</doc>
<kw name="Open Browser" library="SeleniumLibrary">
<arg>${url}</arg>
<arg>${browser}</arg>
<doc>Opens a new browser instance to the optional ``url``.</doc>
<msg timestamp="20210630 16:57:11.580" level="INFO">Opening browser 'gc' to base url 'http://test.sobot.com/console/login'.</msg>
<msg timestamp="20210630 16:57:12.103" level="DEBUG">POST http://127.0.0.1:52850/session {"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "platformName": "any", "goog:chromeOptions": {"extensions": [], "args": []}}}, "desiredCapabilities": {"browserName": "chrome", "version": "", "platform": "ANY", "goog:chromeOptions": {"extensions": [], "args": []}}}</msg>
<msg timestamp="20210630 16:57:12.103" level="DEBUG">Starting new HTTP connection (1): 127.0.0.1:52850</msg>
<msg timestamp="20210630 16:57:12.864" level="DEBUG">http://127.0.0.1:52850 "POST /session HTTP/1.1" 200 753</msg>
<msg timestamp="20210630 16:57:12.865" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:12.865" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/timeouts {"script": 5000}</msg>
<msg timestamp="20210630 16:57:12.868" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/timeouts HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 16:57:12.869" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:12.869" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/timeouts {"implicit": 0}</msg>
<msg timestamp="20210630 16:57:12.870" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/timeouts HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 16:57:12.871" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:12.871" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/url {"url": "http://test.sobot.com/console/login"}</msg>
<msg timestamp="20210630 16:57:14.979" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/url HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 16:57:14.979" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:14.979" level="DEBUG">Opened browser with session id fce2ee44d73712a560adb22b425ef4e5.</msg>
<status status="PASS" starttime="20210630 16:57:11.580" endtime="20210630 16:57:14.979"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${set_window_size}</arg>
<arg>Set Window Size</arg>
<arg>${hor_pixels}</arg>
<arg>${ver_pixels}</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Set Window Size" library="SeleniumLibrary">
<arg>${hor_pixels}</arg>
<arg>${ver_pixels}</arg>
<doc>Sets current windows size to given ``width`` and ``height``.</doc>
<msg timestamp="20210630 16:57:14.980" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/window/rect {"x": null, "y": null, "width": 1920, "height": 1080}</msg>
<msg timestamp="20210630 16:57:15.126" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/window/rect HTTP/1.1" 200 51</msg>
<msg timestamp="20210630 16:57:15.126" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 16:57:14.980" endtime="20210630 16:57:15.126"/>
</kw>
<status status="PASS" starttime="20210630 16:57:14.979" endtime="20210630 16:57:15.126"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${set_max_browser_window}</arg>
<arg>Maximize Browser Window</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Maximize Browser Window" library="SeleniumLibrary">
<doc>Maximizes current browser window.</doc>
<msg timestamp="20210630 16:57:15.127" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/window/maximize {}</msg>
<msg timestamp="20210630 16:57:15.252" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/window/maximize HTTP/1.1" 200 51</msg>
<msg timestamp="20210630 16:57:15.254" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 16:57:15.127" endtime="20210630 16:57:15.254"/>
</kw>
<status status="PASS" starttime="20210630 16:57:15.126" endtime="20210630 16:57:15.254"/>
</kw>
<status status="PASS" starttime="20210630 16:57:11.579" endtime="20210630 16:57:15.254"/>
</kw>
<kw name="Logon Soboten" library="public_robot_keywords">
<arg>logon_type=0</arg>
<arg>email=${gbl_vars}[email]</arg>
<arg>password=${gbl_vars}[password]</arg>
<doc>根据参数logon_type值,登录相应的智齿系统</doc>
<kw name="Run Keyword If" library="BuiltIn">
<arg>'@' not in "${email}" or '.' not in "${email}"</arg>
<arg>Fail</arg>
<arg>email format is wrong, please double check!</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210630 16:57:15.256" endtime="20210630 16:57:15.257"/>
</kw>
<kw name="Get Length" library="BuiltIn">
<var>${password_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<msg timestamp="20210630 16:57:15.257" level="INFO">Length is 9</msg>
<msg timestamp="20210630 16:57:15.257" level="INFO">${password_length} = 9</msg>
<status status="PASS" starttime="20210630 16:57:15.257" endtime="20210630 16:57:15.257"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${password_length} &lt; 8</arg>
<arg>Fail</arg>
<arg>Password is less than 8 digits</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210630 16:57:15.257" endtime="20210630 16:57:15.257"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${logon_type}&gt;0</arg>
<arg>Click Element</arg>
<arg>xpath=//div[text()="登录"]</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210630 16:57:15.258" endtime="20210630 16:57:15.258"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${logon_type}==0</arg>
<arg>Logon Test Environment</arg>
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<arg>ELSE IF</arg>
<arg>${logon_type}==1</arg>
<arg>Logon Cloud Customer Service</arg>
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<arg>ELSE IF</arg>
<arg>${logon_type}==2</arg>
<arg>Logon Cloud Outgoing Call</arg>
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Logon Test Environment" library="public_robot_keywords">
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<doc>登录智齿测试系统</doc>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>登录智齿客服,开启智慧客服新篇章</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 16:57:15.259" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//*[contains(., '\u767b\u5f55\u667a\u9f7f\u5ba2\u670d\uff0c\u5f00\u542f\u667a\u6167\u5ba2\u670d\u65b0\u7bc7\u7ae0')]"}</msg>
<msg timestamp="20210630 16:57:15.272" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 722</msg>
<msg timestamp="20210630 16:57:15.272" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 16:57:15.259" endtime="20210630 16:57:15.273"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>id=userEmail</arg>
<arg>${email}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210630 16:57:15.273" level="INFO">Typing text 'mjmj@zhichi.com' into text field 'id=userEmail'.</msg>
<msg timestamp="20210630 16:57:15.273" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "css selector", "value": "[id=\"userEmail\"]"}</msg>
<msg timestamp="20210630 16:57:15.280" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 16:57:15.281" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:15.281" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/element/37ef8e3a-1cee-452d-b503-4c316d96edb1/clear {"id": "37ef8e3a-1cee-452d-b503-4c316d96edb1"}</msg>
<msg timestamp="20210630 16:57:15.321" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/element/37ef8e3a-1cee-452d-b503-4c316d96edb1/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 16:57:15.321" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:15.322" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/element/37ef8e3a-1cee-452d-b503-4c316d96edb1/value {"text": "mjmj@zhichi.com", "value": ["m", "j", "m", "j", "@", "z", "h", "i", "c", "h", "i", ".", "c", "o", "m"], "id": "37ef8e3a-1cee-452d-b503-4c316d96edb1"}</msg>
<msg timestamp="20210630 16:57:15.418" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/element/37ef8e3a-1cee-452d-b503-4c316d96edb1/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 16:57:15.419" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 16:57:15.273" endtime="20210630 16:57:15.419"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>id=userPassword</arg>
<arg>${password}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210630 16:57:15.419" level="INFO">Typing text 'sobot1234' into text field 'id=userPassword'.</msg>
<msg timestamp="20210630 16:57:15.419" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "css selector", "value": "[id=\"userPassword\"]"}</msg>
<msg timestamp="20210630 16:57:15.426" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 16:57:15.427" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:15.427" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/element/9e94503c-926b-4d74-96d9-55772163a468/clear {"id": "9e94503c-926b-4d74-96d9-55772163a468"}</msg>
<msg timestamp="20210630 16:57:15.451" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/element/9e94503c-926b-4d74-96d9-55772163a468/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 16:57:15.451" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:15.452" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/element/9e94503c-926b-4d74-96d9-55772163a468/value {"text": "sobot1234", "value": ["s", "o", "b", "o", "t", "1", "2", "3", "4"], "id": "9e94503c-926b-4d74-96d9-55772163a468"}</msg>
<msg timestamp="20210630 16:57:15.509" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/element/9e94503c-926b-4d74-96d9-55772163a468/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 16:57:15.509" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 16:57:15.419" endtime="20210630 16:57:15.509"/>
</kw>
<kw name="Click Button" library="SeleniumLibrary">
<arg>xpath=//button[text()="登 录"]</arg>
<doc>Clicks the button identified by ``locator``.</doc>
<msg timestamp="20210630 16:57:15.509" level="INFO">Clicking button 'xpath=//button[text()="登 录"]'.</msg>
<msg timestamp="20210630 16:57:15.509" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u767b \u5f55\"]"}</msg>
<msg timestamp="20210630 16:57:15.518" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 16:57:15.518" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:15.519" level="DEBUG">GET http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/element/a26fc9fe-09f0-4b9f-9d9d-c59002a0db7d/name {"id": "a26fc9fe-09f0-4b9f-9d9d-c59002a0db7d"}</msg>
<msg timestamp="20210630 16:57:15.523" level="DEBUG">http://127.0.0.1:52850 "GET /session/fce2ee44d73712a560adb22b425ef4e5/element/a26fc9fe-09f0-4b9f-9d9d-c59002a0db7d/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 16:57:15.523" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:15.523" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u767b \u5f55\"]"}</msg>
<msg timestamp="20210630 16:57:15.528" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 16:57:15.528" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:15.528" level="DEBUG">GET http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/element/a26fc9fe-09f0-4b9f-9d9d-c59002a0db7d/name {"id": "a26fc9fe-09f0-4b9f-9d9d-c59002a0db7d"}</msg>
<msg timestamp="20210630 16:57:15.530" level="DEBUG">http://127.0.0.1:52850 "GET /session/fce2ee44d73712a560adb22b425ef4e5/element/a26fc9fe-09f0-4b9f-9d9d-c59002a0db7d/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 16:57:15.530" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:15.530" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/element/a26fc9fe-09f0-4b9f-9d9d-c59002a0db7d/click {"id": "a26fc9fe-09f0-4b9f-9d9d-c59002a0db7d"}</msg>
<msg timestamp="20210630 16:57:15.577" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/element/a26fc9fe-09f0-4b9f-9d9d-c59002a0db7d/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 16:57:15.578" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 16:57:15.509" endtime="20210630 16:57:15.578"/>
</kw>
<status status="PASS" starttime="20210630 16:57:15.258" endtime="20210630 16:57:15.578"/>
</kw>
<status status="PASS" starttime="20210630 16:57:15.258" endtime="20210630 16:57:15.578"/>
</kw>
<status status="PASS" starttime="20210630 16:57:15.254" endtime="20210630 16:57:15.578"/>
</kw>
<kw name="Wait Until Element Is Enabled" library="SeleniumLibrary">
<arg>${locator_vars}[我知道了]</arg>
<arg>60s</arg>
<doc>Waits until the element ``locator`` is enabled.</doc>
<msg timestamp="20210630 16:57:15.579" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:15.601" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:15.602" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:15.816" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:15.821" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:15.822" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:16.029" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:16.035" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:16.035" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:16.244" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:16.255" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:16.255" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:16.462" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:16.470" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:16.470" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:16.673" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:16.829" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:16.830" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:17.037" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:17.043" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:17.043" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:17.252" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:17.258" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:17.258" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:17.466" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:17.472" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:17.473" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:17.680" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:17.685" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:17.685" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:17.895" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:17.900" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:17.900" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:18.112" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:18.117" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:18.117" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:18.331" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:18.337" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:18.337" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:18.548" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:18.552" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:18.553" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:18.767" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:18.773" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:18.773" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:18.984" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:18.989" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:18.989" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:19.201" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:19.206" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:19.206" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:19.416" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:19.422" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:19.422" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:19.634" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:19.639" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:19.639" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:19.848" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:19.854" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:19.854" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:20.066" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:20.071" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:20.072" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:20.283" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:20.288" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:20.288" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:20.502" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:20.508" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:20.509" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:20.719" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:20.728" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 16:57:20.728" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:20.728" level="DEBUG">GET http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/element/c6a47f37-38f5-45c4-8376-5524df8540c8/enabled {"id": "c6a47f37-38f5-45c4-8376-5524df8540c8"}</msg>
<msg timestamp="20210630 16:57:20.734" level="DEBUG">http://127.0.0.1:52850 "GET /session/fce2ee44d73712a560adb22b425ef4e5/element/c6a47f37-38f5-45c4-8376-5524df8540c8/enabled HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 16:57:20.734" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:20.734" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/execute/sync {"script": "return (function(){return function(){var d=this;function f(a){return\"string\"==typeof a};function h(a,b){this.code=a;this.a=l[a]||m;this.message=b||\"\";a=this.a.replace(/((?:^|\\s+)[a-z])/g,function(a){return a.toUpperCase().replace(/^[\\s\\xa0]+/g,\"\")});b=a.length-5;if(0&gt;b||a.indexOf(\"Error\",b)!=b)a+=\"Error\";this.name=a;a=Error(this.message);a.name=this.name;this.stack=a.stack||\"\"}\n(function(){var a=Error;function b(){}b.prototype=a.prototype;h.b=a.prototype;h.prototype=new b;h.prototype.constructor=h;h.a=function(b,c,g){for(var e=Array(arguments.length-2),k=2;k&lt;arguments.length;k++)e[k-2]=arguments[k];return a.prototype[c].apply(b,e)}})();var m=\"unknown error\",l={15:\"element not selectable\",11:\"element not visible\"};l[31]=m;l[30]=m;l[24]=\"invalid cookie domain\";l[29]=\"invalid element coordinates\";l[12]=\"invalid element state\";l[32]=\"invalid selector\";l[51]=\"invalid selector\";\nl[52]=\"invalid selector\";l[17]=\"javascript error\";l[405]=\"unsupported operation\";l[34]=\"move target out of bounds\";l[27]=\"no such alert\";l[7]=\"no such element\";l[8]=\"no such frame\";l[23]=\"no such window\";l[28]=\"script timeout\";l[33]=\"session not created\";l[10]=\"stale element reference\";l[21]=\"timeout\";l[25]=\"unable to set cookie\";l[26]=\"unexpected alert open\";l[13]=m;l[9]=\"unknown command\";h.prototype.toString=function(){return this.name+\": \"+this.message};var n;a:{var p=d.navigator;if(p){var q=p.userAgent;if(q){n=q;break a}}n=\"\"}function r(a){return-1!=n.indexOf(a)};function t(a,b){for(var e=a.length,c=f(a)?a.split(\"\"):a,g=0;g&lt;e;g++)g in c&amp;&amp;b.call(void 0,c[g],g,a)};function v(){return r(\"iPhone\")&amp;&amp;!r(\"iPod\")&amp;&amp;!r(\"iPad\")};function w(){return(r(\"Chrome\")||r(\"CriOS\"))&amp;&amp;!r(\"Edge\")};var x=r(\"Opera\"),y=r(\"Trident\")||r(\"MSIE\"),z=r(\"Edge\"),A=r(\"Gecko\")&amp;&amp;!(-1!=n.toLowerCase().indexOf(\"webkit\")&amp;&amp;!r(\"Edge\"))&amp;&amp;!(r(\"Trident\")||r(\"MSIE\"))&amp;&amp;!r(\"Edge\"),aa=-1!=n.toLowerCase().indexOf(\"webkit\")&amp;&amp;!r(\"Edge\");function B(){var a=d.document;return a?a.documentMode:void 0}var C;\na:{var D=\"\",E=function(){var a=n;if(A)return/rv\\:([^\\);]+)(\\)|;)/.exec(a);if(z)return/Edge\\/([\\d\\.]+)/.exec(a);if(y)return/\\b(?:MSIE|rv)[: ]([^\\);]+)(\\)|;)/.exec(a);if(aa)return/WebKit\\/(\\S+)/.exec(a);if(x)return/(?:Version)[ \\/]?(\\S+)/.exec(a)}();E&amp;&amp;(D=E?E[1]:\"\");if(y){var F=B();if(null!=F&amp;&amp;F&gt;parseFloat(D)){C=String(F);break a}}C=D}var G;var H=d.document;G=H&amp;&amp;y?B()||(\"CSS1Compat\"==H.compatMode?parseInt(C,10):5):void 0;var ba=r(\"Firefox\"),ca=v()||r(\"iPod\"),da=r(\"iPad\"),I=r(\"Android\")&amp;&amp;!(w()||r(\"Firefox\")||r(\"Opera\")||r(\"Silk\")),ea=w(),J=r(\"Safari\")&amp;&amp;!(w()||r(\"Coast\")||r(\"Opera\")||r(\"Edge\")||r(\"Silk\")||r(\"Android\"))&amp;&amp;!(v()||r(\"iPad\")||r(\"iPod\"));function K(a){return(a=a.exec(n))?a[1]:\"\"}(function(){if(ba)return K(/Firefox\\/([0-9.]+)/);if(y||z||x)return C;if(ea)return v()||r(\"iPad\")||r(\"iPod\")?K(/CriOS\\/([0-9.]+)/):K(/Chrome\\/([0-9.]+)/);if(J&amp;&amp;!(v()||r(\"iPad\")||r(\"iPod\")))return K(/Version\\/([0-9.]+)/);if(ca||da){var a=/Version\\/(\\S+).*Mobile\\/(\\S+)/.exec(n);if(a)return a[1]+\".\"+a[2]}else if(I)return(a=K(/Android\\s+([0-9.]+)/))?a:K(/Version\\/([0-9.]+)/);return\"\"})();var L,M=function(){if(!A)return!1;var a=d.Components;if(!a)return!1;try{if(!a.classes)return!1}catch(g){return!1}var b=a.classes,a=a.interfaces,e=b[\"@mozilla.org/xpcom/version-comparator;1\"].getService(a.nsIVersionComparator),c=b[\"@mozilla.org/xre/app-info;1\"].getService(a.nsIXULAppInfo).version;L=function(a){e.compare(c,\"\"+a)};return!0}(),N=y&amp;&amp;!(8&lt;=Number(G)),fa=y&amp;&amp;!(9&lt;=Number(G));I&amp;&amp;M&amp;&amp;L(2.3);I&amp;&amp;M&amp;&amp;L(4);J&amp;&amp;M&amp;&amp;L(6);var ga={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1},O={IMG:\" \",BR:\"\\n\"};function P(a,b,e){if(!(a.nodeName in ga))if(3==a.nodeType)e?b.push(String(a.nodeValue).replace(/(\\r\\n|\\r|\\n)/g,\"\")):b.push(a.nodeValue);else if(a.nodeName in O)b.push(O[a.nodeName]);else for(a=a.firstChild;a;)P(a,b,e),a=a.nextSibling};function Q(a,b){b=b.toLowerCase();return\"style\"==b?ha(a.style.cssText):N&amp;&amp;\"value\"==b&amp;&amp;R(a,\"INPUT\")?a.value:fa&amp;&amp;!0===a[b]?String(a.getAttribute(b)):(a=a.getAttributeNode(b))&amp;&amp;a.specified?a.value:null}var ia=/[;]+(?=(?:(?:[^\"]*\"){2})*[^\"]*$)(?=(?:(?:[^']*'){2})*[^']*$)(?=(?:[^()]*\\([^()]*\\))*[^()]*$)/;\nfunction ha(a){var b=[];t(a.split(ia),function(a){var c=a.indexOf(\":\");0&lt;c&amp;&amp;(a=[a.slice(0,c),a.slice(c+1)],2==a.length&amp;&amp;b.push(a[0].toLowerCase(),\":\",a[1],\";\"))});b=b.join(\"\");return b=\";\"==b.charAt(b.length-1)?b:b+\";\"}function S(a,b){N&amp;&amp;\"value\"==b&amp;&amp;R(a,\"OPTION\")&amp;&amp;null===Q(a,\"value\")?(b=[],P(a,b,!1),a=b.join(\"\")):a=a[b];return a}function R(a,b){b&amp;&amp;\"string\"!==typeof b&amp;&amp;(b=b.toString());return!!a&amp;&amp;1==a.nodeType&amp;&amp;(!b||a.tagName.toUpperCase()==b)}\nfunction T(a){return R(a,\"OPTION\")?!0:R(a,\"INPUT\")?(a=a.type.toLowerCase(),\"checkbox\"==a||\"radio\"==a):!1};var ja={\"class\":\"className\",readonly:\"readOnly\"},U=\"allowfullscreen allowpaymentrequest allowusermedia async autofocus autoplay checked compact complete controls declare default defaultchecked defaultselected defer disabled ended formnovalidate hidden indeterminate iscontenteditable ismap itemscope loop multiple muted nohref nomodule noresize noshade novalidate nowrap open paused playsinline pubdate readonly required reversed scoped seamless seeking selected truespeed typemustmatch willvalidate\".split(\" \");function V(a,b){var e=null,c=b.toLowerCase();if(\"style\"==c)return(e=a.style)&amp;&amp;!f(e)&amp;&amp;(e=e.cssText),e;if((\"selected\"==c||\"checked\"==c)&amp;&amp;T(a)){if(!T(a))throw new h(15,\"Element is not selectable\");b=\"selected\";e=a.type&amp;&amp;a.type.toLowerCase();if(\"checkbox\"==e||\"radio\"==e)b=\"checked\";return S(a,b)?\"true\":null}var g=R(a,\"A\");if(R(a,\"IMG\")&amp;&amp;\"src\"==c||g&amp;&amp;\"href\"==c)return(e=Q(a,c))&amp;&amp;(e=S(a,c)),e;if(\"spellcheck\"==c){e=Q(a,c);if(null!==e){if(\"false\"==e.toLowerCase())return\"false\";if(\"true\"==e.toLowerCase())return\"true\"}return S(a,\nc)+\"\"}g=ja[b]||b;a:if(f(U))c=f(c)&amp;&amp;1==c.length?U.indexOf(c,0):-1;else{for(var u=0;u&lt;U.length;u++)if(u in U&amp;&amp;U[u]===c){c=u;break a}c=-1}if(0&lt;=c)return(e=null!==Q(a,b)||S(a,g))?\"true\":null;try{var k=S(a,g)}catch(ka){}(c=null==k)||(c=typeof k,c=\"object\"==c&amp;&amp;null!=k||\"function\"==c);c?e=Q(a,b):e=k;return null!=e?e.toString():null}var W=[\"_\"],X=d;W[0]in X||!X.execScript||X.execScript(\"var \"+W[0]);\nfor(var Y;W.length&amp;&amp;(Y=W.shift());){var Z;if(Z=!W.length)Z=void 0!==V;Z?X[Y]=V:X[Y]&amp;&amp;X[Y]!==Object.prototype[Y]?X=X[Y]:X=X[Y]={}};; return this._.apply(null,arguments);}.apply({navigator:typeof window!='undefined'?window.navigator:null,document:typeof window!='undefined'?window.document:null}, arguments);}\n).apply(null, arguments);", "args": [{"ELEMENT": "c6a47f37-38f5-45c4-8376-5524df8540c8", "element-6066-11e4-a52e-4f735466cecf": "c6a47f37-38f5-45c4-8376-5524df8540c8"}, "readonly"]}</msg>
<msg timestamp="20210630 16:57:20.738" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/execute/sync HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 16:57:20.739" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 16:57:15.578" endtime="20210630 16:57:20.739"/>
</kw>
<kw name="Click Button" library="SeleniumLibrary">
<arg>${locator_vars}[我知道了]</arg>
<doc>Clicks the button identified by ``locator``.</doc>
<msg timestamp="20210630 16:57:20.739" level="INFO">Clicking button 'xpath=//button[text()="我知道了"]'.</msg>
<msg timestamp="20210630 16:57:20.739" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:20.744" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 16:57:20.744" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:20.745" level="DEBUG">GET http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/element/c6a47f37-38f5-45c4-8376-5524df8540c8/name {"id": "c6a47f37-38f5-45c4-8376-5524df8540c8"}</msg>
<msg timestamp="20210630 16:57:20.747" level="DEBUG">http://127.0.0.1:52850 "GET /session/fce2ee44d73712a560adb22b425ef4e5/element/c6a47f37-38f5-45c4-8376-5524df8540c8/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 16:57:20.747" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:20.747" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 16:57:20.752" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 16:57:20.752" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:20.752" level="DEBUG">GET http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/element/c6a47f37-38f5-45c4-8376-5524df8540c8/name {"id": "c6a47f37-38f5-45c4-8376-5524df8540c8"}</msg>
<msg timestamp="20210630 16:57:20.754" level="DEBUG">http://127.0.0.1:52850 "GET /session/fce2ee44d73712a560adb22b425ef4e5/element/c6a47f37-38f5-45c4-8376-5524df8540c8/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 16:57:20.754" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:20.754" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/element/c6a47f37-38f5-45c4-8376-5524df8540c8/click {"id": "c6a47f37-38f5-45c4-8376-5524df8540c8"}</msg>
<msg timestamp="20210630 16:57:20.791" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/element/c6a47f37-38f5-45c4-8376-5524df8540c8/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 16:57:20.792" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 16:57:20.739" endtime="20210630 16:57:20.792"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[智客]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 16:57:20.793" level="INFO">Clicking element 'xpath=//div[@data-title="智客"]'.</msg>
<msg timestamp="20210630 16:57:20.793" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//div[@data-title=\"\u667a\u5ba2\"]"}</msg>
<msg timestamp="20210630 16:57:20.801" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 16:57:20.801" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:20.802" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/element/d0d6a94e-764d-4d26-9567-d77f09fe5ab6/click {"id": "d0d6a94e-764d-4d26-9567-d77f09fe5ab6"}</msg>
<msg timestamp="20210630 16:57:20.862" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/element/d0d6a94e-764d-4d26-9567-d77f09fe5ab6/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 16:57:20.862" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 16:57:20.792" endtime="20210630 16:57:20.862"/>
</kw>
<kw name="Switch Window" library="SeleniumLibrary">
<arg>NEW</arg>
<doc>Switches to browser window matching ``locator``.</doc>
<msg timestamp="20210630 16:57:20.863" level="DEBUG">GET http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/window {}</msg>
<msg timestamp="20210630 16:57:20.866" level="DEBUG">http://127.0.0.1:52850 "GET /session/fce2ee44d73712a560adb22b425ef4e5/window HTTP/1.1" 200 53</msg>
<msg timestamp="20210630 16:57:20.867" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:20.867" level="DEBUG">GET http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/window/handles {}</msg>
<msg timestamp="20210630 16:57:20.869" level="DEBUG">http://127.0.0.1:52850 "GET /session/fce2ee44d73712a560adb22b425ef4e5/window/handles HTTP/1.1" 200 99</msg>
<msg timestamp="20210630 16:57:20.870" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:20.870" level="DEBUG">GET http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/window {}</msg>
<msg timestamp="20210630 16:57:20.871" level="DEBUG">http://127.0.0.1:52850 "GET /session/fce2ee44d73712a560adb22b425ef4e5/window HTTP/1.1" 200 53</msg>
<msg timestamp="20210630 16:57:20.871" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:20.872" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/window {"handle": "CDwindow-A889972FE1B1A18BAB4BE30929F0E8E8"}</msg>
<msg timestamp="20210630 16:57:20.887" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/window HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 16:57:20.887" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 16:57:20.863" endtime="20210630 16:57:20.887"/>
</kw>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>已有企业微信</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 16:57:20.888" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210630 16:57:21.882" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:21.883" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:22.092" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210630 16:57:22.103" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:22.104" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:22.305" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210630 16:57:22.455" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 1117</msg>
<msg timestamp="20210630 16:57:22.455" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 16:57:20.887" endtime="20210630 16:57:22.455"/>
</kw>
<status status="PASS" starttime="20210630 16:57:11.576" endtime="20210630 16:57:22.456"/>
</kw>
<status status="PASS" starttime="20210630 16:57:11.576" endtime="20210630 16:57:22.456"/>
</kw>
<test id="s1-t1" name="Tc1 Skill group add case">
<kw name="Run Keywords" library="BuiltIn" type="SETUP">
<arg>My Test Setup</arg>
<doc>Executes all the given keywords in a sequence.</doc>
<kw name="My Test Setup" library="callcenter_Skillsgroup_V6_setup_teardown">
<kw name="Click Link" library="SeleniumLibrary">
<arg>${locator_vars}[首页]</arg>
<doc>Clicks a link identified by ``locator``.</doc>
<msg timestamp="20210630 16:57:22.459" level="INFO">Clicking link 'xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a'.</msg>
<msg timestamp="20210630 16:57:22.459" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//*[@id=\"root\"]/div/div[2]/ul/li[2]/a"}</msg>
<msg timestamp="20210630 16:57:22.471" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 16:57:22.471" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:22.471" level="DEBUG">GET http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/element/ee0ef066-77ee-492a-bbf1-926cb3bde4bd/name {"id": "ee0ef066-77ee-492a-bbf1-926cb3bde4bd"}</msg>
<msg timestamp="20210630 16:57:22.478" level="DEBUG">http://127.0.0.1:52850 "GET /session/fce2ee44d73712a560adb22b425ef4e5/element/ee0ef066-77ee-492a-bbf1-926cb3bde4bd/name HTTP/1.1" 200 13</msg>
<msg timestamp="20210630 16:57:22.478" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:22.478" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/element/ee0ef066-77ee-492a-bbf1-926cb3bde4bd/click {"id": "ee0ef066-77ee-492a-bbf1-926cb3bde4bd"}</msg>
<msg timestamp="20210630 16:57:23.060" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/element/ee0ef066-77ee-492a-bbf1-926cb3bde4bd/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 16:57:23.060" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 16:57:22.458" endtime="20210630 16:57:23.060"/>
</kw>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>首页</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 16:57:23.061" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//*[contains(., '\u9996\u9875')]"}</msg>
<msg timestamp="20210630 16:57:23.072" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 801</msg>
<msg timestamp="20210630 16:57:23.072" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 16:57:23.061" endtime="20210630 16:57:23.072"/>
</kw>
<kw name="Sleep" library="BuiltIn">
<arg>2</arg>
<doc>Pauses the test executed for the given time.</doc>
<msg timestamp="20210630 16:57:25.074" level="INFO">Slept 2 seconds</msg>
<status status="PASS" starttime="20210630 16:57:23.073" endtime="20210630 16:57:25.074"/>
</kw>
<status status="PASS" starttime="20210630 16:57:22.458" endtime="20210630 16:57:25.074"/>
</kw>
<status status="PASS" starttime="20210630 16:57:22.457" endtime="20210630 16:57:25.074"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>---------- Tc1 step 1: 进入V6呼叫中心erererrer ------------</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 16:57:25.076" level="INFO">---------- Tc1 step 1: 进入V6呼叫中心erererrer ------------</msg>
<status status="PASS" starttime="20210630 16:57:25.076" endtime="20210630 16:57:25.076"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-新呼叫中心]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 16:57:25.077" level="INFO">Clicking element 'xpath=//*[@id="root"]/div/div[3]/div/div/div/div[2]/div/div[9]/a'.</msg>
<msg timestamp="20210630 16:57:25.077" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//*[@id=\"root\"]/div/div[3]/div/div/div/div[2]/div/div[9]/a"}</msg>
<msg timestamp="20210630 16:57:25.106" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 16:57:25.107" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:25.107" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/element/9d6f6bd0-7f99-43ec-94bc-80e8411890b4/click {"id": "9d6f6bd0-7f99-43ec-94bc-80e8411890b4"}</msg>
<msg timestamp="20210630 16:57:26.627" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/element/9d6f6bd0-7f99-43ec-94bc-80e8411890b4/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 16:57:26.628" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 16:57:25.076" endtime="20210630 16:57:26.628"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>---------- Tc1 step 2: 进入呼叫中心 &gt; 技能组 ------------</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 16:57:26.629" level="INFO">---------- Tc1 step 2: 进入呼叫中心 &gt; 技能组 ------------</msg>
<status status="PASS" starttime="20210630 16:57:26.629" endtime="20210630 16:57:26.630"/>
</kw>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>技能组</arg>
<arg>${sleep_60}</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 16:57:26.631" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//*[contains(., '\u6280\u80fd\u7ec4')]"}</msg>
<msg timestamp="20210630 16:57:26.647" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:26.648" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:26.859" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//*[contains(., '\u6280\u80fd\u7ec4')]"}</msg>
<msg timestamp="20210630 16:57:26.867" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 16:57:26.868" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:27.072" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//*[contains(., '\u6280\u80fd\u7ec4')]"}</msg>
<msg timestamp="20210630 16:57:27.079" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 1354</msg>
<msg timestamp="20210630 16:57:27.080" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 16:57:26.630" endtime="20210630 16:57:27.080"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-呼叫技能组]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 16:57:27.081" level="INFO">Clicking element 'xpath=//*[@id="0-0$Menu"]/li[3]/a[text()=("呼叫技能组")]'.</msg>
<msg timestamp="20210630 16:57:27.081" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//*[@id=\"0-0$Menu\"]/li[3]/a[text()=(\"\u547c\u53eb\u6280\u80fd\u7ec4\")]"}</msg>
<msg timestamp="20210630 16:57:27.089" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 16:57:27.089" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:27.089" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/element/2ba995c7-a817-40ca-a9c5-4338071ff6b3/click {"id": "2ba995c7-a817-40ca-a9c5-4338071ff6b3"}</msg>
<msg timestamp="20210630 16:57:27.152" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/element/2ba995c7-a817-40ca-a9c5-4338071ff6b3/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 16:57:27.152" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 16:57:27.081" endtime="20210630 16:57:27.152"/>
</kw>
<kw name="Sleep" library="BuiltIn">
<arg>${sleep_3}</arg>
<doc>Pauses the test executed for the given time.</doc>
<msg timestamp="20210630 16:57:30.164" level="INFO">Slept 3 seconds</msg>
<status status="PASS" starttime="20210630 16:57:27.153" endtime="20210630 16:57:30.165"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>--------------- Tc1 step 3: 新增技能组(重复组号/重复名字) -------------------------------</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 16:57:30.169" level="INFO">--------------- Tc1 step 3: 新增技能组(重复组号/重复名字) -------------------------------</msg>
<status status="PASS" starttime="20210630 16:57:30.169" endtime="20210630 16:57:30.169"/>
</kw>
<kw name="Set Variable" library="BuiltIn">
<var>${groupName}</var>
<arg>发生的</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<msg timestamp="20210630 16:57:30.170" level="INFO">${groupName} = 发生的</msg>
<status status="PASS" starttime="20210630 16:57:30.169" endtime="20210630 16:57:30.170"/>
</kw>
<kw name="Set Variable" library="BuiltIn">
<var>${groupNumber}</var>
<arg>2233</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<msg timestamp="20210630 16:57:30.170" level="INFO">${groupNumber} = 2233</msg>
<status status="PASS" starttime="20210630 16:57:30.170" endtime="20210630 16:57:30.170"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>新增</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 16:57:30.171" level="INFO">新增</msg>
<status status="PASS" starttime="20210630 16:57:30.170" endtime="20210630 16:57:30.171"/>
</kw>
<kw name="Click Button" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-新增]</arg>
<doc>Clicks the button identified by ``locator``.</doc>
<msg timestamp="20210630 16:57:30.171" level="INFO">Clicking button 'xpath=//*[@id="searchRight"]/button/span[text()="新建"]'.</msg>
<msg timestamp="20210630 16:57:30.171" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//*[@id=\"searchRight\"]/button/span[text()=\"\u65b0\u5efa\"]"}</msg>
<msg timestamp="20210630 16:57:30.180" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 16:57:30.180" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:30.180" level="DEBUG">GET http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/element/803dfb4b-abb2-4f0b-80eb-ddf4be6a1ebb/name {"id": "803dfb4b-abb2-4f0b-80eb-ddf4be6a1ebb"}</msg>
<msg timestamp="20210630 16:57:30.182" level="DEBUG">http://127.0.0.1:52850 "GET /session/fce2ee44d73712a560adb22b425ef4e5/element/803dfb4b-abb2-4f0b-80eb-ddf4be6a1ebb/name HTTP/1.1" 200 16</msg>
<msg timestamp="20210630 16:57:30.183" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:30.183" level="DEBUG">POST http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/elements {"using": "xpath", "value": "//*[@id=\"searchRight\"]/button/span[text()=\"\u65b0\u5efa\"]"}</msg>
<msg timestamp="20210630 16:57:30.187" level="DEBUG">http://127.0.0.1:52850 "POST /session/fce2ee44d73712a560adb22b425ef4e5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 16:57:30.187" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:30.187" level="DEBUG">GET http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/element/803dfb4b-abb2-4f0b-80eb-ddf4be6a1ebb/name {"id": "803dfb4b-abb2-4f0b-80eb-ddf4be6a1ebb"}</msg>
<msg timestamp="20210630 16:57:30.189" level="DEBUG">http://127.0.0.1:52850 "GET /session/fce2ee44d73712a560adb22b425ef4e5/element/803dfb4b-abb2-4f0b-80eb-ddf4be6a1ebb/name HTTP/1.1" 200 16</msg>
<msg timestamp="20210630 16:57:30.189" level="DEBUG">Finished Request</msg>
<kw name="Capture Page Screenshot" library="SeleniumLibrary">
<doc>Takes a screenshot of the current page and embeds it into a log file.</doc>
<msg timestamp="20210630 16:57:30.190" level="DEBUG">GET http://127.0.0.1:52850/session/fce2ee44d73712a560adb22b425ef4e5/screenshot {}</msg>
<msg timestamp="20210630 16:57:30.328" level="DEBUG">http://127.0.0.1:52850 "GET /session/fce2ee44d73712a560adb22b425ef4e5/screenshot HTTP/1.1" 200 177504</msg>
<msg timestamp="20210630 16:57:30.328" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 16:57:30.330" level="INFO" html="true">&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3"&gt;&lt;a href="selenium-screenshot-20.png"&gt;&lt;img src="selenium-screenshot-20.png" width="800px"&gt;&lt;/a&gt;</msg>
<status status="PASS" starttime="20210630 16:57:30.189" endtime="20210630 16:57:30.330"/>
</kw>
<msg timestamp="20210630 16:57:30.367" level="FAIL">Button with locator 'xpath=//*[@id="searchRight"]/button/span[text()="新建"]' not found.</msg>
<msg timestamp="20210630 16:57:30.367" level="DEBUG">Traceback (most recent call last):
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\SeleniumLibrary\__init__.py", line 492, in run_keyword
return DynamicCore.run_keyword(self, name, args, kwargs)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\robotlibcore.py", line 103, in run_keyword
return self.keywords[name](*args, **(kwargs or {}))
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\SeleniumLibrary\keywords\element.py", line 565, in click_button
element = self.find_element(locator, tag="button")
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\SeleniumLibrary\base\context.py", line 82, in find_element
return self.element_finder.find(locator, tag, True, required, parent)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\SeleniumLibrary\locators\elementfinder.py", line 92, in find
return self._find(locators[-1], tag, first_only, required, element)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\SeleniumLibrary\locators\elementfinder.py", line 124, in _find
raise ElementNotFound(f"{element_type} with locator '{locator}' not found.")</msg>
<status status="FAIL" starttime="20210630 16:57:30.171" endtime="20210630 16:57:30.367"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-名称文本]</arg>
<arg>${groupName}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 16:57:30.367" endtime="20210630 16:57:30.367"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-组号]</arg>
<arg>${groupNumber}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 16:57:30.367" endtime="20210630 16:57:30.367"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-新建]</arg>
<doc>Click the element identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 16:57:30.367" endtime="20210630 16:57:30.367"/>
</kw>
<kw name="Check Flash Prompt Message" library="public_robot_keywords">
<arg>flash_prompt_locator=${locator_vars}[组成员-添加-错误提示弹板]</arg>
<arg>excepted_message=队列号已存在</arg>
<doc>check三秒提示信息是否是预期值</doc>
<status status="NOT RUN" starttime="20210630 16:57:30.368" endtime="20210630 16:57:30.368"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>--------------- Tc1 step 3: 新增技能组(非组号重复名字) -------------------------------</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" starttime="20210630 16:57:30.368" endtime="20210630 16:57:30.368"/>
</kw>
<kw name="Set Variable" library="BuiltIn">
<var>${groupNumber}</var>
<arg>6667</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" starttime="20210630 16:57:30.368" endtime="20210630 16:57:30.368"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>新增</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" starttime="20210630 16:57:30.368" endtime="20210630 16:57:30.368"/>
</kw>
<kw name="Click Button" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-新增]</arg>
<doc>Clicks the button identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 16:57:30.369" endtime="20210630 16:57:30.369"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-名称文本]</arg>
<arg>${groupName}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 16:57:30.369" endtime="20210630 16:57:30.369"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-组号]</arg>
<arg>${groupNumber}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 16:57:30.369" endtime="20210630 16:57:30.369"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-新建]</arg>
<doc>Click the element identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 16:57:30.369" endtime="20210630 16:57:30.369"/>
</kw>
<kw name="sleep 2">
<status status="NOT RUN" starttime="20210630 16:57:30.373" endtime="20210630 16:57:30.373"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-创建返回列表]</arg>
<doc>Click the element identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 16:57:30.373" endtime="20210630 16:57:30.373"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>--------校验是否添加成功---------</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" starttime="20210630 16:57:30.374" endtime="20210630 16:57:30.374"/>
</kw>
<kw name="Get Table Data For Column" library="public_robot_keywords">
<var>${listDataNumber}</var>
<arg>tbody_locator=${locator_vars}[V6-技能组tbody]</arg>
<arg>column=2</arg>
<arg>right_arrow_locator=${locator_vars}[V6-技能组-下一页]</arg>
<arg>the_first_page_locator=${locator_vars}[V6-技能组-第一页切换]</arg>
<doc>取得table列数据</doc>
<status status="NOT RUN" starttime="20210630 16:57:30.374" endtime="20210630 16:57:30.374"/>
</kw>
<kw name="Check Items Match Or Not In List" library="public_robot_keywords">
<arg>all_data=${listDataNumber}</arg>
<arg>check_items=${groupNumber}</arg>
<doc>在list里检查items数据是否精确匹配</doc>
<status status="NOT RUN" starttime="20210630 16:57:30.374" endtime="20210630 16:57:30.374"/>
</kw>
<doc>- 进入呼叫中心
- 进入呼叫中心</doc>
<tag>1</tag>
<tag>Sanity</tag>
<tag>呼叫中心</tag>
<status status="FAIL" starttime="20210630 16:57:22.456" endtime="20210630 16:57:30.374">Button with locator 'xpath=//*[@id="searchRight"]/button/span[text()="新建"]' not found.</status>
</test>
<doc>callcenter_Relaynumber_V6_full1.robot
author: jiawei</doc>
<status status="FAIL" starttime="20210630 16:57:11.265" endtime="20210630 16:57:30.375"/>
</suite>
<statistics>
<total>
<stat pass="0" fail="1" skip="0">All Tests</stat>
</total>
<tag>
<stat pass="0" fail="1" skip="0">1</stat>
<stat pass="0" fail="1" skip="0">Sanity</stat>
<stat pass="0" fail="1" skip="0">呼叫中心</stat>
</tag>
<suite>
<stat pass="0" fail="1" skip="0" id="s1" name="callcenter Skillsgroup V6 full1">callcenter Skillsgroup V6 full1</stat>
</suite>
</statistics>
<errors>
<msg timestamp="20210630 16:57:11.530" level="WARN">Imported library 'D:\word\自动化\script_template\keyword\callcenter_V6_python_keywords.py' contains no keywords.</msg>
</errors>
</robot>
<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 4.0.3 (Python 3.8.8 on win32)" generated="20210630 17:19:06.943" rpa="false" schemaversion="2">
<suite id="s1" name="callcenter Skillsgroup V6 full1" source="D:\word\自动化\script_template\callcenter_Skillsgroup_V6_full1.robot">
<kw name="Run Keywords" library="BuiltIn" type="SETUP">
<arg>My Suite Setup</arg>
<doc>Executes all the given keywords in a sequence.</doc>
<kw name="My Suite Setup" library="callcenter_Skillsgroup_V6_setup_teardown">
<kw name="Log" library="BuiltIn">
<arg>========================== My Suite Setup Start ==========================</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:19:07.257" level="INFO">========================== My Suite Setup Start ==========================</msg>
<status status="PASS" starttime="20210630 17:19:07.257" endtime="20210630 17:19:07.265"/>
</kw>
<kw name="Fetch Json Vars" library="public_python_keywords">
<var>&amp;{gbl_vars}</var>
<arg>file=D:\\word\\自动化\\script_template\\json_file\\call_center_vars.json</arg>
<msg timestamp="20210630 17:19:07.265" level="INFO">&amp;{gbl_vars} = { log_level=DEBUG | url=http://test.sobot.com/console/login | browser=gc | email=mjmj@zhichi.com | password=sobot1234 | w_size_hor_pixels=1920 | w_size_ver_pixels=1080 | time={'hour': 11, 'minute': '2...</msg>
<status status="PASS" starttime="20210630 17:19:07.265" endtime="20210630 17:19:07.267"/>
</kw>
<kw name="Set Global Variable" library="BuiltIn">
<arg>${gbl_vars}</arg>
<doc>Makes a variable available globally in all tests and suites.</doc>
<msg timestamp="20210630 17:19:07.267" level="INFO">${gbl_vars} = {'log_level': 'DEBUG', 'url': 'http://test.sobot.com/console/login', 'browser': 'gc', 'email': 'mjmj@zhichi.com', 'password': 'sobot1234', 'w_size_hor_pixels': 1920, 'w_size_ver_pixels': 1080, 'time':...</msg>
<status status="PASS" starttime="20210630 17:19:07.267" endtime="20210630 17:19:07.267"/>
</kw>
<kw name="Fetch Json Vars" library="public_python_keywords">
<var>&amp;{locator_vars}</var>
<arg>file=D:\\word\\自动化\\script_template\\json_file\\call_center_locator_vars.json</arg>
<msg timestamp="20210630 17:19:07.267" level="INFO">&amp;{locator_vars} = { 我知道了=xpath=//button[text()="我知道了"] | 智客=xpath=//div[@data-title="智客"] | 首页=xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a | 呼叫中心=x、】path=//*[@id="root"]/div/div[2]/ul/li[3]/a | 企微智客=xpath=//*[@id="root...</msg>
<status status="PASS" starttime="20210630 17:19:07.267" endtime="20210630 17:19:07.267"/>
</kw>
<kw name="Set Global Variable" library="BuiltIn">
<arg>${locator_vars}</arg>
<doc>Makes a variable available globally in all tests and suites.</doc>
<msg timestamp="20210630 17:19:07.267" level="INFO">${locator_vars} = {'我知道了': 'xpath=//button[text()="我知道了"]', '智客': 'xpath=//div[@data-title="智客"]', '首页': 'xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a', '呼叫中心': 'x、】path=//*[@id="root"]/div/div[2]/ul/li[3]/a', '企微智客': '...</msg>
<status status="PASS" starttime="20210630 17:19:07.267" endtime="20210630 17:19:07.267"/>
</kw>
<kw name="Set Log Level" library="BuiltIn">
<arg>${gbl_vars}[log_level]</arg>
<doc>Sets the log threshold to the specified level and returns the old level.</doc>
<msg timestamp="20210630 17:19:07.267" level="INFO">Log level changed from INFO to DEBUG.</msg>
<status status="PASS" starttime="20210630 17:19:07.267" endtime="20210630 17:19:07.267"/>
</kw>
<kw name="Close All Browsers" library="SeleniumLibrary">
<doc>Closes all open browsers and resets the browser cache.</doc>
<msg timestamp="20210630 17:19:07.269" level="DEBUG">Closing all browsers.</msg>
<status status="PASS" starttime="20210630 17:19:07.267" endtime="20210630 17:19:07.269"/>
</kw>
<kw name="Open Browser And Set Size" library="public_robot_keywords">
<arg>url=${gbl_vars}[url]</arg>
<arg>set_window_size=${True}</arg>
<arg>set_max_browser_window=${True}</arg>
<doc>打开指定类型的浏览器,并设置窗口大小</doc>
<kw name="Open Browser" library="SeleniumLibrary">
<arg>${url}</arg>
<arg>${browser}</arg>
<doc>Opens a new browser instance to the optional ``url``.</doc>
<msg timestamp="20210630 17:19:07.269" level="INFO">Opening browser 'gc' to base url 'http://test.sobot.com/console/login'.</msg>
<msg timestamp="20210630 17:19:07.822" level="DEBUG">POST http://127.0.0.1:54721/session {"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "platformName": "any", "goog:chromeOptions": {"extensions": [], "args": []}}}, "desiredCapabilities": {"browserName": "chrome", "version": "", "platform": "ANY", "goog:chromeOptions": {"extensions": [], "args": []}}}</msg>
<msg timestamp="20210630 17:19:07.823" level="DEBUG">Starting new HTTP connection (1): 127.0.0.1:54721</msg>
<msg timestamp="20210630 17:19:08.523" level="DEBUG">http://127.0.0.1:54721 "POST /session HTTP/1.1" 200 752</msg>
<msg timestamp="20210630 17:19:08.523" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:08.523" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/timeouts {"script": 5000}</msg>
<msg timestamp="20210630 17:19:08.524" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/timeouts HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:19:08.524" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:08.524" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/timeouts {"implicit": 0}</msg>
<msg timestamp="20210630 17:19:08.526" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/timeouts HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:19:08.527" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:08.528" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/url {"url": "http://test.sobot.com/console/login"}</msg>
<msg timestamp="20210630 17:19:11.071" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/url HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:19:11.072" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:11.072" level="DEBUG">Opened browser with session id 5594e3afb76e6ec7e4a5dbb42461f9a7.</msg>
<status status="PASS" starttime="20210630 17:19:07.269" endtime="20210630 17:19:11.072"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${set_window_size}</arg>
<arg>Set Window Size</arg>
<arg>${hor_pixels}</arg>
<arg>${ver_pixels}</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Set Window Size" library="SeleniumLibrary">
<arg>${hor_pixels}</arg>
<arg>${ver_pixels}</arg>
<doc>Sets current windows size to given ``width`` and ``height``.</doc>
<msg timestamp="20210630 17:19:11.074" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/window/rect {"x": null, "y": null, "width": 1920, "height": 1080}</msg>
<msg timestamp="20210630 17:19:11.224" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/window/rect HTTP/1.1" 200 51</msg>
<msg timestamp="20210630 17:19:11.225" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:19:11.074" endtime="20210630 17:19:11.225"/>
</kw>
<status status="PASS" starttime="20210630 17:19:11.072" endtime="20210630 17:19:11.226"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${set_max_browser_window}</arg>
<arg>Maximize Browser Window</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Maximize Browser Window" library="SeleniumLibrary">
<doc>Maximizes current browser window.</doc>
<msg timestamp="20210630 17:19:11.228" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/window/maximize {}</msg>
<msg timestamp="20210630 17:19:11.368" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/window/maximize HTTP/1.1" 200 51</msg>
<msg timestamp="20210630 17:19:11.368" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:19:11.228" endtime="20210630 17:19:11.368"/>
</kw>
<status status="PASS" starttime="20210630 17:19:11.226" endtime="20210630 17:19:11.369"/>
</kw>
<status status="PASS" starttime="20210630 17:19:07.269" endtime="20210630 17:19:11.369"/>
</kw>
<kw name="Logon Soboten" library="public_robot_keywords">
<arg>logon_type=0</arg>
<arg>email=${gbl_vars}[email]</arg>
<arg>password=${gbl_vars}[password]</arg>
<doc>根据参数logon_type值,登录相应的智齿系统</doc>
<kw name="Run Keyword If" library="BuiltIn">
<arg>'@' not in "${email}" or '.' not in "${email}"</arg>
<arg>Fail</arg>
<arg>email format is wrong, please double check!</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210630 17:19:11.369" endtime="20210630 17:19:11.370"/>
</kw>
<kw name="Get Length" library="BuiltIn">
<var>${password_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<msg timestamp="20210630 17:19:11.370" level="INFO">Length is 9</msg>
<msg timestamp="20210630 17:19:11.370" level="INFO">${password_length} = 9</msg>
<status status="PASS" starttime="20210630 17:19:11.370" endtime="20210630 17:19:11.370"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${password_length} &lt; 8</arg>
<arg>Fail</arg>
<arg>Password is less than 8 digits</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210630 17:19:11.370" endtime="20210630 17:19:11.370"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${logon_type}&gt;0</arg>
<arg>Click Element</arg>
<arg>xpath=//div[text()="登录"]</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210630 17:19:11.370" endtime="20210630 17:19:11.370"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${logon_type}==0</arg>
<arg>Logon Test Environment</arg>
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<arg>ELSE IF</arg>
<arg>${logon_type}==1</arg>
<arg>Logon Cloud Customer Service</arg>
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<arg>ELSE IF</arg>
<arg>${logon_type}==2</arg>
<arg>Logon Cloud Outgoing Call</arg>
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Logon Test Environment" library="public_robot_keywords">
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<doc>登录智齿测试系统</doc>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>登录智齿客服,开启智慧客服新篇章</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 17:19:11.372" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//*[contains(., '\u767b\u5f55\u667a\u9f7f\u5ba2\u670d\uff0c\u5f00\u542f\u667a\u6167\u5ba2\u670d\u65b0\u7bc7\u7ae0')]"}</msg>
<msg timestamp="20210630 17:19:11.385" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 722</msg>
<msg timestamp="20210630 17:19:11.385" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:19:11.371" endtime="20210630 17:19:11.385"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>id=userEmail</arg>
<arg>${email}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210630 17:19:11.386" level="INFO">Typing text 'mjmj@zhichi.com' into text field 'id=userEmail'.</msg>
<msg timestamp="20210630 17:19:11.386" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "css selector", "value": "[id=\"userEmail\"]"}</msg>
<msg timestamp="20210630 17:19:11.393" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:19:11.393" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:11.393" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/140cda78-3a7f-412a-b84c-cade543848b6/clear {"id": "140cda78-3a7f-412a-b84c-cade543848b6"}</msg>
<msg timestamp="20210630 17:19:11.420" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/140cda78-3a7f-412a-b84c-cade543848b6/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:19:11.420" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:11.420" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/140cda78-3a7f-412a-b84c-cade543848b6/value {"text": "mjmj@zhichi.com", "value": ["m", "j", "m", "j", "@", "z", "h", "i", "c", "h", "i", ".", "c", "o", "m"], "id": "140cda78-3a7f-412a-b84c-cade543848b6"}</msg>
<msg timestamp="20210630 17:19:11.494" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/140cda78-3a7f-412a-b84c-cade543848b6/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:19:11.495" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:19:11.385" endtime="20210630 17:19:11.495"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>id=userPassword</arg>
<arg>${password}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210630 17:19:11.495" level="INFO">Typing text 'sobot1234' into text field 'id=userPassword'.</msg>
<msg timestamp="20210630 17:19:11.495" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "css selector", "value": "[id=\"userPassword\"]"}</msg>
<msg timestamp="20210630 17:19:11.504" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:19:11.505" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:11.505" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/fb7f88cc-519b-4b7b-8ab9-c6df7fa623e2/clear {"id": "fb7f88cc-519b-4b7b-8ab9-c6df7fa623e2"}</msg>
<msg timestamp="20210630 17:19:11.533" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/fb7f88cc-519b-4b7b-8ab9-c6df7fa623e2/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:19:11.533" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:11.533" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/fb7f88cc-519b-4b7b-8ab9-c6df7fa623e2/value {"text": "sobot1234", "value": ["s", "o", "b", "o", "t", "1", "2", "3", "4"], "id": "fb7f88cc-519b-4b7b-8ab9-c6df7fa623e2"}</msg>
<msg timestamp="20210630 17:19:11.601" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/fb7f88cc-519b-4b7b-8ab9-c6df7fa623e2/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:19:11.601" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:19:11.495" endtime="20210630 17:19:11.601"/>
</kw>
<kw name="Click Button" library="SeleniumLibrary">
<arg>xpath=//button[text()="登 录"]</arg>
<doc>Clicks the button identified by ``locator``.</doc>
<msg timestamp="20210630 17:19:11.602" level="INFO">Clicking button 'xpath=//button[text()="登 录"]'.</msg>
<msg timestamp="20210630 17:19:11.602" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u767b \u5f55\"]"}</msg>
<msg timestamp="20210630 17:19:11.615" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:19:11.615" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:11.615" level="DEBUG">GET http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/2a07ee9d-fca2-45a5-b450-2a2d6c00140d/name {"id": "2a07ee9d-fca2-45a5-b450-2a2d6c00140d"}</msg>
<msg timestamp="20210630 17:19:11.618" level="DEBUG">http://127.0.0.1:54721 "GET /session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/2a07ee9d-fca2-45a5-b450-2a2d6c00140d/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 17:19:11.619" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:11.619" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u767b \u5f55\"]"}</msg>
<msg timestamp="20210630 17:19:11.624" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:19:11.625" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:11.625" level="DEBUG">GET http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/2a07ee9d-fca2-45a5-b450-2a2d6c00140d/name {"id": "2a07ee9d-fca2-45a5-b450-2a2d6c00140d"}</msg>
<msg timestamp="20210630 17:19:11.629" level="DEBUG">http://127.0.0.1:54721 "GET /session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/2a07ee9d-fca2-45a5-b450-2a2d6c00140d/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 17:19:11.629" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:11.629" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/2a07ee9d-fca2-45a5-b450-2a2d6c00140d/click {"id": "2a07ee9d-fca2-45a5-b450-2a2d6c00140d"}</msg>
<msg timestamp="20210630 17:19:11.679" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/2a07ee9d-fca2-45a5-b450-2a2d6c00140d/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:19:11.680" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:19:11.602" endtime="20210630 17:19:11.680"/>
</kw>
<status status="PASS" starttime="20210630 17:19:11.371" endtime="20210630 17:19:11.680"/>
</kw>
<status status="PASS" starttime="20210630 17:19:11.371" endtime="20210630 17:19:11.680"/>
</kw>
<status status="PASS" starttime="20210630 17:19:11.369" endtime="20210630 17:19:11.680"/>
</kw>
<kw name="Wait Until Element Is Enabled" library="SeleniumLibrary">
<arg>${locator_vars}[我知道了]</arg>
<arg>60s</arg>
<doc>Waits until the element ``locator`` is enabled.</doc>
<msg timestamp="20210630 17:19:11.681" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:11.697" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:11.697" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:11.908" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:11.915" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:11.915" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:12.121" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:12.128" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:12.128" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:12.338" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:12.345" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:12.345" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:12.550" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:12.623" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:12.623" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:12.823" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:12.870" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:12.870" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:13.082" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:13.122" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:13.123" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:13.324" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:13.334" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:13.334" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:13.536" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:13.540" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:13.541" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:13.750" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:13.755" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:13.756" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:13.968" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:13.976" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:13.977" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:14.184" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:14.188" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:14.188" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:14.404" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:14.410" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:14.410" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:14.622" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:14.626" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:14.626" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:14.837" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:14.844" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:14.845" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:15.051" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:15.055" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:15.056" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:15.268" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:15.272" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:15.273" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:15.487" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:15.494" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:15.495" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:15.704" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:15.709" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:15.709" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:15.922" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:15.926" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:15.927" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:16.140" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:16.145" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:16.145" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:16.359" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:16.368" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:16.368" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:16.575" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:16.579" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:16.579" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:16.793" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:16.801" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:19:16.801" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:16.801" level="DEBUG">GET http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/0aaa20a2-dd63-47dc-abe2-e0684c9c9a68/enabled {"id": "0aaa20a2-dd63-47dc-abe2-e0684c9c9a68"}</msg>
<msg timestamp="20210630 17:19:16.807" level="DEBUG">http://127.0.0.1:54721 "GET /session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/0aaa20a2-dd63-47dc-abe2-e0684c9c9a68/enabled HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:19:16.807" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:16.807" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/execute/sync {"script": "return (function(){return function(){var d=this;function f(a){return\"string\"==typeof a};function h(a,b){this.code=a;this.a=l[a]||m;this.message=b||\"\";a=this.a.replace(/((?:^|\\s+)[a-z])/g,function(a){return a.toUpperCase().replace(/^[\\s\\xa0]+/g,\"\")});b=a.length-5;if(0&gt;b||a.indexOf(\"Error\",b)!=b)a+=\"Error\";this.name=a;a=Error(this.message);a.name=this.name;this.stack=a.stack||\"\"}\n(function(){var a=Error;function b(){}b.prototype=a.prototype;h.b=a.prototype;h.prototype=new b;h.prototype.constructor=h;h.a=function(b,c,g){for(var e=Array(arguments.length-2),k=2;k&lt;arguments.length;k++)e[k-2]=arguments[k];return a.prototype[c].apply(b,e)}})();var m=\"unknown error\",l={15:\"element not selectable\",11:\"element not visible\"};l[31]=m;l[30]=m;l[24]=\"invalid cookie domain\";l[29]=\"invalid element coordinates\";l[12]=\"invalid element state\";l[32]=\"invalid selector\";l[51]=\"invalid selector\";\nl[52]=\"invalid selector\";l[17]=\"javascript error\";l[405]=\"unsupported operation\";l[34]=\"move target out of bounds\";l[27]=\"no such alert\";l[7]=\"no such element\";l[8]=\"no such frame\";l[23]=\"no such window\";l[28]=\"script timeout\";l[33]=\"session not created\";l[10]=\"stale element reference\";l[21]=\"timeout\";l[25]=\"unable to set cookie\";l[26]=\"unexpected alert open\";l[13]=m;l[9]=\"unknown command\";h.prototype.toString=function(){return this.name+\": \"+this.message};var n;a:{var p=d.navigator;if(p){var q=p.userAgent;if(q){n=q;break a}}n=\"\"}function r(a){return-1!=n.indexOf(a)};function t(a,b){for(var e=a.length,c=f(a)?a.split(\"\"):a,g=0;g&lt;e;g++)g in c&amp;&amp;b.call(void 0,c[g],g,a)};function v(){return r(\"iPhone\")&amp;&amp;!r(\"iPod\")&amp;&amp;!r(\"iPad\")};function w(){return(r(\"Chrome\")||r(\"CriOS\"))&amp;&amp;!r(\"Edge\")};var x=r(\"Opera\"),y=r(\"Trident\")||r(\"MSIE\"),z=r(\"Edge\"),A=r(\"Gecko\")&amp;&amp;!(-1!=n.toLowerCase().indexOf(\"webkit\")&amp;&amp;!r(\"Edge\"))&amp;&amp;!(r(\"Trident\")||r(\"MSIE\"))&amp;&amp;!r(\"Edge\"),aa=-1!=n.toLowerCase().indexOf(\"webkit\")&amp;&amp;!r(\"Edge\");function B(){var a=d.document;return a?a.documentMode:void 0}var C;\na:{var D=\"\",E=function(){var a=n;if(A)return/rv\\:([^\\);]+)(\\)|;)/.exec(a);if(z)return/Edge\\/([\\d\\.]+)/.exec(a);if(y)return/\\b(?:MSIE|rv)[: ]([^\\);]+)(\\)|;)/.exec(a);if(aa)return/WebKit\\/(\\S+)/.exec(a);if(x)return/(?:Version)[ \\/]?(\\S+)/.exec(a)}();E&amp;&amp;(D=E?E[1]:\"\");if(y){var F=B();if(null!=F&amp;&amp;F&gt;parseFloat(D)){C=String(F);break a}}C=D}var G;var H=d.document;G=H&amp;&amp;y?B()||(\"CSS1Compat\"==H.compatMode?parseInt(C,10):5):void 0;var ba=r(\"Firefox\"),ca=v()||r(\"iPod\"),da=r(\"iPad\"),I=r(\"Android\")&amp;&amp;!(w()||r(\"Firefox\")||r(\"Opera\")||r(\"Silk\")),ea=w(),J=r(\"Safari\")&amp;&amp;!(w()||r(\"Coast\")||r(\"Opera\")||r(\"Edge\")||r(\"Silk\")||r(\"Android\"))&amp;&amp;!(v()||r(\"iPad\")||r(\"iPod\"));function K(a){return(a=a.exec(n))?a[1]:\"\"}(function(){if(ba)return K(/Firefox\\/([0-9.]+)/);if(y||z||x)return C;if(ea)return v()||r(\"iPad\")||r(\"iPod\")?K(/CriOS\\/([0-9.]+)/):K(/Chrome\\/([0-9.]+)/);if(J&amp;&amp;!(v()||r(\"iPad\")||r(\"iPod\")))return K(/Version\\/([0-9.]+)/);if(ca||da){var a=/Version\\/(\\S+).*Mobile\\/(\\S+)/.exec(n);if(a)return a[1]+\".\"+a[2]}else if(I)return(a=K(/Android\\s+([0-9.]+)/))?a:K(/Version\\/([0-9.]+)/);return\"\"})();var L,M=function(){if(!A)return!1;var a=d.Components;if(!a)return!1;try{if(!a.classes)return!1}catch(g){return!1}var b=a.classes,a=a.interfaces,e=b[\"@mozilla.org/xpcom/version-comparator;1\"].getService(a.nsIVersionComparator),c=b[\"@mozilla.org/xre/app-info;1\"].getService(a.nsIXULAppInfo).version;L=function(a){e.compare(c,\"\"+a)};return!0}(),N=y&amp;&amp;!(8&lt;=Number(G)),fa=y&amp;&amp;!(9&lt;=Number(G));I&amp;&amp;M&amp;&amp;L(2.3);I&amp;&amp;M&amp;&amp;L(4);J&amp;&amp;M&amp;&amp;L(6);var ga={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1},O={IMG:\" \",BR:\"\\n\"};function P(a,b,e){if(!(a.nodeName in ga))if(3==a.nodeType)e?b.push(String(a.nodeValue).replace(/(\\r\\n|\\r|\\n)/g,\"\")):b.push(a.nodeValue);else if(a.nodeName in O)b.push(O[a.nodeName]);else for(a=a.firstChild;a;)P(a,b,e),a=a.nextSibling};function Q(a,b){b=b.toLowerCase();return\"style\"==b?ha(a.style.cssText):N&amp;&amp;\"value\"==b&amp;&amp;R(a,\"INPUT\")?a.value:fa&amp;&amp;!0===a[b]?String(a.getAttribute(b)):(a=a.getAttributeNode(b))&amp;&amp;a.specified?a.value:null}var ia=/[;]+(?=(?:(?:[^\"]*\"){2})*[^\"]*$)(?=(?:(?:[^']*'){2})*[^']*$)(?=(?:[^()]*\\([^()]*\\))*[^()]*$)/;\nfunction ha(a){var b=[];t(a.split(ia),function(a){var c=a.indexOf(\":\");0&lt;c&amp;&amp;(a=[a.slice(0,c),a.slice(c+1)],2==a.length&amp;&amp;b.push(a[0].toLowerCase(),\":\",a[1],\";\"))});b=b.join(\"\");return b=\";\"==b.charAt(b.length-1)?b:b+\";\"}function S(a,b){N&amp;&amp;\"value\"==b&amp;&amp;R(a,\"OPTION\")&amp;&amp;null===Q(a,\"value\")?(b=[],P(a,b,!1),a=b.join(\"\")):a=a[b];return a}function R(a,b){b&amp;&amp;\"string\"!==typeof b&amp;&amp;(b=b.toString());return!!a&amp;&amp;1==a.nodeType&amp;&amp;(!b||a.tagName.toUpperCase()==b)}\nfunction T(a){return R(a,\"OPTION\")?!0:R(a,\"INPUT\")?(a=a.type.toLowerCase(),\"checkbox\"==a||\"radio\"==a):!1};var ja={\"class\":\"className\",readonly:\"readOnly\"},U=\"allowfullscreen allowpaymentrequest allowusermedia async autofocus autoplay checked compact complete controls declare default defaultchecked defaultselected defer disabled ended formnovalidate hidden indeterminate iscontenteditable ismap itemscope loop multiple muted nohref nomodule noresize noshade novalidate nowrap open paused playsinline pubdate readonly required reversed scoped seamless seeking selected truespeed typemustmatch willvalidate\".split(\" \");function V(a,b){var e=null,c=b.toLowerCase();if(\"style\"==c)return(e=a.style)&amp;&amp;!f(e)&amp;&amp;(e=e.cssText),e;if((\"selected\"==c||\"checked\"==c)&amp;&amp;T(a)){if(!T(a))throw new h(15,\"Element is not selectable\");b=\"selected\";e=a.type&amp;&amp;a.type.toLowerCase();if(\"checkbox\"==e||\"radio\"==e)b=\"checked\";return S(a,b)?\"true\":null}var g=R(a,\"A\");if(R(a,\"IMG\")&amp;&amp;\"src\"==c||g&amp;&amp;\"href\"==c)return(e=Q(a,c))&amp;&amp;(e=S(a,c)),e;if(\"spellcheck\"==c){e=Q(a,c);if(null!==e){if(\"false\"==e.toLowerCase())return\"false\";if(\"true\"==e.toLowerCase())return\"true\"}return S(a,\nc)+\"\"}g=ja[b]||b;a:if(f(U))c=f(c)&amp;&amp;1==c.length?U.indexOf(c,0):-1;else{for(var u=0;u&lt;U.length;u++)if(u in U&amp;&amp;U[u]===c){c=u;break a}c=-1}if(0&lt;=c)return(e=null!==Q(a,b)||S(a,g))?\"true\":null;try{var k=S(a,g)}catch(ka){}(c=null==k)||(c=typeof k,c=\"object\"==c&amp;&amp;null!=k||\"function\"==c);c?e=Q(a,b):e=k;return null!=e?e.toString():null}var W=[\"_\"],X=d;W[0]in X||!X.execScript||X.execScript(\"var \"+W[0]);\nfor(var Y;W.length&amp;&amp;(Y=W.shift());){var Z;if(Z=!W.length)Z=void 0!==V;Z?X[Y]=V:X[Y]&amp;&amp;X[Y]!==Object.prototype[Y]?X=X[Y]:X=X[Y]={}};; return this._.apply(null,arguments);}.apply({navigator:typeof window!='undefined'?window.navigator:null,document:typeof window!='undefined'?window.document:null}, arguments);}\n).apply(null, arguments);", "args": [{"ELEMENT": "0aaa20a2-dd63-47dc-abe2-e0684c9c9a68", "element-6066-11e4-a52e-4f735466cecf": "0aaa20a2-dd63-47dc-abe2-e0684c9c9a68"}, "readonly"]}</msg>
<msg timestamp="20210630 17:19:16.812" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/execute/sync HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:19:16.813" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:19:11.681" endtime="20210630 17:19:16.813"/>
</kw>
<kw name="Click Button" library="SeleniumLibrary">
<arg>${locator_vars}[我知道了]</arg>
<doc>Clicks the button identified by ``locator``.</doc>
<msg timestamp="20210630 17:19:16.813" level="INFO">Clicking button 'xpath=//button[text()="我知道了"]'.</msg>
<msg timestamp="20210630 17:19:16.814" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:16.818" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:19:16.818" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:16.818" level="DEBUG">GET http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/0aaa20a2-dd63-47dc-abe2-e0684c9c9a68/name {"id": "0aaa20a2-dd63-47dc-abe2-e0684c9c9a68"}</msg>
<msg timestamp="20210630 17:19:16.820" level="DEBUG">http://127.0.0.1:54721 "GET /session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/0aaa20a2-dd63-47dc-abe2-e0684c9c9a68/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 17:19:16.821" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:16.821" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:19:16.827" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:19:16.827" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:16.827" level="DEBUG">GET http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/0aaa20a2-dd63-47dc-abe2-e0684c9c9a68/name {"id": "0aaa20a2-dd63-47dc-abe2-e0684c9c9a68"}</msg>
<msg timestamp="20210630 17:19:16.830" level="DEBUG">http://127.0.0.1:54721 "GET /session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/0aaa20a2-dd63-47dc-abe2-e0684c9c9a68/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 17:19:16.831" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:16.831" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/0aaa20a2-dd63-47dc-abe2-e0684c9c9a68/click {"id": "0aaa20a2-dd63-47dc-abe2-e0684c9c9a68"}</msg>
<msg timestamp="20210630 17:19:16.882" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/0aaa20a2-dd63-47dc-abe2-e0684c9c9a68/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:19:16.883" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:19:16.813" endtime="20210630 17:19:16.883"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[智客]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:19:16.884" level="INFO">Clicking element 'xpath=//div[@data-title="智客"]'.</msg>
<msg timestamp="20210630 17:19:16.884" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//div[@data-title=\"\u667a\u5ba2\"]"}</msg>
<msg timestamp="20210630 17:19:16.896" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:19:16.896" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:16.896" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/2022e6fc-2053-43de-b335-9f21a68d6df3/click {"id": "2022e6fc-2053-43de-b335-9f21a68d6df3"}</msg>
<msg timestamp="20210630 17:19:16.962" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/2022e6fc-2053-43de-b335-9f21a68d6df3/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:19:16.962" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:19:16.883" endtime="20210630 17:19:16.963"/>
</kw>
<kw name="Switch Window" library="SeleniumLibrary">
<arg>NEW</arg>
<doc>Switches to browser window matching ``locator``.</doc>
<msg timestamp="20210630 17:19:16.963" level="DEBUG">GET http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/window {}</msg>
<msg timestamp="20210630 17:19:16.965" level="DEBUG">http://127.0.0.1:54721 "GET /session/5594e3afb76e6ec7e4a5dbb42461f9a7/window HTTP/1.1" 200 53</msg>
<msg timestamp="20210630 17:19:16.965" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:16.965" level="DEBUG">GET http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/window/handles {}</msg>
<msg timestamp="20210630 17:19:16.970" level="DEBUG">http://127.0.0.1:54721 "GET /session/5594e3afb76e6ec7e4a5dbb42461f9a7/window/handles HTTP/1.1" 200 99</msg>
<msg timestamp="20210630 17:19:16.970" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:16.970" level="DEBUG">GET http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/window {}</msg>
<msg timestamp="20210630 17:19:16.971" level="DEBUG">http://127.0.0.1:54721 "GET /session/5594e3afb76e6ec7e4a5dbb42461f9a7/window HTTP/1.1" 200 53</msg>
<msg timestamp="20210630 17:19:16.971" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:16.971" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/window {"handle": "CDwindow-DAED0A82E28C1F020229593931A6DBDA"}</msg>
<msg timestamp="20210630 17:19:16.985" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/window HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:19:16.985" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:19:16.963" endtime="20210630 17:19:16.985"/>
</kw>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>已有企业微信</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 17:19:16.985" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210630 17:19:33.335" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:33.335" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:33.549" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210630 17:19:33.554" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:33.555" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:33.767" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210630 17:19:33.944" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 1117</msg>
<msg timestamp="20210630 17:19:33.944" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:19:16.985" endtime="20210630 17:19:33.944"/>
</kw>
<status status="PASS" starttime="20210630 17:19:07.256" endtime="20210630 17:19:33.944"/>
</kw>
<status status="PASS" starttime="20210630 17:19:07.256" endtime="20210630 17:19:33.944"/>
</kw>
<test id="s1-t1" name="Tc1 Skill group add case">
<kw name="Run Keywords" library="BuiltIn" type="SETUP">
<arg>My Test Setup</arg>
<doc>Executes all the given keywords in a sequence.</doc>
<kw name="My Test Setup" library="callcenter_Skillsgroup_V6_setup_teardown">
<kw name="Click Link" library="SeleniumLibrary">
<arg>${locator_vars}[首页]</arg>
<doc>Clicks a link identified by ``locator``.</doc>
<msg timestamp="20210630 17:19:33.947" level="INFO">Clicking link 'xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a'.</msg>
<msg timestamp="20210630 17:19:33.947" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//*[@id=\"root\"]/div/div[2]/ul/li[2]/a"}</msg>
<msg timestamp="20210630 17:19:33.958" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:19:33.958" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:33.959" level="DEBUG">GET http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/d7d86342-59f7-406f-8cab-6dade085cb9b/name {"id": "d7d86342-59f7-406f-8cab-6dade085cb9b"}</msg>
<msg timestamp="20210630 17:19:33.963" level="DEBUG">http://127.0.0.1:54721 "GET /session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/d7d86342-59f7-406f-8cab-6dade085cb9b/name HTTP/1.1" 200 13</msg>
<msg timestamp="20210630 17:19:33.965" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:33.966" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/d7d86342-59f7-406f-8cab-6dade085cb9b/click {"id": "d7d86342-59f7-406f-8cab-6dade085cb9b"}</msg>
<msg timestamp="20210630 17:19:34.397" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/d7d86342-59f7-406f-8cab-6dade085cb9b/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:19:34.397" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:19:33.947" endtime="20210630 17:19:34.398"/>
</kw>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>首页</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 17:19:34.399" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//*[contains(., '\u9996\u9875')]"}</msg>
<msg timestamp="20210630 17:19:34.423" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 801</msg>
<msg timestamp="20210630 17:19:34.424" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:19:34.398" endtime="20210630 17:19:34.424"/>
</kw>
<kw name="Sleep" library="BuiltIn">
<arg>2</arg>
<doc>Pauses the test executed for the given time.</doc>
<msg timestamp="20210630 17:19:36.438" level="INFO">Slept 2 seconds</msg>
<status status="PASS" starttime="20210630 17:19:34.424" endtime="20210630 17:19:36.439"/>
</kw>
<status status="PASS" starttime="20210630 17:19:33.946" endtime="20210630 17:19:36.440"/>
</kw>
<status status="PASS" starttime="20210630 17:19:33.946" endtime="20210630 17:19:36.440"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>---------- Tc1 step 1: 进入V6呼叫中心erererrer ------------</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:19:36.443" level="INFO">---------- Tc1 step 1: 进入V6呼叫中心erererrer ------------</msg>
<status status="PASS" starttime="20210630 17:19:36.442" endtime="20210630 17:19:36.444"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-新呼叫中心]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:19:36.448" level="INFO">Clicking element 'xpath=//*[@id="root"]/div/div[3]/div/div/div/div[2]/div/div[9]/a'.</msg>
<msg timestamp="20210630 17:19:36.449" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//*[@id=\"root\"]/div/div[3]/div/div/div/div[2]/div/div[9]/a"}</msg>
<msg timestamp="20210630 17:19:36.466" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:19:36.466" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:36.466" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/016d674c-6684-4505-b462-51755783fd79/click {"id": "016d674c-6684-4505-b462-51755783fd79"}</msg>
<msg timestamp="20210630 17:19:37.616" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/016d674c-6684-4505-b462-51755783fd79/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:19:37.617" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:19:36.447" endtime="20210630 17:19:37.617"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>---------- Tc1 step 2: 进入呼叫中心 &gt; 技能组 ------------</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:19:37.618" level="INFO">---------- Tc1 step 2: 进入呼叫中心 &gt; 技能组 ------------</msg>
<status status="PASS" starttime="20210630 17:19:37.618" endtime="20210630 17:19:37.618"/>
</kw>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>技能组</arg>
<arg>${sleep_60}</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 17:19:37.619" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//*[contains(., '\u6280\u80fd\u7ec4')]"}</msg>
<msg timestamp="20210630 17:19:37.634" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:19:37.634" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:37.839" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//*[contains(., '\u6280\u80fd\u7ec4')]"}</msg>
<msg timestamp="20210630 17:19:37.938" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 1354</msg>
<msg timestamp="20210630 17:19:37.938" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:19:37.619" endtime="20210630 17:19:37.938"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-呼叫技能组]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:19:37.939" level="INFO">Clicking element 'xpath=//*[@id="0-0$Menu"]/li[3]/a[text()=("呼叫技能组")]'.</msg>
<msg timestamp="20210630 17:19:37.940" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//*[@id=\"0-0$Menu\"]/li[3]/a[text()=(\"\u547c\u53eb\u6280\u80fd\u7ec4\")]"}</msg>
<msg timestamp="20210630 17:19:37.949" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:19:37.949" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:37.949" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/b5b4ecd2-0d2e-4ad4-9dfe-ab49c5a28e6c/click {"id": "b5b4ecd2-0d2e-4ad4-9dfe-ab49c5a28e6c"}</msg>
<msg timestamp="20210630 17:19:38.061" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/b5b4ecd2-0d2e-4ad4-9dfe-ab49c5a28e6c/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:19:38.062" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:19:37.939" endtime="20210630 17:19:38.062"/>
</kw>
<kw name="Sleep" library="BuiltIn">
<arg>${sleep_3}</arg>
<doc>Pauses the test executed for the given time.</doc>
<msg timestamp="20210630 17:19:41.065" level="INFO">Slept 3 seconds</msg>
<status status="PASS" starttime="20210630 17:19:38.064" endtime="20210630 17:19:41.065"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>--------------- Tc1 step 3: 新增技能组(重复组号/重复名字) -------------------------------</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:19:41.066" level="INFO">--------------- Tc1 step 3: 新增技能组(重复组号/重复名字) -------------------------------</msg>
<status status="PASS" starttime="20210630 17:19:41.065" endtime="20210630 17:19:41.066"/>
</kw>
<kw name="Set Variable" library="BuiltIn">
<var>${groupName}</var>
<arg>发生的</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<msg timestamp="20210630 17:19:41.069" level="INFO">${groupName} = 发生的</msg>
<status status="PASS" starttime="20210630 17:19:41.069" endtime="20210630 17:19:41.069"/>
</kw>
<kw name="Set Variable" library="BuiltIn">
<var>${groupNumber}</var>
<arg>2233</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<msg timestamp="20210630 17:19:41.070" level="INFO">${groupNumber} = 2233</msg>
<status status="PASS" starttime="20210630 17:19:41.069" endtime="20210630 17:19:41.070"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>新增</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:19:41.070" level="INFO">新增</msg>
<status status="PASS" starttime="20210630 17:19:41.070" endtime="20210630 17:19:41.070"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-新增]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:19:41.071" level="INFO">Clicking element 'xpath=//*[@id="searchRight"]/button/span[text()="新建"]'.</msg>
<msg timestamp="20210630 17:19:41.071" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//*[@id=\"searchRight\"]/button/span[text()=\"\u65b0\u5efa\"]"}</msg>
<msg timestamp="20210630 17:19:41.086" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:19:41.086" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:41.086" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/a0559aa6-c804-45f3-83dc-6263ab7e66d0/click {"id": "a0559aa6-c804-45f3-83dc-6263ab7e66d0"}</msg>
<msg timestamp="20210630 17:19:41.147" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/a0559aa6-c804-45f3-83dc-6263ab7e66d0/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:19:41.147" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:19:41.070" endtime="20210630 17:19:41.147"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-名称文本]</arg>
<arg>${groupName}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210630 17:19:41.148" level="INFO">Typing text '发生的' into text field 'xpath=//*[@id="queueName"]'.</msg>
<msg timestamp="20210630 17:19:41.148" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//*[@id=\"queueName\"]"}</msg>
<msg timestamp="20210630 17:19:41.163" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:19:41.163" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:41.163" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/9773c883-ac88-4f0f-8a84-27e4a9c89707/clear {"id": "9773c883-ac88-4f0f-8a84-27e4a9c89707"}</msg>
<msg timestamp="20210630 17:19:41.198" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/9773c883-ac88-4f0f-8a84-27e4a9c89707/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:19:41.199" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:41.199" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/9773c883-ac88-4f0f-8a84-27e4a9c89707/value {"text": "\u53d1\u751f\u7684", "value": ["\u53d1", "\u751f", "\u7684"], "id": "9773c883-ac88-4f0f-8a84-27e4a9c89707"}</msg>
<msg timestamp="20210630 17:19:41.258" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/9773c883-ac88-4f0f-8a84-27e4a9c89707/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:19:41.259" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:19:41.148" endtime="20210630 17:19:41.259"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-组号]</arg>
<arg>${groupNumber}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210630 17:19:41.260" level="INFO">Typing text '2233' into text field 'xpath=//*[@id="queueID"]'.</msg>
<msg timestamp="20210630 17:19:41.260" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//*[@id=\"queueID\"]"}</msg>
<msg timestamp="20210630 17:19:41.267" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:19:41.268" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:41.268" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/37d9e2cf-711f-4ed3-9d50-c98cfcf1075b/clear {"id": "37d9e2cf-711f-4ed3-9d50-c98cfcf1075b"}</msg>
<msg timestamp="20210630 17:19:41.293" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/37d9e2cf-711f-4ed3-9d50-c98cfcf1075b/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:19:41.293" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:41.293" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/37d9e2cf-711f-4ed3-9d50-c98cfcf1075b/value {"text": "2233", "value": ["2", "2", "3", "3"], "id": "37d9e2cf-711f-4ed3-9d50-c98cfcf1075b"}</msg>
<msg timestamp="20210630 17:19:41.349" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/37d9e2cf-711f-4ed3-9d50-c98cfcf1075b/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:19:41.349" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:19:41.259" endtime="20210630 17:19:41.349"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-新建]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:19:41.350" level="INFO">Clicking element 'xpath=//*[@id="searchRight"]/button/span[text()="新建"]'.</msg>
<msg timestamp="20210630 17:19:41.350" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements {"using": "xpath", "value": "//*[@id=\"searchRight\"]/button/span[text()=\"\u65b0\u5efa\"]"}</msg>
<msg timestamp="20210630 17:19:41.356" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:19:41.357" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:41.357" level="DEBUG">POST http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/a0559aa6-c804-45f3-83dc-6263ab7e66d0/click {"id": "a0559aa6-c804-45f3-83dc-6263ab7e66d0"}</msg>
<msg timestamp="20210630 17:19:42.392" level="DEBUG">http://127.0.0.1:54721 "POST /session/5594e3afb76e6ec7e4a5dbb42461f9a7/element/a0559aa6-c804-45f3-83dc-6263ab7e66d0/click HTTP/1.1" 400 1368</msg>
<msg timestamp="20210630 17:19:42.393" level="DEBUG">Finished Request</msg>
<kw name="Capture Page Screenshot" library="SeleniumLibrary">
<doc>Takes a screenshot of the current page and embeds it into a log file.</doc>
<msg timestamp="20210630 17:19:42.394" level="DEBUG">GET http://127.0.0.1:54721/session/5594e3afb76e6ec7e4a5dbb42461f9a7/screenshot {}</msg>
<msg timestamp="20210630 17:19:42.594" level="DEBUG">http://127.0.0.1:54721 "GET /session/5594e3afb76e6ec7e4a5dbb42461f9a7/screenshot HTTP/1.1" 200 189892</msg>
<msg timestamp="20210630 17:19:42.595" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:19:42.596" level="INFO" html="true">&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3"&gt;&lt;a href="selenium-screenshot-21.png"&gt;&lt;img src="selenium-screenshot-21.png" width="800px"&gt;&lt;/a&gt;</msg>
<status status="PASS" starttime="20210630 17:19:42.393" endtime="20210630 17:19:42.596"/>
</kw>
<msg timestamp="20210630 17:19:42.626" level="FAIL">ElementClickInterceptedException: Message: element click intercepted: Element &lt;span&gt;...&lt;/span&gt; is not clickable at point (1221, 162). Other element would receive the click: &lt;div tabindex="-1" class="ant-modal-wrap" role="dialog" aria-labelledby="rcDialogTitle1" style=""&gt;...&lt;/div&gt;
(Session info: chrome=91.0.4472.114)
</msg>
<msg timestamp="20210630 17:19:42.627" level="DEBUG">Traceback (most recent call last):
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\SeleniumLibrary\__init__.py", line 492, in run_keyword
return DynamicCore.run_keyword(self, name, args, kwargs)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\robotlibcore.py", line 103, in run_keyword
return self.keywords[name](*args, **(kwargs or {}))
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\SeleniumLibrary\keywords\element.py", line 658, in click_element
self.find_element(locator).click()
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click
self._execute(Command.CLICK_ELEMENT)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)</msg>
<status status="FAIL" starttime="20210630 17:19:41.350" endtime="20210630 17:19:42.627"/>
</kw>
<kw name="Check Flash Prompt Message" library="public_robot_keywords">
<arg>flash_prompt_locator=${locator_vars}[组成员-添加-错误提示弹板]</arg>
<arg>excepted_message=队列号已存在</arg>
<doc>check三秒提示信息是否是预期值</doc>
<status status="NOT RUN" starttime="20210630 17:19:42.627" endtime="20210630 17:19:42.627"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>--------------- Tc1 step 3: 新增技能组(非组号重复名字) -------------------------------</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" starttime="20210630 17:19:42.627" endtime="20210630 17:19:42.627"/>
</kw>
<kw name="Set Variable" library="BuiltIn">
<var>${groupNumber}</var>
<arg>6667</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" starttime="20210630 17:19:42.628" endtime="20210630 17:19:42.628"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>新增</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" starttime="20210630 17:19:42.628" endtime="20210630 17:19:42.628"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-新增]</arg>
<doc>Click the element identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 17:19:42.628" endtime="20210630 17:19:42.628"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-名称文本]</arg>
<arg>${groupName}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 17:19:42.628" endtime="20210630 17:19:42.628"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-组号]</arg>
<arg>${groupNumber}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 17:19:42.628" endtime="20210630 17:19:42.628"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-新建]</arg>
<doc>Click the element identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 17:19:42.628" endtime="20210630 17:19:42.628"/>
</kw>
<kw name="sleep 2">
<status status="NOT RUN" starttime="20210630 17:19:42.632" endtime="20210630 17:19:42.632"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-创建返回列表]</arg>
<doc>Click the element identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 17:19:42.632" endtime="20210630 17:19:42.632"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>--------校验是否添加成功---------</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" starttime="20210630 17:19:42.632" endtime="20210630 17:19:42.633"/>
</kw>
<kw name="Get Table Data For Column" library="public_robot_keywords">
<var>${listDataNumber}</var>
<arg>tbody_locator=${locator_vars}[V6-技能组tbody]</arg>
<arg>column=2</arg>
<arg>right_arrow_locator=${locator_vars}[V6-技能组-下一页]</arg>
<arg>the_first_page_locator=${locator_vars}[V6-技能组-第一页切换]</arg>
<doc>取得table列数据</doc>
<status status="NOT RUN" starttime="20210630 17:19:42.633" endtime="20210630 17:19:42.633"/>
</kw>
<kw name="Check Items Match Or Not In List" library="public_robot_keywords">
<arg>all_data=${listDataNumber}</arg>
<arg>check_items=${groupNumber}</arg>
<doc>在list里检查items数据是否精确匹配</doc>
<status status="NOT RUN" starttime="20210630 17:19:42.633" endtime="20210630 17:19:42.633"/>
</kw>
<doc>- 进入呼叫中心
- 进入呼叫中心</doc>
<tag>1</tag>
<tag>Sanity</tag>
<tag>呼叫中心</tag>
<status status="FAIL" starttime="20210630 17:19:33.944" endtime="20210630 17:19:42.634">ElementClickInterceptedException: Message: element click intercepted: Element &lt;span&gt;...&lt;/span&gt; is not clickable at point (1221, 162). Other element would receive the click: &lt;div tabindex="-1" class="ant-modal-wrap" role="dialog" aria-labelledby="rcDialogTitle1" style=""&gt;...&lt;/div&gt;
(Session info: chrome=91.0.4472.114)
</status>
</test>
<doc>callcenter_Relaynumber_V6_full1.robot
author: jiawei</doc>
<status status="FAIL" starttime="20210630 17:19:06.945" endtime="20210630 17:19:42.635"/>
</suite>
<statistics>
<total>
<stat pass="0" fail="1" skip="0">All Tests</stat>
</total>
<tag>
<stat pass="0" fail="1" skip="0">1</stat>
<stat pass="0" fail="1" skip="0">Sanity</stat>
<stat pass="0" fail="1" skip="0">呼叫中心</stat>
</tag>
<suite>
<stat pass="0" fail="1" skip="0" id="s1" name="callcenter Skillsgroup V6 full1">callcenter Skillsgroup V6 full1</stat>
</suite>
</statistics>
<errors>
<msg timestamp="20210630 17:19:07.208" level="WARN">Imported library 'D:\word\自动化\script_template\keyword\callcenter_V6_python_keywords.py' contains no keywords.</msg>
</errors>
</robot>
<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 4.0.3 (Python 3.8.8 on win32)" generated="20210630 17:20:10.201" rpa="false" schemaversion="2">
<suite id="s1" name="callcenter Skillsgroup V6 full1" source="D:\word\自动化\script_template\callcenter_Skillsgroup_V6_full1.robot">
<kw name="Run Keywords" library="BuiltIn" type="SETUP">
<arg>My Suite Setup</arg>
<doc>Executes all the given keywords in a sequence.</doc>
<kw name="My Suite Setup" library="callcenter_Skillsgroup_V6_setup_teardown">
<kw name="Log" library="BuiltIn">
<arg>========================== My Suite Setup Start ==========================</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:20:10.507" level="INFO">========================== My Suite Setup Start ==========================</msg>
<status status="PASS" starttime="20210630 17:20:10.507" endtime="20210630 17:20:10.513"/>
</kw>
<kw name="Fetch Json Vars" library="public_python_keywords">
<var>&amp;{gbl_vars}</var>
<arg>file=D:\\word\\自动化\\script_template\\json_file\\call_center_vars.json</arg>
<msg timestamp="20210630 17:20:10.514" level="INFO">&amp;{gbl_vars} = { log_level=DEBUG | url=http://test.sobot.com/console/login | browser=gc | email=mjmj@zhichi.com | password=sobot1234 | w_size_hor_pixels=1920 | w_size_ver_pixels=1080 | time={'hour': 11, 'minute': '2...</msg>
<status status="PASS" starttime="20210630 17:20:10.513" endtime="20210630 17:20:10.514"/>
</kw>
<kw name="Set Global Variable" library="BuiltIn">
<arg>${gbl_vars}</arg>
<doc>Makes a variable available globally in all tests and suites.</doc>
<msg timestamp="20210630 17:20:10.515" level="INFO">${gbl_vars} = {'log_level': 'DEBUG', 'url': 'http://test.sobot.com/console/login', 'browser': 'gc', 'email': 'mjmj@zhichi.com', 'password': 'sobot1234', 'w_size_hor_pixels': 1920, 'w_size_ver_pixels': 1080, 'time':...</msg>
<status status="PASS" starttime="20210630 17:20:10.514" endtime="20210630 17:20:10.515"/>
</kw>
<kw name="Fetch Json Vars" library="public_python_keywords">
<var>&amp;{locator_vars}</var>
<arg>file=D:\\word\\自动化\\script_template\\json_file\\call_center_locator_vars.json</arg>
<msg timestamp="20210630 17:20:10.515" level="INFO">&amp;{locator_vars} = { 我知道了=xpath=//button[text()="我知道了"] | 智客=xpath=//div[@data-title="智客"] | 首页=xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a | 呼叫中心=x、】path=//*[@id="root"]/div/div[2]/ul/li[3]/a | 企微智客=xpath=//*[@id="root...</msg>
<status status="PASS" starttime="20210630 17:20:10.515" endtime="20210630 17:20:10.515"/>
</kw>
<kw name="Set Global Variable" library="BuiltIn">
<arg>${locator_vars}</arg>
<doc>Makes a variable available globally in all tests and suites.</doc>
<msg timestamp="20210630 17:20:10.516" level="INFO">${locator_vars} = {'我知道了': 'xpath=//button[text()="我知道了"]', '智客': 'xpath=//div[@data-title="智客"]', '首页': 'xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a', '呼叫中心': 'x、】path=//*[@id="root"]/div/div[2]/ul/li[3]/a', '企微智客': '...</msg>
<status status="PASS" starttime="20210630 17:20:10.515" endtime="20210630 17:20:10.516"/>
</kw>
<kw name="Set Log Level" library="BuiltIn">
<arg>${gbl_vars}[log_level]</arg>
<doc>Sets the log threshold to the specified level and returns the old level.</doc>
<msg timestamp="20210630 17:20:10.516" level="INFO">Log level changed from INFO to DEBUG.</msg>
<status status="PASS" starttime="20210630 17:20:10.516" endtime="20210630 17:20:10.516"/>
</kw>
<kw name="Close All Browsers" library="SeleniumLibrary">
<doc>Closes all open browsers and resets the browser cache.</doc>
<msg timestamp="20210630 17:20:10.516" level="DEBUG">Closing all browsers.</msg>
<status status="PASS" starttime="20210630 17:20:10.516" endtime="20210630 17:20:10.516"/>
</kw>
<kw name="Open Browser And Set Size" library="public_robot_keywords">
<arg>url=${gbl_vars}[url]</arg>
<arg>set_window_size=${True}</arg>
<arg>set_max_browser_window=${True}</arg>
<doc>打开指定类型的浏览器,并设置窗口大小</doc>
<kw name="Open Browser" library="SeleniumLibrary">
<arg>${url}</arg>
<arg>${browser}</arg>
<doc>Opens a new browser instance to the optional ``url``.</doc>
<msg timestamp="20210630 17:20:10.517" level="INFO">Opening browser 'gc' to base url 'http://test.sobot.com/console/login'.</msg>
<msg timestamp="20210630 17:20:11.053" level="DEBUG">POST http://127.0.0.1:50404/session {"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "platformName": "any", "goog:chromeOptions": {"extensions": [], "args": []}}}, "desiredCapabilities": {"browserName": "chrome", "version": "", "platform": "ANY", "goog:chromeOptions": {"extensions": [], "args": []}}}</msg>
<msg timestamp="20210630 17:20:11.053" level="DEBUG">Starting new HTTP connection (1): 127.0.0.1:50404</msg>
<msg timestamp="20210630 17:20:11.863" level="DEBUG">http://127.0.0.1:50404 "POST /session HTTP/1.1" 200 752</msg>
<msg timestamp="20210630 17:20:11.864" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:11.865" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/timeouts {"script": 5000}</msg>
<msg timestamp="20210630 17:20:11.866" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/timeouts HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:20:11.867" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:11.867" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/timeouts {"implicit": 0}</msg>
<msg timestamp="20210630 17:20:11.870" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/timeouts HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:20:11.872" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:11.872" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/url {"url": "http://test.sobot.com/console/login"}</msg>
<msg timestamp="20210630 17:20:14.617" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/url HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:20:14.619" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:14.620" level="DEBUG">Opened browser with session id a9414e7d9fb2e9a45b44db09aecd5c64.</msg>
<status status="PASS" starttime="20210630 17:20:10.517" endtime="20210630 17:20:14.621"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${set_window_size}</arg>
<arg>Set Window Size</arg>
<arg>${hor_pixels}</arg>
<arg>${ver_pixels}</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Set Window Size" library="SeleniumLibrary">
<arg>${hor_pixels}</arg>
<arg>${ver_pixels}</arg>
<doc>Sets current windows size to given ``width`` and ``height``.</doc>
<msg timestamp="20210630 17:20:14.623" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/window/rect {"x": null, "y": null, "width": 1920, "height": 1080}</msg>
<msg timestamp="20210630 17:20:14.779" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/window/rect HTTP/1.1" 200 51</msg>
<msg timestamp="20210630 17:20:14.780" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:20:14.622" endtime="20210630 17:20:14.780"/>
</kw>
<status status="PASS" starttime="20210630 17:20:14.621" endtime="20210630 17:20:14.781"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${set_max_browser_window}</arg>
<arg>Maximize Browser Window</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Maximize Browser Window" library="SeleniumLibrary">
<doc>Maximizes current browser window.</doc>
<msg timestamp="20210630 17:20:14.782" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/window/maximize {}</msg>
<msg timestamp="20210630 17:20:15.013" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/window/maximize HTTP/1.1" 200 51</msg>
<msg timestamp="20210630 17:20:15.015" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:20:14.782" endtime="20210630 17:20:15.016"/>
</kw>
<status status="PASS" starttime="20210630 17:20:14.781" endtime="20210630 17:20:15.016"/>
</kw>
<status status="PASS" starttime="20210630 17:20:10.516" endtime="20210630 17:20:15.016"/>
</kw>
<kw name="Logon Soboten" library="public_robot_keywords">
<arg>logon_type=0</arg>
<arg>email=${gbl_vars}[email]</arg>
<arg>password=${gbl_vars}[password]</arg>
<doc>根据参数logon_type值,登录相应的智齿系统</doc>
<kw name="Run Keyword If" library="BuiltIn">
<arg>'@' not in "${email}" or '.' not in "${email}"</arg>
<arg>Fail</arg>
<arg>email format is wrong, please double check!</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210630 17:20:15.019" endtime="20210630 17:20:15.019"/>
</kw>
<kw name="Get Length" library="BuiltIn">
<var>${password_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<msg timestamp="20210630 17:20:15.020" level="INFO">Length is 9</msg>
<msg timestamp="20210630 17:20:15.020" level="INFO">${password_length} = 9</msg>
<status status="PASS" starttime="20210630 17:20:15.020" endtime="20210630 17:20:15.020"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${password_length} &lt; 8</arg>
<arg>Fail</arg>
<arg>Password is less than 8 digits</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210630 17:20:15.021" endtime="20210630 17:20:15.021"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${logon_type}&gt;0</arg>
<arg>Click Element</arg>
<arg>xpath=//div[text()="登录"]</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210630 17:20:15.023" endtime="20210630 17:20:15.025"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${logon_type}==0</arg>
<arg>Logon Test Environment</arg>
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<arg>ELSE IF</arg>
<arg>${logon_type}==1</arg>
<arg>Logon Cloud Customer Service</arg>
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<arg>ELSE IF</arg>
<arg>${logon_type}==2</arg>
<arg>Logon Cloud Outgoing Call</arg>
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Logon Test Environment" library="public_robot_keywords">
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<doc>登录智齿测试系统</doc>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>登录智齿客服,开启智慧客服新篇章</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 17:20:15.031" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//*[contains(., '\u767b\u5f55\u667a\u9f7f\u5ba2\u670d\uff0c\u5f00\u542f\u667a\u6167\u5ba2\u670d\u65b0\u7bc7\u7ae0')]"}</msg>
<msg timestamp="20210630 17:20:15.064" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 722</msg>
<msg timestamp="20210630 17:20:15.065" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:20:15.030" endtime="20210630 17:20:15.065"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>id=userEmail</arg>
<arg>${email}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210630 17:20:15.067" level="INFO">Typing text 'mjmj@zhichi.com' into text field 'id=userEmail'.</msg>
<msg timestamp="20210630 17:20:15.069" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "css selector", "value": "[id=\"userEmail\"]"}</msg>
<msg timestamp="20210630 17:20:15.153" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:20:15.153" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:15.154" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/ea0bf4fc-5bb8-4d0d-8db9-aa11669dbf01/clear {"id": "ea0bf4fc-5bb8-4d0d-8db9-aa11669dbf01"}</msg>
<msg timestamp="20210630 17:20:15.226" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/ea0bf4fc-5bb8-4d0d-8db9-aa11669dbf01/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:20:15.226" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:15.226" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/ea0bf4fc-5bb8-4d0d-8db9-aa11669dbf01/value {"text": "mjmj@zhichi.com", "value": ["m", "j", "m", "j", "@", "z", "h", "i", "c", "h", "i", ".", "c", "o", "m"], "id": "ea0bf4fc-5bb8-4d0d-8db9-aa11669dbf01"}</msg>
<msg timestamp="20210630 17:20:15.292" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/ea0bf4fc-5bb8-4d0d-8db9-aa11669dbf01/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:20:15.292" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:20:15.065" endtime="20210630 17:20:15.293"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>id=userPassword</arg>
<arg>${password}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210630 17:20:15.293" level="INFO">Typing text 'sobot1234' into text field 'id=userPassword'.</msg>
<msg timestamp="20210630 17:20:15.294" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "css selector", "value": "[id=\"userPassword\"]"}</msg>
<msg timestamp="20210630 17:20:15.306" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:20:15.306" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:15.306" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/2eba696b-dfd5-4619-8561-c1d861030864/clear {"id": "2eba696b-dfd5-4619-8561-c1d861030864"}</msg>
<msg timestamp="20210630 17:20:15.346" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/2eba696b-dfd5-4619-8561-c1d861030864/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:20:15.346" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:15.346" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/2eba696b-dfd5-4619-8561-c1d861030864/value {"text": "sobot1234", "value": ["s", "o", "b", "o", "t", "1", "2", "3", "4"], "id": "2eba696b-dfd5-4619-8561-c1d861030864"}</msg>
<msg timestamp="20210630 17:20:15.409" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/2eba696b-dfd5-4619-8561-c1d861030864/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:20:15.409" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:20:15.293" endtime="20210630 17:20:15.409"/>
</kw>
<kw name="Click Button" library="SeleniumLibrary">
<arg>xpath=//button[text()="登 录"]</arg>
<doc>Clicks the button identified by ``locator``.</doc>
<msg timestamp="20210630 17:20:15.410" level="INFO">Clicking button 'xpath=//button[text()="登 录"]'.</msg>
<msg timestamp="20210630 17:20:15.410" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u767b \u5f55\"]"}</msg>
<msg timestamp="20210630 17:20:15.421" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:20:15.421" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:15.421" level="DEBUG">GET http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/0f7a56f4-2db1-43ad-a71d-3015bf5b5584/name {"id": "0f7a56f4-2db1-43ad-a71d-3015bf5b5584"}</msg>
<msg timestamp="20210630 17:20:15.424" level="DEBUG">http://127.0.0.1:50404 "GET /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/0f7a56f4-2db1-43ad-a71d-3015bf5b5584/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 17:20:15.424" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:15.424" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u767b \u5f55\"]"}</msg>
<msg timestamp="20210630 17:20:15.431" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:20:15.431" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:15.431" level="DEBUG">GET http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/0f7a56f4-2db1-43ad-a71d-3015bf5b5584/name {"id": "0f7a56f4-2db1-43ad-a71d-3015bf5b5584"}</msg>
<msg timestamp="20210630 17:20:15.435" level="DEBUG">http://127.0.0.1:50404 "GET /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/0f7a56f4-2db1-43ad-a71d-3015bf5b5584/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 17:20:15.436" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:15.436" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/0f7a56f4-2db1-43ad-a71d-3015bf5b5584/click {"id": "0f7a56f4-2db1-43ad-a71d-3015bf5b5584"}</msg>
<msg timestamp="20210630 17:20:15.487" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/0f7a56f4-2db1-43ad-a71d-3015bf5b5584/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:20:15.488" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:20:15.409" endtime="20210630 17:20:15.488"/>
</kw>
<status status="PASS" starttime="20210630 17:20:15.029" endtime="20210630 17:20:15.488"/>
</kw>
<status status="PASS" starttime="20210630 17:20:15.026" endtime="20210630 17:20:15.488"/>
</kw>
<status status="PASS" starttime="20210630 17:20:15.017" endtime="20210630 17:20:15.488"/>
</kw>
<kw name="Wait Until Element Is Enabled" library="SeleniumLibrary">
<arg>${locator_vars}[我知道了]</arg>
<arg>60s</arg>
<doc>Waits until the element ``locator`` is enabled.</doc>
<msg timestamp="20210630 17:20:15.490" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:15.506" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:15.507" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:15.718" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:15.727" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:15.727" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:15.930" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:15.937" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:15.937" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:16.144" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:16.151" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:16.152" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:16.354" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:16.361" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:16.361" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:16.568" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:16.579" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:16.579" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:16.794" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:16.954" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:16.955" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:17.155" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:17.161" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:17.161" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:17.370" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:17.376" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:17.376" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:17.583" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:17.587" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:17.588" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:17.800" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:17.805" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:17.805" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:18.018" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:18.023" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:18.023" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:18.234" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:18.240" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:18.240" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:18.454" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:18.459" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:18.459" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:18.670" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:18.674" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:18.674" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:18.885" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:18.890" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:18.890" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:19.099" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:19.106" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:19.106" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:19.317" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:19.324" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:19.325" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:19.533" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:19.538" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:19.538" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:19.753" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:19.758" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:19.758" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:19.973" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:20.013" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:20.013" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:20.219" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:20.224" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:20.224" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:20.436" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:20.445" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:20.446" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:20.650" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:20.656" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:20:20.656" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:20.656" level="DEBUG">GET http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/11b35b3c-c3cf-4405-b900-57af2e3c11c2/enabled {"id": "11b35b3c-c3cf-4405-b900-57af2e3c11c2"}</msg>
<msg timestamp="20210630 17:20:20.661" level="DEBUG">http://127.0.0.1:50404 "GET /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/11b35b3c-c3cf-4405-b900-57af2e3c11c2/enabled HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:20:20.661" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:20.661" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/execute/sync {"script": "return (function(){return function(){var d=this;function f(a){return\"string\"==typeof a};function h(a,b){this.code=a;this.a=l[a]||m;this.message=b||\"\";a=this.a.replace(/((?:^|\\s+)[a-z])/g,function(a){return a.toUpperCase().replace(/^[\\s\\xa0]+/g,\"\")});b=a.length-5;if(0&gt;b||a.indexOf(\"Error\",b)!=b)a+=\"Error\";this.name=a;a=Error(this.message);a.name=this.name;this.stack=a.stack||\"\"}\n(function(){var a=Error;function b(){}b.prototype=a.prototype;h.b=a.prototype;h.prototype=new b;h.prototype.constructor=h;h.a=function(b,c,g){for(var e=Array(arguments.length-2),k=2;k&lt;arguments.length;k++)e[k-2]=arguments[k];return a.prototype[c].apply(b,e)}})();var m=\"unknown error\",l={15:\"element not selectable\",11:\"element not visible\"};l[31]=m;l[30]=m;l[24]=\"invalid cookie domain\";l[29]=\"invalid element coordinates\";l[12]=\"invalid element state\";l[32]=\"invalid selector\";l[51]=\"invalid selector\";\nl[52]=\"invalid selector\";l[17]=\"javascript error\";l[405]=\"unsupported operation\";l[34]=\"move target out of bounds\";l[27]=\"no such alert\";l[7]=\"no such element\";l[8]=\"no such frame\";l[23]=\"no such window\";l[28]=\"script timeout\";l[33]=\"session not created\";l[10]=\"stale element reference\";l[21]=\"timeout\";l[25]=\"unable to set cookie\";l[26]=\"unexpected alert open\";l[13]=m;l[9]=\"unknown command\";h.prototype.toString=function(){return this.name+\": \"+this.message};var n;a:{var p=d.navigator;if(p){var q=p.userAgent;if(q){n=q;break a}}n=\"\"}function r(a){return-1!=n.indexOf(a)};function t(a,b){for(var e=a.length,c=f(a)?a.split(\"\"):a,g=0;g&lt;e;g++)g in c&amp;&amp;b.call(void 0,c[g],g,a)};function v(){return r(\"iPhone\")&amp;&amp;!r(\"iPod\")&amp;&amp;!r(\"iPad\")};function w(){return(r(\"Chrome\")||r(\"CriOS\"))&amp;&amp;!r(\"Edge\")};var x=r(\"Opera\"),y=r(\"Trident\")||r(\"MSIE\"),z=r(\"Edge\"),A=r(\"Gecko\")&amp;&amp;!(-1!=n.toLowerCase().indexOf(\"webkit\")&amp;&amp;!r(\"Edge\"))&amp;&amp;!(r(\"Trident\")||r(\"MSIE\"))&amp;&amp;!r(\"Edge\"),aa=-1!=n.toLowerCase().indexOf(\"webkit\")&amp;&amp;!r(\"Edge\");function B(){var a=d.document;return a?a.documentMode:void 0}var C;\na:{var D=\"\",E=function(){var a=n;if(A)return/rv\\:([^\\);]+)(\\)|;)/.exec(a);if(z)return/Edge\\/([\\d\\.]+)/.exec(a);if(y)return/\\b(?:MSIE|rv)[: ]([^\\);]+)(\\)|;)/.exec(a);if(aa)return/WebKit\\/(\\S+)/.exec(a);if(x)return/(?:Version)[ \\/]?(\\S+)/.exec(a)}();E&amp;&amp;(D=E?E[1]:\"\");if(y){var F=B();if(null!=F&amp;&amp;F&gt;parseFloat(D)){C=String(F);break a}}C=D}var G;var H=d.document;G=H&amp;&amp;y?B()||(\"CSS1Compat\"==H.compatMode?parseInt(C,10):5):void 0;var ba=r(\"Firefox\"),ca=v()||r(\"iPod\"),da=r(\"iPad\"),I=r(\"Android\")&amp;&amp;!(w()||r(\"Firefox\")||r(\"Opera\")||r(\"Silk\")),ea=w(),J=r(\"Safari\")&amp;&amp;!(w()||r(\"Coast\")||r(\"Opera\")||r(\"Edge\")||r(\"Silk\")||r(\"Android\"))&amp;&amp;!(v()||r(\"iPad\")||r(\"iPod\"));function K(a){return(a=a.exec(n))?a[1]:\"\"}(function(){if(ba)return K(/Firefox\\/([0-9.]+)/);if(y||z||x)return C;if(ea)return v()||r(\"iPad\")||r(\"iPod\")?K(/CriOS\\/([0-9.]+)/):K(/Chrome\\/([0-9.]+)/);if(J&amp;&amp;!(v()||r(\"iPad\")||r(\"iPod\")))return K(/Version\\/([0-9.]+)/);if(ca||da){var a=/Version\\/(\\S+).*Mobile\\/(\\S+)/.exec(n);if(a)return a[1]+\".\"+a[2]}else if(I)return(a=K(/Android\\s+([0-9.]+)/))?a:K(/Version\\/([0-9.]+)/);return\"\"})();var L,M=function(){if(!A)return!1;var a=d.Components;if(!a)return!1;try{if(!a.classes)return!1}catch(g){return!1}var b=a.classes,a=a.interfaces,e=b[\"@mozilla.org/xpcom/version-comparator;1\"].getService(a.nsIVersionComparator),c=b[\"@mozilla.org/xre/app-info;1\"].getService(a.nsIXULAppInfo).version;L=function(a){e.compare(c,\"\"+a)};return!0}(),N=y&amp;&amp;!(8&lt;=Number(G)),fa=y&amp;&amp;!(9&lt;=Number(G));I&amp;&amp;M&amp;&amp;L(2.3);I&amp;&amp;M&amp;&amp;L(4);J&amp;&amp;M&amp;&amp;L(6);var ga={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1},O={IMG:\" \",BR:\"\\n\"};function P(a,b,e){if(!(a.nodeName in ga))if(3==a.nodeType)e?b.push(String(a.nodeValue).replace(/(\\r\\n|\\r|\\n)/g,\"\")):b.push(a.nodeValue);else if(a.nodeName in O)b.push(O[a.nodeName]);else for(a=a.firstChild;a;)P(a,b,e),a=a.nextSibling};function Q(a,b){b=b.toLowerCase();return\"style\"==b?ha(a.style.cssText):N&amp;&amp;\"value\"==b&amp;&amp;R(a,\"INPUT\")?a.value:fa&amp;&amp;!0===a[b]?String(a.getAttribute(b)):(a=a.getAttributeNode(b))&amp;&amp;a.specified?a.value:null}var ia=/[;]+(?=(?:(?:[^\"]*\"){2})*[^\"]*$)(?=(?:(?:[^']*'){2})*[^']*$)(?=(?:[^()]*\\([^()]*\\))*[^()]*$)/;\nfunction ha(a){var b=[];t(a.split(ia),function(a){var c=a.indexOf(\":\");0&lt;c&amp;&amp;(a=[a.slice(0,c),a.slice(c+1)],2==a.length&amp;&amp;b.push(a[0].toLowerCase(),\":\",a[1],\";\"))});b=b.join(\"\");return b=\";\"==b.charAt(b.length-1)?b:b+\";\"}function S(a,b){N&amp;&amp;\"value\"==b&amp;&amp;R(a,\"OPTION\")&amp;&amp;null===Q(a,\"value\")?(b=[],P(a,b,!1),a=b.join(\"\")):a=a[b];return a}function R(a,b){b&amp;&amp;\"string\"!==typeof b&amp;&amp;(b=b.toString());return!!a&amp;&amp;1==a.nodeType&amp;&amp;(!b||a.tagName.toUpperCase()==b)}\nfunction T(a){return R(a,\"OPTION\")?!0:R(a,\"INPUT\")?(a=a.type.toLowerCase(),\"checkbox\"==a||\"radio\"==a):!1};var ja={\"class\":\"className\",readonly:\"readOnly\"},U=\"allowfullscreen allowpaymentrequest allowusermedia async autofocus autoplay checked compact complete controls declare default defaultchecked defaultselected defer disabled ended formnovalidate hidden indeterminate iscontenteditable ismap itemscope loop multiple muted nohref nomodule noresize noshade novalidate nowrap open paused playsinline pubdate readonly required reversed scoped seamless seeking selected truespeed typemustmatch willvalidate\".split(\" \");function V(a,b){var e=null,c=b.toLowerCase();if(\"style\"==c)return(e=a.style)&amp;&amp;!f(e)&amp;&amp;(e=e.cssText),e;if((\"selected\"==c||\"checked\"==c)&amp;&amp;T(a)){if(!T(a))throw new h(15,\"Element is not selectable\");b=\"selected\";e=a.type&amp;&amp;a.type.toLowerCase();if(\"checkbox\"==e||\"radio\"==e)b=\"checked\";return S(a,b)?\"true\":null}var g=R(a,\"A\");if(R(a,\"IMG\")&amp;&amp;\"src\"==c||g&amp;&amp;\"href\"==c)return(e=Q(a,c))&amp;&amp;(e=S(a,c)),e;if(\"spellcheck\"==c){e=Q(a,c);if(null!==e){if(\"false\"==e.toLowerCase())return\"false\";if(\"true\"==e.toLowerCase())return\"true\"}return S(a,\nc)+\"\"}g=ja[b]||b;a:if(f(U))c=f(c)&amp;&amp;1==c.length?U.indexOf(c,0):-1;else{for(var u=0;u&lt;U.length;u++)if(u in U&amp;&amp;U[u]===c){c=u;break a}c=-1}if(0&lt;=c)return(e=null!==Q(a,b)||S(a,g))?\"true\":null;try{var k=S(a,g)}catch(ka){}(c=null==k)||(c=typeof k,c=\"object\"==c&amp;&amp;null!=k||\"function\"==c);c?e=Q(a,b):e=k;return null!=e?e.toString():null}var W=[\"_\"],X=d;W[0]in X||!X.execScript||X.execScript(\"var \"+W[0]);\nfor(var Y;W.length&amp;&amp;(Y=W.shift());){var Z;if(Z=!W.length)Z=void 0!==V;Z?X[Y]=V:X[Y]&amp;&amp;X[Y]!==Object.prototype[Y]?X=X[Y]:X=X[Y]={}};; return this._.apply(null,arguments);}.apply({navigator:typeof window!='undefined'?window.navigator:null,document:typeof window!='undefined'?window.document:null}, arguments);}\n).apply(null, arguments);", "args": [{"ELEMENT": "11b35b3c-c3cf-4405-b900-57af2e3c11c2", "element-6066-11e4-a52e-4f735466cecf": "11b35b3c-c3cf-4405-b900-57af2e3c11c2"}, "readonly"]}</msg>
<msg timestamp="20210630 17:20:20.665" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/execute/sync HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:20:20.666" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:20:15.489" endtime="20210630 17:20:20.666"/>
</kw>
<kw name="Click Button" library="SeleniumLibrary">
<arg>${locator_vars}[我知道了]</arg>
<doc>Clicks the button identified by ``locator``.</doc>
<msg timestamp="20210630 17:20:20.666" level="INFO">Clicking button 'xpath=//button[text()="我知道了"]'.</msg>
<msg timestamp="20210630 17:20:20.666" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:20.671" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:20:20.671" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:20.671" level="DEBUG">GET http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/11b35b3c-c3cf-4405-b900-57af2e3c11c2/name {"id": "11b35b3c-c3cf-4405-b900-57af2e3c11c2"}</msg>
<msg timestamp="20210630 17:20:20.673" level="DEBUG">http://127.0.0.1:50404 "GET /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/11b35b3c-c3cf-4405-b900-57af2e3c11c2/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 17:20:20.673" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:20.674" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:20:20.678" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:20:20.678" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:20.678" level="DEBUG">GET http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/11b35b3c-c3cf-4405-b900-57af2e3c11c2/name {"id": "11b35b3c-c3cf-4405-b900-57af2e3c11c2"}</msg>
<msg timestamp="20210630 17:20:20.680" level="DEBUG">http://127.0.0.1:50404 "GET /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/11b35b3c-c3cf-4405-b900-57af2e3c11c2/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 17:20:20.680" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:20.680" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/11b35b3c-c3cf-4405-b900-57af2e3c11c2/click {"id": "11b35b3c-c3cf-4405-b900-57af2e3c11c2"}</msg>
<msg timestamp="20210630 17:20:20.731" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/11b35b3c-c3cf-4405-b900-57af2e3c11c2/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:20:20.731" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:20:20.666" endtime="20210630 17:20:20.731"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[智客]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:20:20.733" level="INFO">Clicking element 'xpath=//div[@data-title="智客"]'.</msg>
<msg timestamp="20210630 17:20:20.733" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//div[@data-title=\"\u667a\u5ba2\"]"}</msg>
<msg timestamp="20210630 17:20:20.742" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:20:20.742" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:20.742" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/ce58fe41-9433-49d1-902e-faea92ed97ce/click {"id": "ce58fe41-9433-49d1-902e-faea92ed97ce"}</msg>
<msg timestamp="20210630 17:20:20.814" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/ce58fe41-9433-49d1-902e-faea92ed97ce/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:20:20.814" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:20:20.732" endtime="20210630 17:20:20.815"/>
</kw>
<kw name="Switch Window" library="SeleniumLibrary">
<arg>NEW</arg>
<doc>Switches to browser window matching ``locator``.</doc>
<msg timestamp="20210630 17:20:20.816" level="DEBUG">GET http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/window {}</msg>
<msg timestamp="20210630 17:20:20.819" level="DEBUG">http://127.0.0.1:50404 "GET /session/a9414e7d9fb2e9a45b44db09aecd5c64/window HTTP/1.1" 200 53</msg>
<msg timestamp="20210630 17:20:20.820" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:20.820" level="DEBUG">GET http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/window/handles {}</msg>
<msg timestamp="20210630 17:20:20.826" level="DEBUG">http://127.0.0.1:50404 "GET /session/a9414e7d9fb2e9a45b44db09aecd5c64/window/handles HTTP/1.1" 200 99</msg>
<msg timestamp="20210630 17:20:20.826" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:20.827" level="DEBUG">GET http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/window {}</msg>
<msg timestamp="20210630 17:20:20.828" level="DEBUG">http://127.0.0.1:50404 "GET /session/a9414e7d9fb2e9a45b44db09aecd5c64/window HTTP/1.1" 200 53</msg>
<msg timestamp="20210630 17:20:20.828" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:20.828" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/window {"handle": "CDwindow-FD755A38460F0949573C51BD0D284C9B"}</msg>
<msg timestamp="20210630 17:20:20.848" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/window HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:20:20.848" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:20:20.815" endtime="20210630 17:20:20.848"/>
</kw>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>已有企业微信</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 17:20:20.849" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210630 17:20:21.776" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:21.777" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:21.993" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210630 17:20:21.999" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:21.999" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:22.207" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210630 17:20:22.212" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:22.213" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:22.423" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210630 17:20:22.491" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 1117</msg>
<msg timestamp="20210630 17:20:22.492" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:20:20.848" endtime="20210630 17:20:22.492"/>
</kw>
<status status="PASS" starttime="20210630 17:20:10.506" endtime="20210630 17:20:22.492"/>
</kw>
<status status="PASS" starttime="20210630 17:20:10.506" endtime="20210630 17:20:22.492"/>
</kw>
<test id="s1-t1" name="Tc1 Skill group add case">
<kw name="Run Keywords" library="BuiltIn" type="SETUP">
<arg>My Test Setup</arg>
<doc>Executes all the given keywords in a sequence.</doc>
<kw name="My Test Setup" library="callcenter_Skillsgroup_V6_setup_teardown">
<kw name="Click Link" library="SeleniumLibrary">
<arg>${locator_vars}[首页]</arg>
<doc>Clicks a link identified by ``locator``.</doc>
<msg timestamp="20210630 17:20:22.495" level="INFO">Clicking link 'xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a'.</msg>
<msg timestamp="20210630 17:20:22.495" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//*[@id=\"root\"]/div/div[2]/ul/li[2]/a"}</msg>
<msg timestamp="20210630 17:20:22.508" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:20:22.508" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:22.508" level="DEBUG">GET http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/dbcd7901-15e1-45c7-a466-ada2e4afdbd2/name {"id": "dbcd7901-15e1-45c7-a466-ada2e4afdbd2"}</msg>
<msg timestamp="20210630 17:20:22.513" level="DEBUG">http://127.0.0.1:50404 "GET /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/dbcd7901-15e1-45c7-a466-ada2e4afdbd2/name HTTP/1.1" 200 13</msg>
<msg timestamp="20210630 17:20:22.514" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:22.514" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/dbcd7901-15e1-45c7-a466-ada2e4afdbd2/click {"id": "dbcd7901-15e1-45c7-a466-ada2e4afdbd2"}</msg>
<msg timestamp="20210630 17:20:22.950" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/dbcd7901-15e1-45c7-a466-ada2e4afdbd2/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:20:22.952" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:20:22.495" endtime="20210630 17:20:22.952"/>
</kw>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>首页</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 17:20:22.953" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//*[contains(., '\u9996\u9875')]"}</msg>
<msg timestamp="20210630 17:20:22.986" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 801</msg>
<msg timestamp="20210630 17:20:22.987" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:20:22.953" endtime="20210630 17:20:22.987"/>
</kw>
<kw name="Sleep" library="BuiltIn">
<arg>2</arg>
<doc>Pauses the test executed for the given time.</doc>
<msg timestamp="20210630 17:20:24.989" level="INFO">Slept 2 seconds</msg>
<status status="PASS" starttime="20210630 17:20:22.987" endtime="20210630 17:20:24.989"/>
</kw>
<status status="PASS" starttime="20210630 17:20:22.494" endtime="20210630 17:20:24.989"/>
</kw>
<status status="PASS" starttime="20210630 17:20:22.494" endtime="20210630 17:20:24.989"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>---------- Tc1 step 1: 进入V6呼叫中心erererrer ------------</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:20:24.990" level="INFO">---------- Tc1 step 1: 进入V6呼叫中心erererrer ------------</msg>
<status status="PASS" starttime="20210630 17:20:24.990" endtime="20210630 17:20:24.991"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-新呼叫中心]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:20:24.992" level="INFO">Clicking element 'xpath=//*[@id="root"]/div/div[3]/div/div/div/div[2]/div/div[9]/a'.</msg>
<msg timestamp="20210630 17:20:24.992" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//*[@id=\"root\"]/div/div[3]/div/div/div/div[2]/div/div[9]/a"}</msg>
<msg timestamp="20210630 17:20:25.002" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:20:25.002" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:25.002" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/1bb369cf-8629-4e99-9c4b-f1af95ea9a2f/click {"id": "1bb369cf-8629-4e99-9c4b-f1af95ea9a2f"}</msg>
<msg timestamp="20210630 17:20:26.283" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/1bb369cf-8629-4e99-9c4b-f1af95ea9a2f/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:20:26.284" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:20:24.992" endtime="20210630 17:20:26.284"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>---------- Tc1 step 2: 进入呼叫中心 &gt; 技能组 ------------</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:20:26.285" level="INFO">---------- Tc1 step 2: 进入呼叫中心 &gt; 技能组 ------------</msg>
<status status="PASS" starttime="20210630 17:20:26.285" endtime="20210630 17:20:26.286"/>
</kw>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>技能组</arg>
<arg>${sleep_60}</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 17:20:26.287" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//*[contains(., '\u6280\u80fd\u7ec4')]"}</msg>
<msg timestamp="20210630 17:20:26.299" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:20:26.300" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:26.505" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//*[contains(., '\u6280\u80fd\u7ec4')]"}</msg>
<msg timestamp="20210630 17:20:26.511" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 1354</msg>
<msg timestamp="20210630 17:20:26.512" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:20:26.287" endtime="20210630 17:20:26.512"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-呼叫技能组]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:20:26.512" level="INFO">Clicking element 'xpath=//*[@id="0-0$Menu"]/li[3]/a[text()=("呼叫技能组")]'.</msg>
<msg timestamp="20210630 17:20:26.513" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//*[@id=\"0-0$Menu\"]/li[3]/a[text()=(\"\u547c\u53eb\u6280\u80fd\u7ec4\")]"}</msg>
<msg timestamp="20210630 17:20:26.522" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:20:26.523" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:26.523" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/54a05919-ce89-40b1-bc93-4968a200ff0a/click {"id": "54a05919-ce89-40b1-bc93-4968a200ff0a"}</msg>
<msg timestamp="20210630 17:20:26.672" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/54a05919-ce89-40b1-bc93-4968a200ff0a/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:20:26.672" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:20:26.512" endtime="20210630 17:20:26.673"/>
</kw>
<kw name="Sleep" library="BuiltIn">
<arg>${sleep_3}</arg>
<doc>Pauses the test executed for the given time.</doc>
<msg timestamp="20210630 17:20:29.688" level="INFO">Slept 3 seconds</msg>
<status status="PASS" starttime="20210630 17:20:26.673" endtime="20210630 17:20:29.689"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>--------------- Tc1 step 3: 新增技能组(重复组号/重复名字) -------------------------------</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:20:29.693" level="INFO">--------------- Tc1 step 3: 新增技能组(重复组号/重复名字) -------------------------------</msg>
<status status="PASS" starttime="20210630 17:20:29.692" endtime="20210630 17:20:29.694"/>
</kw>
<kw name="Set Variable" library="BuiltIn">
<var>${groupName}</var>
<arg>发生的</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<msg timestamp="20210630 17:20:29.695" level="INFO">${groupName} = 发生的</msg>
<status status="PASS" starttime="20210630 17:20:29.695" endtime="20210630 17:20:29.695"/>
</kw>
<kw name="Set Variable" library="BuiltIn">
<var>${groupNumber}</var>
<arg>2233</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<msg timestamp="20210630 17:20:29.696" level="INFO">${groupNumber} = 2233</msg>
<status status="PASS" starttime="20210630 17:20:29.696" endtime="20210630 17:20:29.696"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>新增</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:20:29.696" level="INFO">新增</msg>
<status status="PASS" starttime="20210630 17:20:29.696" endtime="20210630 17:20:29.696"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-新增]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:20:29.696" level="INFO">Clicking element 'xpath=//*[@id="searchRight"]/button/span[text()="新建"]'.</msg>
<msg timestamp="20210630 17:20:29.697" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//*[@id=\"searchRight\"]/button/span[text()=\"\u65b0\u5efa\"]"}</msg>
<msg timestamp="20210630 17:20:29.706" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:20:29.707" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:29.707" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/4e27ad0d-a9df-4905-bf50-06cac21accf0/click {"id": "4e27ad0d-a9df-4905-bf50-06cac21accf0"}</msg>
<msg timestamp="20210630 17:20:29.777" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/4e27ad0d-a9df-4905-bf50-06cac21accf0/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:20:29.777" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:20:29.696" endtime="20210630 17:20:29.777"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-名称文本]</arg>
<arg>${groupName}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210630 17:20:29.778" level="INFO">Typing text '发生的' into text field 'xpath=//*[@id="queueName"]'.</msg>
<msg timestamp="20210630 17:20:29.778" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//*[@id=\"queueName\"]"}</msg>
<msg timestamp="20210630 17:20:29.792" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:20:29.792" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:29.792" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/23c906f6-6840-4de6-86cf-574183e618cc/clear {"id": "23c906f6-6840-4de6-86cf-574183e618cc"}</msg>
<msg timestamp="20210630 17:20:29.825" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/23c906f6-6840-4de6-86cf-574183e618cc/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:20:29.825" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:29.825" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/23c906f6-6840-4de6-86cf-574183e618cc/value {"text": "\u53d1\u751f\u7684", "value": ["\u53d1", "\u751f", "\u7684"], "id": "23c906f6-6840-4de6-86cf-574183e618cc"}</msg>
<msg timestamp="20210630 17:20:29.875" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/23c906f6-6840-4de6-86cf-574183e618cc/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:20:29.875" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:20:29.778" endtime="20210630 17:20:29.876"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-组号]</arg>
<arg>${groupNumber}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210630 17:20:29.877" level="INFO">Typing text '2233' into text field 'xpath=//*[@id="queueID"]'.</msg>
<msg timestamp="20210630 17:20:29.877" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//*[@id=\"queueID\"]"}</msg>
<msg timestamp="20210630 17:20:29.886" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:20:29.886" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:29.886" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/a987e3fc-62a6-4dd2-ad62-06115cd27378/clear {"id": "a987e3fc-62a6-4dd2-ad62-06115cd27378"}</msg>
<msg timestamp="20210630 17:20:29.908" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/a987e3fc-62a6-4dd2-ad62-06115cd27378/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:20:29.909" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:29.909" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/a987e3fc-62a6-4dd2-ad62-06115cd27378/value {"text": "2233", "value": ["2", "2", "3", "3"], "id": "a987e3fc-62a6-4dd2-ad62-06115cd27378"}</msg>
<msg timestamp="20210630 17:20:29.966" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/a987e3fc-62a6-4dd2-ad62-06115cd27378/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:20:29.966" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:20:29.876" endtime="20210630 17:20:29.966"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-弹板-新建]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:20:29.967" level="INFO">Clicking element 'xpath=/html/body//button/span[text()="新 建"]'.</msg>
<msg timestamp="20210630 17:20:29.967" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "/html/body//button/span[text()=\"\u65b0 \u5efa\"]"}</msg>
<msg timestamp="20210630 17:20:29.976" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:20:29.976" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:29.976" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/ad46986a-72b8-4f5a-9455-85778aea8ef4/click {"id": "ad46986a-72b8-4f5a-9455-85778aea8ef4"}</msg>
<msg timestamp="20210630 17:20:30.013" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/ad46986a-72b8-4f5a-9455-85778aea8ef4/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:20:30.014" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:20:29.966" endtime="20210630 17:20:30.014"/>
</kw>
<kw name="Check Flash Prompt Message" library="public_robot_keywords">
<arg>flash_prompt_locator=${locator_vars}[组成员-添加-错误提示弹板]</arg>
<arg>excepted_message=队列号已存在</arg>
<doc>check三秒提示信息是否是预期值</doc>
<kw name="Log" library="BuiltIn">
<arg>textlink locator is: ${textlink_locator}</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:20:30.018" level="INFO">textlink locator is: None</msg>
<status status="PASS" starttime="20210630 17:20:30.017" endtime="20210630 17:20:30.018"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>button locator is: ${button_locator}</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:20:30.018" level="INFO">button locator is: None</msg>
<status status="PASS" starttime="20210630 17:20:30.018" endtime="20210630 17:20:30.018"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>flash prompt locator is: ${flash_prompt_locator}</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:20:30.019" level="INFO">flash prompt locator is: xpath=//html/body/div[3]/div</msg>
<status status="PASS" starttime="20210630 17:20:30.018" endtime="20210630 17:20:30.019"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>excepted message is: ${excepted_message}</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:20:30.019" level="INFO">excepted message is: 队列号已存在</msg>
<status status="PASS" starttime="20210630 17:20:30.019" endtime="20210630 17:20:30.019"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>click object is: ${click_object}</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:20:30.019" level="INFO">click object is: Element</msg>
<status status="PASS" starttime="20210630 17:20:30.019" endtime="20210630 17:20:30.020"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>=======================================================================</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:20:30.020" level="INFO">=======================================================================</msg>
<status status="PASS" starttime="20210630 17:20:30.020" endtime="20210630 17:20:30.020"/>
</kw>
<kw name="Set Variable" library="BuiltIn">
<var>${final_message}</var>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<msg timestamp="20210630 17:20:30.020" level="INFO">${final_message} = </msg>
<status status="PASS" starttime="20210630 17:20:30.020" endtime="20210630 17:20:30.020"/>
</kw>
<kw name="Sleep" library="BuiltIn">
<arg>${sleep_time}</arg>
<doc>Pauses the test executed for the given time.</doc>
<msg timestamp="20210630 17:20:30.322" level="INFO">Slept 300 milliseconds</msg>
<status status="PASS" starttime="20210630 17:20:30.020" endtime="20210630 17:20:30.322"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>'${textlink_locator}' is not '${None}'</arg>
<arg>Click ${click_object}</arg>
<arg>${textlink_locator}</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210630 17:20:30.322" endtime="20210630 17:20:30.323"/>
</kw>
<kw name="Sleep" library="BuiltIn">
<arg>${sleep_time}</arg>
<doc>Pauses the test executed for the given time.</doc>
<msg timestamp="20210630 17:20:30.632" level="INFO">Slept 300 milliseconds</msg>
<status status="PASS" starttime="20210630 17:20:30.323" endtime="20210630 17:20:30.632"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>'${button_locator}' is not '${None}'</arg>
<arg>Click ${click_object}</arg>
<arg>${button_locator}</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210630 17:20:30.632" endtime="20210630 17:20:30.632"/>
</kw>
<kw name="Sleep" library="BuiltIn">
<arg>${sleep_time}</arg>
<doc>Pauses the test executed for the given time.</doc>
<msg timestamp="20210630 17:20:30.943" level="INFO">Slept 300 milliseconds</msg>
<status status="PASS" starttime="20210630 17:20:30.633" endtime="20210630 17:20:30.943"/>
</kw>
<kw name="Get Text" library="SeleniumLibrary">
<var>${result}</var>
<arg>${flash_prompt_locator}</arg>
<doc>Returns the text value of the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:20:30.943" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//html/body/div[3]/div"}</msg>
<msg timestamp="20210630 17:20:30.952" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:20:30.952" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:30.952" level="DEBUG">GET http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/bb88d06f-4d89-4ced-8a23-20a180e01e76/text {"id": "bb88d06f-4d89-4ced-8a23-20a180e01e76"}</msg>
<msg timestamp="20210630 17:20:30.962" level="DEBUG">http://127.0.0.1:50404 "GET /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/bb88d06f-4d89-4ced-8a23-20a180e01e76/text HTTP/1.1" 200 30</msg>
<msg timestamp="20210630 17:20:30.962" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:30.962" level="INFO">${result} = 队列号已存在</msg>
<status status="PASS" starttime="20210630 17:20:30.943" endtime="20210630 17:20:30.962"/>
</kw>
<kw name="Split To Lines" library="String">
<var>@{response}</var>
<arg>${result}</arg>
<doc>Splits the given string to lines.</doc>
<msg timestamp="20210630 17:20:30.962" level="INFO">1 lines returned</msg>
<msg timestamp="20210630 17:20:30.963" level="INFO">@{response} = [ 队列号已存在 ]</msg>
<status status="PASS" starttime="20210630 17:20:30.962" endtime="20210630 17:20:30.963"/>
</kw>
<for flavor="IN">
<var>${item}</var>
<value>@{response}</value>
<iter>
<var name="${item}">队列号已存在</var>
<kw name="Catenate" library="BuiltIn">
<var>${final_message}</var>
<arg>${final_message}</arg>
<arg>${item}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<msg timestamp="20210630 17:20:30.963" level="INFO">${final_message} = 队列号已存在</msg>
<status status="PASS" starttime="20210630 17:20:30.963" endtime="20210630 17:20:30.963"/>
</kw>
<status status="PASS" starttime="20210630 17:20:30.963" endtime="20210630 17:20:30.963"/>
</iter>
<status status="PASS" starttime="20210630 17:20:30.963" endtime="20210630 17:20:30.963"/>
</for>
<kw name="Log" library="BuiltIn">
<arg>${final_message}</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:20:30.963" level="INFO"> 队列号已存在</msg>
<status status="PASS" starttime="20210630 17:20:30.963" endtime="20210630 17:20:30.963"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>'${excepted_message}' not in '${final_message}'</arg>
<arg>Fail</arg>
<arg>check flash prompt message failed</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210630 17:20:30.963" endtime="20210630 17:20:30.964"/>
</kw>
<status status="PASS" starttime="20210630 17:20:30.016" endtime="20210630 17:20:30.964"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>--------------- Tc1 step 3: 新增技能组(非组号重复名字) -------------------------------</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:20:30.965" level="INFO">--------------- Tc1 step 3: 新增技能组(非组号重复名字) -------------------------------</msg>
<status status="PASS" starttime="20210630 17:20:30.965" endtime="20210630 17:20:30.965"/>
</kw>
<kw name="Set Variable" library="BuiltIn">
<var>${groupNumber}</var>
<arg>6667</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<msg timestamp="20210630 17:20:30.966" level="INFO">${groupNumber} = 6667</msg>
<status status="PASS" starttime="20210630 17:20:30.966" endtime="20210630 17:20:30.966"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>新增</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:20:30.966" level="INFO">新增</msg>
<status status="PASS" starttime="20210630 17:20:30.966" endtime="20210630 17:20:30.966"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-新增]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:20:30.967" level="INFO">Clicking element 'xpath=//*[@id="searchRight"]/button/span[text()="新建"]'.</msg>
<msg timestamp="20210630 17:20:30.967" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/elements {"using": "xpath", "value": "//*[@id=\"searchRight\"]/button/span[text()=\"\u65b0\u5efa\"]"}</msg>
<msg timestamp="20210630 17:20:30.972" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:20:30.972" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:30.972" level="DEBUG">POST http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/element/4e27ad0d-a9df-4905-bf50-06cac21accf0/click {"id": "4e27ad0d-a9df-4905-bf50-06cac21accf0"}</msg>
<msg timestamp="20210630 17:20:32.049" level="DEBUG">http://127.0.0.1:50404 "POST /session/a9414e7d9fb2e9a45b44db09aecd5c64/element/4e27ad0d-a9df-4905-bf50-06cac21accf0/click HTTP/1.1" 400 1368</msg>
<msg timestamp="20210630 17:20:32.050" level="DEBUG">Finished Request</msg>
<kw name="Capture Page Screenshot" library="SeleniumLibrary">
<doc>Takes a screenshot of the current page and embeds it into a log file.</doc>
<msg timestamp="20210630 17:20:32.051" level="DEBUG">GET http://127.0.0.1:50404/session/a9414e7d9fb2e9a45b44db09aecd5c64/screenshot {}</msg>
<msg timestamp="20210630 17:20:32.184" level="DEBUG">http://127.0.0.1:50404 "GET /session/a9414e7d9fb2e9a45b44db09aecd5c64/screenshot HTTP/1.1" 200 196712</msg>
<msg timestamp="20210630 17:20:32.184" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:20:32.186" level="INFO" html="true">&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3"&gt;&lt;a href="selenium-screenshot-22.png"&gt;&lt;img src="selenium-screenshot-22.png" width="800px"&gt;&lt;/a&gt;</msg>
<status status="PASS" starttime="20210630 17:20:32.050" endtime="20210630 17:20:32.186"/>
</kw>
<msg timestamp="20210630 17:20:32.191" level="FAIL">ElementClickInterceptedException: Message: element click intercepted: Element &lt;span&gt;...&lt;/span&gt; is not clickable at point (1221, 162). Other element would receive the click: &lt;div tabindex="-1" class="ant-modal-wrap" role="dialog" aria-labelledby="rcDialogTitle1" style=""&gt;...&lt;/div&gt;
(Session info: chrome=91.0.4472.114)
</msg>
<msg timestamp="20210630 17:20:32.191" level="DEBUG">Traceback (most recent call last):
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\SeleniumLibrary\__init__.py", line 492, in run_keyword
return DynamicCore.run_keyword(self, name, args, kwargs)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\robotlibcore.py", line 103, in run_keyword
return self.keywords[name](*args, **(kwargs or {}))
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\SeleniumLibrary\keywords\element.py", line 658, in click_element
self.find_element(locator).click()
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click
self._execute(Command.CLICK_ELEMENT)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "c:\users\anna\appdata\local\programs\python\python38\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)</msg>
<status status="FAIL" starttime="20210630 17:20:30.967" endtime="20210630 17:20:32.191"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-名称文本]</arg>
<arg>${groupName}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 17:20:32.192" endtime="20210630 17:20:32.192"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-组号]</arg>
<arg>${groupNumber}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 17:20:32.192" endtime="20210630 17:20:32.192"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-弹板-新建]</arg>
<doc>Click the element identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 17:20:32.193" endtime="20210630 17:20:32.193"/>
</kw>
<kw name="sleep 2">
<status status="NOT RUN" starttime="20210630 17:20:32.197" endtime="20210630 17:20:32.197"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-创建返回列表]</arg>
<doc>Click the element identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 17:20:32.197" endtime="20210630 17:20:32.197"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>--------校验是否添加成功---------</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" starttime="20210630 17:20:32.197" endtime="20210630 17:20:32.197"/>
</kw>
<kw name="Get Table Data For Column" library="public_robot_keywords">
<var>${listDataNumber}</var>
<arg>tbody_locator=${locator_vars}[V6-技能组tbody]</arg>
<arg>column=2</arg>
<arg>right_arrow_locator=${locator_vars}[V6-技能组-下一页]</arg>
<arg>the_first_page_locator=${locator_vars}[V6-技能组-第一页切换]</arg>
<doc>取得table列数据</doc>
<status status="NOT RUN" starttime="20210630 17:20:32.198" endtime="20210630 17:20:32.198"/>
</kw>
<kw name="Check Items Match Or Not In List" library="public_robot_keywords">
<arg>all_data=${listDataNumber}</arg>
<arg>check_items=${groupNumber}</arg>
<doc>在list里检查items数据是否精确匹配</doc>
<status status="NOT RUN" starttime="20210630 17:20:32.198" endtime="20210630 17:20:32.198"/>
</kw>
<doc>- 进入呼叫中心
- 进入呼叫中心</doc>
<tag>1</tag>
<tag>Sanity</tag>
<tag>呼叫中心</tag>
<status status="FAIL" starttime="20210630 17:20:22.493" endtime="20210630 17:20:32.198">ElementClickInterceptedException: Message: element click intercepted: Element &lt;span&gt;...&lt;/span&gt; is not clickable at point (1221, 162). Other element would receive the click: &lt;div tabindex="-1" class="ant-modal-wrap" role="dialog" aria-labelledby="rcDialogTitle1" style=""&gt;...&lt;/div&gt;
(Session info: chrome=91.0.4472.114)
</status>
</test>
<doc>callcenter_Relaynumber_V6_full1.robot
author: jiawei</doc>
<status status="FAIL" starttime="20210630 17:20:10.203" endtime="20210630 17:20:32.199"/>
</suite>
<statistics>
<total>
<stat pass="0" fail="1" skip="0">All Tests</stat>
</total>
<tag>
<stat pass="0" fail="1" skip="0">1</stat>
<stat pass="0" fail="1" skip="0">Sanity</stat>
<stat pass="0" fail="1" skip="0">呼叫中心</stat>
</tag>
<suite>
<stat pass="0" fail="1" skip="0" id="s1" name="callcenter Skillsgroup V6 full1">callcenter Skillsgroup V6 full1</stat>
</suite>
</statistics>
<errors>
<msg timestamp="20210630 17:20:10.456" level="WARN">Imported library 'D:\word\自动化\script_template\keyword\callcenter_V6_python_keywords.py' contains no keywords.</msg>
</errors>
</robot>
<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 4.0.3 (Python 3.8.8 on win32)" generated="20210630 17:21:26.601" rpa="false" schemaversion="2">
<suite id="s1" name="callcenter Skillsgroup V6 full1" source="D:\word\自动化\script_template\callcenter_Skillsgroup_V6_full1.robot">
<kw name="Run Keywords" library="BuiltIn" type="SETUP">
<arg>My Suite Setup</arg>
<doc>Executes all the given keywords in a sequence.</doc>
<kw name="My Suite Setup" library="callcenter_Skillsgroup_V6_setup_teardown">
<kw name="Log" library="BuiltIn">
<arg>========================== My Suite Setup Start ==========================</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:21:26.986" level="INFO">========================== My Suite Setup Start ==========================</msg>
<status status="PASS" starttime="20210630 17:21:26.985" endtime="20210630 17:21:26.991"/>
</kw>
<kw name="Fetch Json Vars" library="public_python_keywords">
<var>&amp;{gbl_vars}</var>
<arg>file=D:\\word\\自动化\\script_template\\json_file\\call_center_vars.json</arg>
<msg timestamp="20210630 17:21:26.994" level="INFO">&amp;{gbl_vars} = { log_level=DEBUG | url=http://test.sobot.com/console/login | browser=gc | email=mjmj@zhichi.com | password=sobot1234 | w_size_hor_pixels=1920 | w_size_ver_pixels=1080 | time={'hour': 11, 'minute': '2...</msg>
<status status="PASS" starttime="20210630 17:21:26.992" endtime="20210630 17:21:26.994"/>
</kw>
<kw name="Set Global Variable" library="BuiltIn">
<arg>${gbl_vars}</arg>
<doc>Makes a variable available globally in all tests and suites.</doc>
<msg timestamp="20210630 17:21:26.995" level="INFO">${gbl_vars} = {'log_level': 'DEBUG', 'url': 'http://test.sobot.com/console/login', 'browser': 'gc', 'email': 'mjmj@zhichi.com', 'password': 'sobot1234', 'w_size_hor_pixels': 1920, 'w_size_ver_pixels': 1080, 'time':...</msg>
<status status="PASS" starttime="20210630 17:21:26.994" endtime="20210630 17:21:26.995"/>
</kw>
<kw name="Fetch Json Vars" library="public_python_keywords">
<var>&amp;{locator_vars}</var>
<arg>file=D:\\word\\自动化\\script_template\\json_file\\call_center_locator_vars.json</arg>
<msg timestamp="20210630 17:21:26.995" level="INFO">&amp;{locator_vars} = { 我知道了=xpath=//button[text()="我知道了"] | 智客=xpath=//div[@data-title="智客"] | 首页=xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a | 呼叫中心=x、】path=//*[@id="root"]/div/div[2]/ul/li[3]/a | 企微智客=xpath=//*[@id="root...</msg>
<status status="PASS" starttime="20210630 17:21:26.995" endtime="20210630 17:21:26.995"/>
</kw>
<kw name="Set Global Variable" library="BuiltIn">
<arg>${locator_vars}</arg>
<doc>Makes a variable available globally in all tests and suites.</doc>
<msg timestamp="20210630 17:21:26.996" level="INFO">${locator_vars} = {'我知道了': 'xpath=//button[text()="我知道了"]', '智客': 'xpath=//div[@data-title="智客"]', '首页': 'xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a', '呼叫中心': 'x、】path=//*[@id="root"]/div/div[2]/ul/li[3]/a', '企微智客': '...</msg>
<status status="PASS" starttime="20210630 17:21:26.996" endtime="20210630 17:21:26.996"/>
</kw>
<kw name="Set Log Level" library="BuiltIn">
<arg>${gbl_vars}[log_level]</arg>
<doc>Sets the log threshold to the specified level and returns the old level.</doc>
<msg timestamp="20210630 17:21:26.997" level="INFO">Log level changed from INFO to DEBUG.</msg>
<status status="PASS" starttime="20210630 17:21:26.996" endtime="20210630 17:21:26.997"/>
</kw>
<kw name="Close All Browsers" library="SeleniumLibrary">
<doc>Closes all open browsers and resets the browser cache.</doc>
<msg timestamp="20210630 17:21:26.997" level="DEBUG">Closing all browsers.</msg>
<status status="PASS" starttime="20210630 17:21:26.997" endtime="20210630 17:21:26.997"/>
</kw>
<kw name="Open Browser And Set Size" library="public_robot_keywords">
<arg>url=${gbl_vars}[url]</arg>
<arg>set_window_size=${True}</arg>
<arg>set_max_browser_window=${True}</arg>
<doc>打开指定类型的浏览器,并设置窗口大小</doc>
<kw name="Open Browser" library="SeleniumLibrary">
<arg>${url}</arg>
<arg>${browser}</arg>
<doc>Opens a new browser instance to the optional ``url``.</doc>
<msg timestamp="20210630 17:21:26.999" level="INFO">Opening browser 'gc' to base url 'http://test.sobot.com/console/login'.</msg>
<msg timestamp="20210630 17:21:27.550" level="DEBUG">POST http://127.0.0.1:51294/session {"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "platformName": "any", "goog:chromeOptions": {"extensions": [], "args": []}}}, "desiredCapabilities": {"browserName": "chrome", "version": "", "platform": "ANY", "goog:chromeOptions": {"extensions": [], "args": []}}}</msg>
<msg timestamp="20210630 17:21:27.550" level="DEBUG">Starting new HTTP connection (1): 127.0.0.1:51294</msg>
<msg timestamp="20210630 17:21:28.340" level="DEBUG">http://127.0.0.1:51294 "POST /session HTTP/1.1" 200 751</msg>
<msg timestamp="20210630 17:21:28.340" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:28.341" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/timeouts {"script": 5000}</msg>
<msg timestamp="20210630 17:21:28.342" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/timeouts HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:21:28.343" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:28.344" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/timeouts {"implicit": 0}</msg>
<msg timestamp="20210630 17:21:28.349" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/timeouts HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:21:28.349" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:28.350" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/url {"url": "http://test.sobot.com/console/login"}</msg>
<msg timestamp="20210630 17:21:30.399" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/url HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:21:30.400" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:30.400" level="DEBUG">Opened browser with session id f35c6d33cb28a0cc034ad22a70aeebbd.</msg>
<status status="PASS" starttime="20210630 17:21:26.999" endtime="20210630 17:21:30.400"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${set_window_size}</arg>
<arg>Set Window Size</arg>
<arg>${hor_pixels}</arg>
<arg>${ver_pixels}</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Set Window Size" library="SeleniumLibrary">
<arg>${hor_pixels}</arg>
<arg>${ver_pixels}</arg>
<doc>Sets current windows size to given ``width`` and ``height``.</doc>
<msg timestamp="20210630 17:21:30.400" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/window/rect {"x": null, "y": null, "width": 1920, "height": 1080}</msg>
<msg timestamp="20210630 17:21:30.563" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/window/rect HTTP/1.1" 200 51</msg>
<msg timestamp="20210630 17:21:30.565" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:21:30.400" endtime="20210630 17:21:30.565"/>
</kw>
<status status="PASS" starttime="20210630 17:21:30.400" endtime="20210630 17:21:30.565"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${set_max_browser_window}</arg>
<arg>Maximize Browser Window</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Maximize Browser Window" library="SeleniumLibrary">
<doc>Maximizes current browser window.</doc>
<msg timestamp="20210630 17:21:30.567" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/window/maximize {}</msg>
<msg timestamp="20210630 17:21:30.753" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/window/maximize HTTP/1.1" 200 51</msg>
<msg timestamp="20210630 17:21:30.754" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:21:30.566" endtime="20210630 17:21:30.754"/>
</kw>
<status status="PASS" starttime="20210630 17:21:30.566" endtime="20210630 17:21:30.754"/>
</kw>
<status status="PASS" starttime="20210630 17:21:26.998" endtime="20210630 17:21:30.754"/>
</kw>
<kw name="Logon Soboten" library="public_robot_keywords">
<arg>logon_type=0</arg>
<arg>email=${gbl_vars}[email]</arg>
<arg>password=${gbl_vars}[password]</arg>
<doc>根据参数logon_type值,登录相应的智齿系统</doc>
<kw name="Run Keyword If" library="BuiltIn">
<arg>'@' not in "${email}" or '.' not in "${email}"</arg>
<arg>Fail</arg>
<arg>email format is wrong, please double check!</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210630 17:21:30.755" endtime="20210630 17:21:30.755"/>
</kw>
<kw name="Get Length" library="BuiltIn">
<var>${password_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<msg timestamp="20210630 17:21:30.756" level="INFO">Length is 9</msg>
<msg timestamp="20210630 17:21:30.756" level="INFO">${password_length} = 9</msg>
<status status="PASS" starttime="20210630 17:21:30.755" endtime="20210630 17:21:30.756"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${password_length} &lt; 8</arg>
<arg>Fail</arg>
<arg>Password is less than 8 digits</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210630 17:21:30.756" endtime="20210630 17:21:30.756"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${logon_type}&gt;0</arg>
<arg>Click Element</arg>
<arg>xpath=//div[text()="登录"]</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210630 17:21:30.756" endtime="20210630 17:21:30.756"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${logon_type}==0</arg>
<arg>Logon Test Environment</arg>
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<arg>ELSE IF</arg>
<arg>${logon_type}==1</arg>
<arg>Logon Cloud Customer Service</arg>
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<arg>ELSE IF</arg>
<arg>${logon_type}==2</arg>
<arg>Logon Cloud Outgoing Call</arg>
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Logon Test Environment" library="public_robot_keywords">
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<doc>登录智齿测试系统</doc>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>登录智齿客服,开启智慧客服新篇章</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 17:21:30.760" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//*[contains(., '\u767b\u5f55\u667a\u9f7f\u5ba2\u670d\uff0c\u5f00\u542f\u667a\u6167\u5ba2\u670d\u65b0\u7bc7\u7ae0')]"}</msg>
<msg timestamp="20210630 17:21:30.777" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 722</msg>
<msg timestamp="20210630 17:21:30.777" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:21:30.759" endtime="20210630 17:21:30.777"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>id=userEmail</arg>
<arg>${email}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210630 17:21:30.778" level="INFO">Typing text 'mjmj@zhichi.com' into text field 'id=userEmail'.</msg>
<msg timestamp="20210630 17:21:30.778" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "css selector", "value": "[id=\"userEmail\"]"}</msg>
<msg timestamp="20210630 17:21:30.787" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:21:30.787" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:30.787" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/element/6e2cff9b-1c35-4b0b-be12-2abcba507542/clear {"id": "6e2cff9b-1c35-4b0b-be12-2abcba507542"}</msg>
<msg timestamp="20210630 17:21:30.816" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/element/6e2cff9b-1c35-4b0b-be12-2abcba507542/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:21:30.816" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:30.816" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/element/6e2cff9b-1c35-4b0b-be12-2abcba507542/value {"text": "mjmj@zhichi.com", "value": ["m", "j", "m", "j", "@", "z", "h", "i", "c", "h", "i", ".", "c", "o", "m"], "id": "6e2cff9b-1c35-4b0b-be12-2abcba507542"}</msg>
<msg timestamp="20210630 17:21:30.888" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/element/6e2cff9b-1c35-4b0b-be12-2abcba507542/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:21:30.888" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:21:30.777" endtime="20210630 17:21:30.888"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>id=userPassword</arg>
<arg>${password}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210630 17:21:30.889" level="INFO">Typing text 'sobot1234' into text field 'id=userPassword'.</msg>
<msg timestamp="20210630 17:21:30.889" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "css selector", "value": "[id=\"userPassword\"]"}</msg>
<msg timestamp="20210630 17:21:30.900" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:21:30.900" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:30.900" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/element/7b4e9445-a901-4a93-bcf4-a4b67d215a7c/clear {"id": "7b4e9445-a901-4a93-bcf4-a4b67d215a7c"}</msg>
<msg timestamp="20210630 17:21:30.929" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/element/7b4e9445-a901-4a93-bcf4-a4b67d215a7c/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:21:30.929" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:30.929" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/element/7b4e9445-a901-4a93-bcf4-a4b67d215a7c/value {"text": "sobot1234", "value": ["s", "o", "b", "o", "t", "1", "2", "3", "4"], "id": "7b4e9445-a901-4a93-bcf4-a4b67d215a7c"}</msg>
<msg timestamp="20210630 17:21:30.988" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/element/7b4e9445-a901-4a93-bcf4-a4b67d215a7c/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:21:30.988" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:21:30.888" endtime="20210630 17:21:30.988"/>
</kw>
<kw name="Click Button" library="SeleniumLibrary">
<arg>xpath=//button[text()="登 录"]</arg>
<doc>Clicks the button identified by ``locator``.</doc>
<msg timestamp="20210630 17:21:30.988" level="INFO">Clicking button 'xpath=//button[text()="登 录"]'.</msg>
<msg timestamp="20210630 17:21:30.989" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u767b \u5f55\"]"}</msg>
<msg timestamp="20210630 17:21:31.000" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:21:31.001" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:31.001" level="DEBUG">GET http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/element/9e787e10-1ba6-44c5-858e-afb929c4c61e/name {"id": "9e787e10-1ba6-44c5-858e-afb929c4c61e"}</msg>
<msg timestamp="20210630 17:21:31.004" level="DEBUG">http://127.0.0.1:51294 "GET /session/f35c6d33cb28a0cc034ad22a70aeebbd/element/9e787e10-1ba6-44c5-858e-afb929c4c61e/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 17:21:31.004" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:31.004" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u767b \u5f55\"]"}</msg>
<msg timestamp="20210630 17:21:31.012" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:21:31.012" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:31.012" level="DEBUG">GET http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/element/9e787e10-1ba6-44c5-858e-afb929c4c61e/name {"id": "9e787e10-1ba6-44c5-858e-afb929c4c61e"}</msg>
<msg timestamp="20210630 17:21:31.015" level="DEBUG">http://127.0.0.1:51294 "GET /session/f35c6d33cb28a0cc034ad22a70aeebbd/element/9e787e10-1ba6-44c5-858e-afb929c4c61e/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 17:21:31.015" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:31.015" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/element/9e787e10-1ba6-44c5-858e-afb929c4c61e/click {"id": "9e787e10-1ba6-44c5-858e-afb929c4c61e"}</msg>
<msg timestamp="20210630 17:21:31.070" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/element/9e787e10-1ba6-44c5-858e-afb929c4c61e/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:21:31.070" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:21:30.988" endtime="20210630 17:21:31.070"/>
</kw>
<status status="PASS" starttime="20210630 17:21:30.758" endtime="20210630 17:21:31.071"/>
</kw>
<status status="PASS" starttime="20210630 17:21:30.756" endtime="20210630 17:21:31.071"/>
</kw>
<status status="PASS" starttime="20210630 17:21:30.754" endtime="20210630 17:21:31.071"/>
</kw>
<kw name="Wait Until Element Is Enabled" library="SeleniumLibrary">
<arg>${locator_vars}[我知道了]</arg>
<arg>60s</arg>
<doc>Waits until the element ``locator`` is enabled.</doc>
<msg timestamp="20210630 17:21:31.072" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:31.098" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:31.099" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:31.303" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:31.311" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:31.311" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:31.516" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:31.524" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:31.525" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:31.731" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:31.737" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:31.737" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:31.945" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:31.952" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:31.952" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:32.165" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:32.169" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:32.170" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:32.376" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:32.579" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:32.580" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:32.785" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:32.973" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:32.973" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:33.177" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:33.183" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:33.184" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:33.393" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:33.397" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:33.398" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:33.612" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:33.618" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:33.618" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:33.832" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:33.837" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:33.838" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:34.046" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:34.051" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:34.051" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:34.265" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:34.270" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:34.270" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:34.481" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:34.487" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:34.487" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:34.699" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:34.704" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:34.704" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:34.909" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:34.915" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:34.916" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:35.121" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:35.129" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:35.129" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:35.340" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:35.346" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:35.346" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:35.556" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:35.561" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:35.561" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:35.771" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:35.776" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:35.776" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:35.985" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:35.991" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:35.991" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:36.205" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:36.210" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:36.210" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:36.421" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:36.426" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:36.426" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:36.637" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:36.642" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:36.643" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:36.854" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:36.859" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:21:36.859" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:36.859" level="DEBUG">GET http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/element/1b1505dc-ec08-4111-a823-a68265aae316/enabled {"id": "1b1505dc-ec08-4111-a823-a68265aae316"}</msg>
<msg timestamp="20210630 17:21:36.865" level="DEBUG">http://127.0.0.1:51294 "GET /session/f35c6d33cb28a0cc034ad22a70aeebbd/element/1b1505dc-ec08-4111-a823-a68265aae316/enabled HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:21:36.865" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:36.865" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/execute/sync {"script": "return (function(){return function(){var d=this;function f(a){return\"string\"==typeof a};function h(a,b){this.code=a;this.a=l[a]||m;this.message=b||\"\";a=this.a.replace(/((?:^|\\s+)[a-z])/g,function(a){return a.toUpperCase().replace(/^[\\s\\xa0]+/g,\"\")});b=a.length-5;if(0&gt;b||a.indexOf(\"Error\",b)!=b)a+=\"Error\";this.name=a;a=Error(this.message);a.name=this.name;this.stack=a.stack||\"\"}\n(function(){var a=Error;function b(){}b.prototype=a.prototype;h.b=a.prototype;h.prototype=new b;h.prototype.constructor=h;h.a=function(b,c,g){for(var e=Array(arguments.length-2),k=2;k&lt;arguments.length;k++)e[k-2]=arguments[k];return a.prototype[c].apply(b,e)}})();var m=\"unknown error\",l={15:\"element not selectable\",11:\"element not visible\"};l[31]=m;l[30]=m;l[24]=\"invalid cookie domain\";l[29]=\"invalid element coordinates\";l[12]=\"invalid element state\";l[32]=\"invalid selector\";l[51]=\"invalid selector\";\nl[52]=\"invalid selector\";l[17]=\"javascript error\";l[405]=\"unsupported operation\";l[34]=\"move target out of bounds\";l[27]=\"no such alert\";l[7]=\"no such element\";l[8]=\"no such frame\";l[23]=\"no such window\";l[28]=\"script timeout\";l[33]=\"session not created\";l[10]=\"stale element reference\";l[21]=\"timeout\";l[25]=\"unable to set cookie\";l[26]=\"unexpected alert open\";l[13]=m;l[9]=\"unknown command\";h.prototype.toString=function(){return this.name+\": \"+this.message};var n;a:{var p=d.navigator;if(p){var q=p.userAgent;if(q){n=q;break a}}n=\"\"}function r(a){return-1!=n.indexOf(a)};function t(a,b){for(var e=a.length,c=f(a)?a.split(\"\"):a,g=0;g&lt;e;g++)g in c&amp;&amp;b.call(void 0,c[g],g,a)};function v(){return r(\"iPhone\")&amp;&amp;!r(\"iPod\")&amp;&amp;!r(\"iPad\")};function w(){return(r(\"Chrome\")||r(\"CriOS\"))&amp;&amp;!r(\"Edge\")};var x=r(\"Opera\"),y=r(\"Trident\")||r(\"MSIE\"),z=r(\"Edge\"),A=r(\"Gecko\")&amp;&amp;!(-1!=n.toLowerCase().indexOf(\"webkit\")&amp;&amp;!r(\"Edge\"))&amp;&amp;!(r(\"Trident\")||r(\"MSIE\"))&amp;&amp;!r(\"Edge\"),aa=-1!=n.toLowerCase().indexOf(\"webkit\")&amp;&amp;!r(\"Edge\");function B(){var a=d.document;return a?a.documentMode:void 0}var C;\na:{var D=\"\",E=function(){var a=n;if(A)return/rv\\:([^\\);]+)(\\)|;)/.exec(a);if(z)return/Edge\\/([\\d\\.]+)/.exec(a);if(y)return/\\b(?:MSIE|rv)[: ]([^\\);]+)(\\)|;)/.exec(a);if(aa)return/WebKit\\/(\\S+)/.exec(a);if(x)return/(?:Version)[ \\/]?(\\S+)/.exec(a)}();E&amp;&amp;(D=E?E[1]:\"\");if(y){var F=B();if(null!=F&amp;&amp;F&gt;parseFloat(D)){C=String(F);break a}}C=D}var G;var H=d.document;G=H&amp;&amp;y?B()||(\"CSS1Compat\"==H.compatMode?parseInt(C,10):5):void 0;var ba=r(\"Firefox\"),ca=v()||r(\"iPod\"),da=r(\"iPad\"),I=r(\"Android\")&amp;&amp;!(w()||r(\"Firefox\")||r(\"Opera\")||r(\"Silk\")),ea=w(),J=r(\"Safari\")&amp;&amp;!(w()||r(\"Coast\")||r(\"Opera\")||r(\"Edge\")||r(\"Silk\")||r(\"Android\"))&amp;&amp;!(v()||r(\"iPad\")||r(\"iPod\"));function K(a){return(a=a.exec(n))?a[1]:\"\"}(function(){if(ba)return K(/Firefox\\/([0-9.]+)/);if(y||z||x)return C;if(ea)return v()||r(\"iPad\")||r(\"iPod\")?K(/CriOS\\/([0-9.]+)/):K(/Chrome\\/([0-9.]+)/);if(J&amp;&amp;!(v()||r(\"iPad\")||r(\"iPod\")))return K(/Version\\/([0-9.]+)/);if(ca||da){var a=/Version\\/(\\S+).*Mobile\\/(\\S+)/.exec(n);if(a)return a[1]+\".\"+a[2]}else if(I)return(a=K(/Android\\s+([0-9.]+)/))?a:K(/Version\\/([0-9.]+)/);return\"\"})();var L,M=function(){if(!A)return!1;var a=d.Components;if(!a)return!1;try{if(!a.classes)return!1}catch(g){return!1}var b=a.classes,a=a.interfaces,e=b[\"@mozilla.org/xpcom/version-comparator;1\"].getService(a.nsIVersionComparator),c=b[\"@mozilla.org/xre/app-info;1\"].getService(a.nsIXULAppInfo).version;L=function(a){e.compare(c,\"\"+a)};return!0}(),N=y&amp;&amp;!(8&lt;=Number(G)),fa=y&amp;&amp;!(9&lt;=Number(G));I&amp;&amp;M&amp;&amp;L(2.3);I&amp;&amp;M&amp;&amp;L(4);J&amp;&amp;M&amp;&amp;L(6);var ga={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1},O={IMG:\" \",BR:\"\\n\"};function P(a,b,e){if(!(a.nodeName in ga))if(3==a.nodeType)e?b.push(String(a.nodeValue).replace(/(\\r\\n|\\r|\\n)/g,\"\")):b.push(a.nodeValue);else if(a.nodeName in O)b.push(O[a.nodeName]);else for(a=a.firstChild;a;)P(a,b,e),a=a.nextSibling};function Q(a,b){b=b.toLowerCase();return\"style\"==b?ha(a.style.cssText):N&amp;&amp;\"value\"==b&amp;&amp;R(a,\"INPUT\")?a.value:fa&amp;&amp;!0===a[b]?String(a.getAttribute(b)):(a=a.getAttributeNode(b))&amp;&amp;a.specified?a.value:null}var ia=/[;]+(?=(?:(?:[^\"]*\"){2})*[^\"]*$)(?=(?:(?:[^']*'){2})*[^']*$)(?=(?:[^()]*\\([^()]*\\))*[^()]*$)/;\nfunction ha(a){var b=[];t(a.split(ia),function(a){var c=a.indexOf(\":\");0&lt;c&amp;&amp;(a=[a.slice(0,c),a.slice(c+1)],2==a.length&amp;&amp;b.push(a[0].toLowerCase(),\":\",a[1],\";\"))});b=b.join(\"\");return b=\";\"==b.charAt(b.length-1)?b:b+\";\"}function S(a,b){N&amp;&amp;\"value\"==b&amp;&amp;R(a,\"OPTION\")&amp;&amp;null===Q(a,\"value\")?(b=[],P(a,b,!1),a=b.join(\"\")):a=a[b];return a}function R(a,b){b&amp;&amp;\"string\"!==typeof b&amp;&amp;(b=b.toString());return!!a&amp;&amp;1==a.nodeType&amp;&amp;(!b||a.tagName.toUpperCase()==b)}\nfunction T(a){return R(a,\"OPTION\")?!0:R(a,\"INPUT\")?(a=a.type.toLowerCase(),\"checkbox\"==a||\"radio\"==a):!1};var ja={\"class\":\"className\",readonly:\"readOnly\"},U=\"allowfullscreen allowpaymentrequest allowusermedia async autofocus autoplay checked compact complete controls declare default defaultchecked defaultselected defer disabled ended formnovalidate hidden indeterminate iscontenteditable ismap itemscope loop multiple muted nohref nomodule noresize noshade novalidate nowrap open paused playsinline pubdate readonly required reversed scoped seamless seeking selected truespeed typemustmatch willvalidate\".split(\" \");function V(a,b){var e=null,c=b.toLowerCase();if(\"style\"==c)return(e=a.style)&amp;&amp;!f(e)&amp;&amp;(e=e.cssText),e;if((\"selected\"==c||\"checked\"==c)&amp;&amp;T(a)){if(!T(a))throw new h(15,\"Element is not selectable\");b=\"selected\";e=a.type&amp;&amp;a.type.toLowerCase();if(\"checkbox\"==e||\"radio\"==e)b=\"checked\";return S(a,b)?\"true\":null}var g=R(a,\"A\");if(R(a,\"IMG\")&amp;&amp;\"src\"==c||g&amp;&amp;\"href\"==c)return(e=Q(a,c))&amp;&amp;(e=S(a,c)),e;if(\"spellcheck\"==c){e=Q(a,c);if(null!==e){if(\"false\"==e.toLowerCase())return\"false\";if(\"true\"==e.toLowerCase())return\"true\"}return S(a,\nc)+\"\"}g=ja[b]||b;a:if(f(U))c=f(c)&amp;&amp;1==c.length?U.indexOf(c,0):-1;else{for(var u=0;u&lt;U.length;u++)if(u in U&amp;&amp;U[u]===c){c=u;break a}c=-1}if(0&lt;=c)return(e=null!==Q(a,b)||S(a,g))?\"true\":null;try{var k=S(a,g)}catch(ka){}(c=null==k)||(c=typeof k,c=\"object\"==c&amp;&amp;null!=k||\"function\"==c);c?e=Q(a,b):e=k;return null!=e?e.toString():null}var W=[\"_\"],X=d;W[0]in X||!X.execScript||X.execScript(\"var \"+W[0]);\nfor(var Y;W.length&amp;&amp;(Y=W.shift());){var Z;if(Z=!W.length)Z=void 0!==V;Z?X[Y]=V:X[Y]&amp;&amp;X[Y]!==Object.prototype[Y]?X=X[Y]:X=X[Y]={}};; return this._.apply(null,arguments);}.apply({navigator:typeof window!='undefined'?window.navigator:null,document:typeof window!='undefined'?window.document:null}, arguments);}\n).apply(null, arguments);", "args": [{"ELEMENT": "1b1505dc-ec08-4111-a823-a68265aae316", "element-6066-11e4-a52e-4f735466cecf": "1b1505dc-ec08-4111-a823-a68265aae316"}, "readonly"]}</msg>
<msg timestamp="20210630 17:21:36.869" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/execute/sync HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:21:36.870" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:21:31.071" endtime="20210630 17:21:36.870"/>
</kw>
<kw name="Click Button" library="SeleniumLibrary">
<arg>${locator_vars}[我知道了]</arg>
<doc>Clicks the button identified by ``locator``.</doc>
<msg timestamp="20210630 17:21:36.870" level="INFO">Clicking button 'xpath=//button[text()="我知道了"]'.</msg>
<msg timestamp="20210630 17:21:36.871" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:36.875" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:21:36.875" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:36.875" level="DEBUG">GET http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/element/1b1505dc-ec08-4111-a823-a68265aae316/name {"id": "1b1505dc-ec08-4111-a823-a68265aae316"}</msg>
<msg timestamp="20210630 17:21:36.878" level="DEBUG">http://127.0.0.1:51294 "GET /session/f35c6d33cb28a0cc034ad22a70aeebbd/element/1b1505dc-ec08-4111-a823-a68265aae316/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 17:21:36.878" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:36.879" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:21:36.884" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:21:36.884" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:36.884" level="DEBUG">GET http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/element/1b1505dc-ec08-4111-a823-a68265aae316/name {"id": "1b1505dc-ec08-4111-a823-a68265aae316"}</msg>
<msg timestamp="20210630 17:21:36.888" level="DEBUG">http://127.0.0.1:51294 "GET /session/f35c6d33cb28a0cc034ad22a70aeebbd/element/1b1505dc-ec08-4111-a823-a68265aae316/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 17:21:36.888" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:36.888" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/element/1b1505dc-ec08-4111-a823-a68265aae316/click {"id": "1b1505dc-ec08-4111-a823-a68265aae316"}</msg>
<msg timestamp="20210630 17:21:36.944" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/element/1b1505dc-ec08-4111-a823-a68265aae316/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:21:36.944" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:21:36.870" endtime="20210630 17:21:36.944"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[智客]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:21:36.945" level="INFO">Clicking element 'xpath=//div[@data-title="智客"]'.</msg>
<msg timestamp="20210630 17:21:36.945" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//div[@data-title=\"\u667a\u5ba2\"]"}</msg>
<msg timestamp="20210630 17:21:36.953" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:21:36.953" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:36.953" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/element/cf241c2c-994a-47ce-9a32-bfe74115b413/click {"id": "cf241c2c-994a-47ce-9a32-bfe74115b413"}</msg>
<msg timestamp="20210630 17:21:37.030" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/element/cf241c2c-994a-47ce-9a32-bfe74115b413/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:21:37.030" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:21:36.944" endtime="20210630 17:21:37.031"/>
</kw>
<kw name="Switch Window" library="SeleniumLibrary">
<arg>NEW</arg>
<doc>Switches to browser window matching ``locator``.</doc>
<msg timestamp="20210630 17:21:37.032" level="DEBUG">GET http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/window {}</msg>
<msg timestamp="20210630 17:21:37.033" level="DEBUG">http://127.0.0.1:51294 "GET /session/f35c6d33cb28a0cc034ad22a70aeebbd/window HTTP/1.1" 200 53</msg>
<msg timestamp="20210630 17:21:37.034" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:37.034" level="DEBUG">GET http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/window/handles {}</msg>
<msg timestamp="20210630 17:21:37.036" level="DEBUG">http://127.0.0.1:51294 "GET /session/f35c6d33cb28a0cc034ad22a70aeebbd/window/handles HTTP/1.1" 200 99</msg>
<msg timestamp="20210630 17:21:37.037" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:37.037" level="DEBUG">GET http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/window {}</msg>
<msg timestamp="20210630 17:21:37.038" level="DEBUG">http://127.0.0.1:51294 "GET /session/f35c6d33cb28a0cc034ad22a70aeebbd/window HTTP/1.1" 200 53</msg>
<msg timestamp="20210630 17:21:37.038" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:37.038" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/window {"handle": "CDwindow-E82E7D639F095D3AF76C9EDAA0ABD7EC"}</msg>
<msg timestamp="20210630 17:21:37.052" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/window HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:21:37.052" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:21:37.031" endtime="20210630 17:21:37.052"/>
</kw>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>已有企业微信</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 17:21:37.053" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210630 17:21:38.032" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:38.032" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:38.245" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210630 17:21:38.273" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 1117</msg>
<msg timestamp="20210630 17:21:38.273" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:21:37.052" endtime="20210630 17:21:38.273"/>
</kw>
<status status="PASS" starttime="20210630 17:21:26.985" endtime="20210630 17:21:38.273"/>
</kw>
<status status="PASS" starttime="20210630 17:21:26.985" endtime="20210630 17:21:38.273"/>
</kw>
<test id="s1-t1" name="Tc1 Skill group add case">
<kw name="Run Keywords" library="BuiltIn" type="SETUP">
<arg>My Test Setup</arg>
<doc>Executes all the given keywords in a sequence.</doc>
<kw name="My Test Setup" library="callcenter_Skillsgroup_V6_setup_teardown">
<kw name="Click Link" library="SeleniumLibrary">
<arg>${locator_vars}[首页]</arg>
<doc>Clicks a link identified by ``locator``.</doc>
<msg timestamp="20210630 17:21:38.276" level="INFO">Clicking link 'xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a'.</msg>
<msg timestamp="20210630 17:21:38.276" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//*[@id=\"root\"]/div/div[2]/ul/li[2]/a"}</msg>
<msg timestamp="20210630 17:21:38.287" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:21:38.288" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:38.289" level="DEBUG">GET http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/element/93558256-70e7-4184-ac60-7dd078081c00/name {"id": "93558256-70e7-4184-ac60-7dd078081c00"}</msg>
<msg timestamp="20210630 17:21:38.295" level="DEBUG">http://127.0.0.1:51294 "GET /session/f35c6d33cb28a0cc034ad22a70aeebbd/element/93558256-70e7-4184-ac60-7dd078081c00/name HTTP/1.1" 200 13</msg>
<msg timestamp="20210630 17:21:38.295" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:38.295" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/element/93558256-70e7-4184-ac60-7dd078081c00/click {"id": "93558256-70e7-4184-ac60-7dd078081c00"}</msg>
<msg timestamp="20210630 17:21:38.746" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/element/93558256-70e7-4184-ac60-7dd078081c00/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:21:38.746" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:21:38.275" endtime="20210630 17:21:38.746"/>
</kw>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>首页</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 17:21:38.748" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//*[contains(., '\u9996\u9875')]"}</msg>
<msg timestamp="20210630 17:21:38.761" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 801</msg>
<msg timestamp="20210630 17:21:38.761" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:21:38.747" endtime="20210630 17:21:38.761"/>
</kw>
<kw name="Sleep" library="BuiltIn">
<arg>2</arg>
<doc>Pauses the test executed for the given time.</doc>
<msg timestamp="20210630 17:21:40.764" level="INFO">Slept 2 seconds</msg>
<status status="PASS" starttime="20210630 17:21:38.762" endtime="20210630 17:21:40.764"/>
</kw>
<status status="PASS" starttime="20210630 17:21:38.275" endtime="20210630 17:21:40.764"/>
</kw>
<status status="PASS" starttime="20210630 17:21:38.275" endtime="20210630 17:21:40.764"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>---------- Tc1 step 1: 进入V6呼叫中心erererrer ------------</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:21:40.766" level="INFO">---------- Tc1 step 1: 进入V6呼叫中心erererrer ------------</msg>
<status status="PASS" starttime="20210630 17:21:40.766" endtime="20210630 17:21:40.766"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-新呼叫中心]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:21:40.768" level="INFO">Clicking element 'xpath=//*[@id="root"]/div/div[3]/div/div/div/div[2]/div/div[9]/a'.</msg>
<msg timestamp="20210630 17:21:40.768" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//*[@id=\"root\"]/div/div[3]/div/div/div/div[2]/div/div[9]/a"}</msg>
<msg timestamp="20210630 17:21:40.775" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:21:40.775" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:40.776" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/element/76d6e548-a513-425c-a6e7-9be94617c12a/click {"id": "76d6e548-a513-425c-a6e7-9be94617c12a"}</msg>
<msg timestamp="20210630 17:21:42.285" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/element/76d6e548-a513-425c-a6e7-9be94617c12a/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:21:42.286" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:21:40.768" endtime="20210630 17:21:42.286"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>---------- Tc1 step 2: 进入呼叫中心 &gt; 技能组 ------------</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:21:42.287" level="INFO">---------- Tc1 step 2: 进入呼叫中心 &gt; 技能组 ------------</msg>
<status status="PASS" starttime="20210630 17:21:42.287" endtime="20210630 17:21:42.287"/>
</kw>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>技能组</arg>
<arg>${sleep_60}</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 17:21:42.288" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//*[contains(., '\u6280\u80fd\u7ec4')]"}</msg>
<msg timestamp="20210630 17:21:42.304" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:21:42.304" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:42.509" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//*[contains(., '\u6280\u80fd\u7ec4')]"}</msg>
<msg timestamp="20210630 17:21:42.516" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 1354</msg>
<msg timestamp="20210630 17:21:42.516" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:21:42.288" endtime="20210630 17:21:42.516"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-呼叫技能组]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:21:42.517" level="INFO">Clicking element 'xpath=//*[@id="0-0$Menu"]/li[3]/a[text()=("呼叫技能组")]'.</msg>
<msg timestamp="20210630 17:21:42.517" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//*[@id=\"0-0$Menu\"]/li[3]/a[text()=(\"\u547c\u53eb\u6280\u80fd\u7ec4\")]"}</msg>
<msg timestamp="20210630 17:21:42.527" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:21:42.527" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:42.527" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/element/0587d7ef-2e62-45bb-bab1-03318f8eaefc/click {"id": "0587d7ef-2e62-45bb-bab1-03318f8eaefc"}</msg>
<msg timestamp="20210630 17:21:42.677" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/element/0587d7ef-2e62-45bb-bab1-03318f8eaefc/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:21:42.678" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:21:42.517" endtime="20210630 17:21:42.678"/>
</kw>
<kw name="Sleep" library="BuiltIn">
<arg>${sleep_3}</arg>
<doc>Pauses the test executed for the given time.</doc>
<msg timestamp="20210630 17:21:45.683" level="INFO">Slept 3 seconds</msg>
<status status="PASS" starttime="20210630 17:21:42.679" endtime="20210630 17:21:45.683"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>--------------- Tc1 step 3: 新增技能组(重复组号/重复名字) -------------------------------</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:21:45.685" level="INFO">--------------- Tc1 step 3: 新增技能组(重复组号/重复名字) -------------------------------</msg>
<status status="PASS" starttime="20210630 17:21:45.684" endtime="20210630 17:21:45.685"/>
</kw>
<kw name="Set Variable" library="BuiltIn">
<var>${groupName}</var>
<arg>发生的</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<msg timestamp="20210630 17:21:45.685" level="INFO">${groupName} = 发生的</msg>
<status status="PASS" starttime="20210630 17:21:45.685" endtime="20210630 17:21:45.685"/>
</kw>
<kw name="Set Variable" library="BuiltIn">
<var>${groupNumber}</var>
<arg>6667</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<msg timestamp="20210630 17:21:45.686" level="INFO">${groupNumber} = 6667</msg>
<status status="PASS" starttime="20210630 17:21:45.686" endtime="20210630 17:21:45.686"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>新增</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:21:45.687" level="INFO">新增</msg>
<status status="PASS" starttime="20210630 17:21:45.687" endtime="20210630 17:21:45.687"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-新增]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:21:45.687" level="INFO">Clicking element 'xpath=//*[@id="searchRight"]/button/span[text()="新建"]'.</msg>
<msg timestamp="20210630 17:21:45.688" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//*[@id=\"searchRight\"]/button/span[text()=\"\u65b0\u5efa\"]"}</msg>
<msg timestamp="20210630 17:21:45.696" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:21:45.696" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:45.696" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/element/3663f593-d40c-4378-a7ed-c5fc281f458e/click {"id": "3663f593-d40c-4378-a7ed-c5fc281f458e"}</msg>
<msg timestamp="20210630 17:21:45.764" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/element/3663f593-d40c-4378-a7ed-c5fc281f458e/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:21:45.764" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:21:45.687" endtime="20210630 17:21:45.764"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-名称文本]</arg>
<arg>${groupName}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210630 17:21:45.765" level="INFO">Typing text '发生的' into text field 'xpath=//*[@id="queueName"]'.</msg>
<msg timestamp="20210630 17:21:45.765" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//*[@id=\"queueName\"]"}</msg>
<msg timestamp="20210630 17:21:45.779" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:21:45.779" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:45.779" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/element/698b42c5-5c72-491d-b7ef-c715b7e12a74/clear {"id": "698b42c5-5c72-491d-b7ef-c715b7e12a74"}</msg>
<msg timestamp="20210630 17:21:45.815" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/element/698b42c5-5c72-491d-b7ef-c715b7e12a74/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:21:45.815" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:45.815" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/element/698b42c5-5c72-491d-b7ef-c715b7e12a74/value {"text": "\u53d1\u751f\u7684", "value": ["\u53d1", "\u751f", "\u7684"], "id": "698b42c5-5c72-491d-b7ef-c715b7e12a74"}</msg>
<msg timestamp="20210630 17:21:45.867" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/element/698b42c5-5c72-491d-b7ef-c715b7e12a74/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:21:45.868" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:21:45.765" endtime="20210630 17:21:45.868"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-组号]</arg>
<arg>${groupNumber}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210630 17:21:45.869" level="INFO">Typing text '6667' into text field 'xpath=//*[@id="queueID"]'.</msg>
<msg timestamp="20210630 17:21:45.869" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "//*[@id=\"queueID\"]"}</msg>
<msg timestamp="20210630 17:21:45.877" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:21:45.877" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:45.877" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/element/defba799-3a02-4ddd-9854-2a7e79439721/clear {"id": "defba799-3a02-4ddd-9854-2a7e79439721"}</msg>
<msg timestamp="20210630 17:21:45.901" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/element/defba799-3a02-4ddd-9854-2a7e79439721/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:21:45.901" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:45.901" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/element/defba799-3a02-4ddd-9854-2a7e79439721/value {"text": "6667", "value": ["6", "6", "6", "7"], "id": "defba799-3a02-4ddd-9854-2a7e79439721"}</msg>
<msg timestamp="20210630 17:21:45.956" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/element/defba799-3a02-4ddd-9854-2a7e79439721/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:21:45.956" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:21:45.869" endtime="20210630 17:21:45.956"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-弹板-新建]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:21:45.957" level="INFO">Clicking element 'xpath=/html/body//button/span[text()="新 建"]'.</msg>
<msg timestamp="20210630 17:21:45.957" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/elements {"using": "xpath", "value": "/html/body//button/span[text()=\"\u65b0 \u5efa\"]"}</msg>
<msg timestamp="20210630 17:21:45.965" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:21:45.965" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:21:45.965" level="DEBUG">POST http://127.0.0.1:51294/session/f35c6d33cb28a0cc034ad22a70aeebbd/element/24f63fe1-5484-4aff-a353-2b607a52e235/click {"id": "24f63fe1-5484-4aff-a353-2b607a52e235"}</msg>
<msg timestamp="20210630 17:21:46.003" level="DEBUG">http://127.0.0.1:51294 "POST /session/f35c6d33cb28a0cc034ad22a70aeebbd/element/24f63fe1-5484-4aff-a353-2b607a52e235/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:21:46.003" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:21:45.956" endtime="20210630 17:21:46.003"/>
</kw>
<kw name="sleep 2">
<msg timestamp="20210630 17:21:46.008" level="FAIL">No keyword with name 'sleep 2' found. Did you mean:
BuiltIn.Sleep</msg>
<status status="FAIL" starttime="20210630 17:21:46.008" endtime="20210630 17:21:46.008"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-创建返回列表]</arg>
<doc>Click the element identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 17:21:46.008" endtime="20210630 17:21:46.009"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>--------校验是否添加成功---------</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" starttime="20210630 17:21:46.009" endtime="20210630 17:21:46.009"/>
</kw>
<kw name="Get Table Data For Column" library="public_robot_keywords">
<var>${listDataNumber}</var>
<arg>tbody_locator=${locator_vars}[V6-技能组tbody]</arg>
<arg>column=2</arg>
<arg>right_arrow_locator=${locator_vars}[V6-技能组-下一页]</arg>
<arg>the_first_page_locator=${locator_vars}[V6-技能组-第一页切换]</arg>
<doc>取得table列数据</doc>
<status status="NOT RUN" starttime="20210630 17:21:46.009" endtime="20210630 17:21:46.009"/>
</kw>
<kw name="Check Items Match Or Not In List" library="public_robot_keywords">
<arg>all_data=${listDataNumber}</arg>
<arg>check_items=${groupNumber}</arg>
<doc>在list里检查items数据是否精确匹配</doc>
<status status="NOT RUN" starttime="20210630 17:21:46.009" endtime="20210630 17:21:46.009"/>
</kw>
<doc>- 进入呼叫中心
- 进入呼叫中心</doc>
<tag>1</tag>
<tag>Sanity</tag>
<tag>呼叫中心</tag>
<status status="FAIL" starttime="20210630 17:21:38.273" endtime="20210630 17:21:46.010">No keyword with name 'sleep 2' found. Did you mean:
BuiltIn.Sleep</status>
</test>
<doc>callcenter_Relaynumber_V6_full1.robot
author: jiawei</doc>
<status status="FAIL" starttime="20210630 17:21:26.603" endtime="20210630 17:21:46.011"/>
</suite>
<statistics>
<total>
<stat pass="0" fail="1" skip="0">All Tests</stat>
</total>
<tag>
<stat pass="0" fail="1" skip="0">1</stat>
<stat pass="0" fail="1" skip="0">Sanity</stat>
<stat pass="0" fail="1" skip="0">呼叫中心</stat>
</tag>
<suite>
<stat pass="0" fail="1" skip="0" id="s1" name="callcenter Skillsgroup V6 full1">callcenter Skillsgroup V6 full1</stat>
</suite>
</statistics>
<errors>
<msg timestamp="20210630 17:21:26.927" level="WARN">Imported library 'D:\word\自动化\script_template\keyword\callcenter_V6_python_keywords.py' contains no keywords.</msg>
</errors>
</robot>
<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 4.0.3 (Python 3.8.8 on win32)" generated="20210630 17:22:37.247" rpa="false" schemaversion="2">
<suite id="s1" name="callcenter Skillsgroup V6 full1" source="D:\word\自动化\script_template\callcenter_Skillsgroup_V6_full1.robot">
<kw name="Run Keywords" library="BuiltIn" type="SETUP">
<arg>My Suite Setup</arg>
<doc>Executes all the given keywords in a sequence.</doc>
<kw name="My Suite Setup" library="callcenter_Skillsgroup_V6_setup_teardown">
<kw name="Log" library="BuiltIn">
<arg>========================== My Suite Setup Start ==========================</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:22:37.570" level="INFO">========================== My Suite Setup Start ==========================</msg>
<status status="PASS" starttime="20210630 17:22:37.570" endtime="20210630 17:22:37.571"/>
</kw>
<kw name="Fetch Json Vars" library="public_python_keywords">
<var>&amp;{gbl_vars}</var>
<arg>file=D:\\word\\自动化\\script_template\\json_file\\call_center_vars.json</arg>
<msg timestamp="20210630 17:22:37.571" level="INFO">&amp;{gbl_vars} = { log_level=DEBUG | url=http://test.sobot.com/console/login | browser=gc | email=mjmj@zhichi.com | password=sobot1234 | w_size_hor_pixels=1920 | w_size_ver_pixels=1080 | time={'hour': 11, 'minute': '2...</msg>
<status status="PASS" starttime="20210630 17:22:37.571" endtime="20210630 17:22:37.571"/>
</kw>
<kw name="Set Global Variable" library="BuiltIn">
<arg>${gbl_vars}</arg>
<doc>Makes a variable available globally in all tests and suites.</doc>
<msg timestamp="20210630 17:22:37.572" level="INFO">${gbl_vars} = {'log_level': 'DEBUG', 'url': 'http://test.sobot.com/console/login', 'browser': 'gc', 'email': 'mjmj@zhichi.com', 'password': 'sobot1234', 'w_size_hor_pixels': 1920, 'w_size_ver_pixels': 1080, 'time':...</msg>
<status status="PASS" starttime="20210630 17:22:37.572" endtime="20210630 17:22:37.572"/>
</kw>
<kw name="Fetch Json Vars" library="public_python_keywords">
<var>&amp;{locator_vars}</var>
<arg>file=D:\\word\\自动化\\script_template\\json_file\\call_center_locator_vars.json</arg>
<msg timestamp="20210630 17:22:37.572" level="INFO">&amp;{locator_vars} = { 我知道了=xpath=//button[text()="我知道了"] | 智客=xpath=//div[@data-title="智客"] | 首页=xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a | 呼叫中心=x、】path=//*[@id="root"]/div/div[2]/ul/li[3]/a | 企微智客=xpath=//*[@id="root...</msg>
<status status="PASS" starttime="20210630 17:22:37.572" endtime="20210630 17:22:37.573"/>
</kw>
<kw name="Set Global Variable" library="BuiltIn">
<arg>${locator_vars}</arg>
<doc>Makes a variable available globally in all tests and suites.</doc>
<msg timestamp="20210630 17:22:37.573" level="INFO">${locator_vars} = {'我知道了': 'xpath=//button[text()="我知道了"]', '智客': 'xpath=//div[@data-title="智客"]', '首页': 'xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a', '呼叫中心': 'x、】path=//*[@id="root"]/div/div[2]/ul/li[3]/a', '企微智客': '...</msg>
<status status="PASS" starttime="20210630 17:22:37.573" endtime="20210630 17:22:37.573"/>
</kw>
<kw name="Set Log Level" library="BuiltIn">
<arg>${gbl_vars}[log_level]</arg>
<doc>Sets the log threshold to the specified level and returns the old level.</doc>
<msg timestamp="20210630 17:22:37.573" level="INFO">Log level changed from INFO to DEBUG.</msg>
<status status="PASS" starttime="20210630 17:22:37.573" endtime="20210630 17:22:37.573"/>
</kw>
<kw name="Close All Browsers" library="SeleniumLibrary">
<doc>Closes all open browsers and resets the browser cache.</doc>
<msg timestamp="20210630 17:22:37.574" level="DEBUG">Closing all browsers.</msg>
<status status="PASS" starttime="20210630 17:22:37.573" endtime="20210630 17:22:37.574"/>
</kw>
<kw name="Open Browser And Set Size" library="public_robot_keywords">
<arg>url=${gbl_vars}[url]</arg>
<arg>set_window_size=${True}</arg>
<arg>set_max_browser_window=${True}</arg>
<doc>打开指定类型的浏览器,并设置窗口大小</doc>
<kw name="Open Browser" library="SeleniumLibrary">
<arg>${url}</arg>
<arg>${browser}</arg>
<doc>Opens a new browser instance to the optional ``url``.</doc>
<msg timestamp="20210630 17:22:37.575" level="INFO">Opening browser 'gc' to base url 'http://test.sobot.com/console/login'.</msg>
<msg timestamp="20210630 17:22:38.116" level="DEBUG">POST http://127.0.0.1:56011/session {"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "platformName": "any", "goog:chromeOptions": {"extensions": [], "args": []}}}, "desiredCapabilities": {"browserName": "chrome", "version": "", "platform": "ANY", "goog:chromeOptions": {"extensions": [], "args": []}}}</msg>
<msg timestamp="20210630 17:22:38.116" level="DEBUG">Starting new HTTP connection (1): 127.0.0.1:56011</msg>
<msg timestamp="20210630 17:22:38.973" level="DEBUG">http://127.0.0.1:56011 "POST /session HTTP/1.1" 200 753</msg>
<msg timestamp="20210630 17:22:38.974" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:38.975" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/timeouts {"script": 5000}</msg>
<msg timestamp="20210630 17:22:38.978" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/timeouts HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:22:38.979" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:38.979" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/timeouts {"implicit": 0}</msg>
<msg timestamp="20210630 17:22:38.982" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/timeouts HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:22:38.983" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:38.984" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/url {"url": "http://test.sobot.com/console/login"}</msg>
<msg timestamp="20210630 17:22:41.632" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/url HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:22:41.632" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:41.632" level="DEBUG">Opened browser with session id f2913381763a1e8f8c4473e58b0663b5.</msg>
<status status="PASS" starttime="20210630 17:22:37.575" endtime="20210630 17:22:41.632"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${set_window_size}</arg>
<arg>Set Window Size</arg>
<arg>${hor_pixels}</arg>
<arg>${ver_pixels}</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Set Window Size" library="SeleniumLibrary">
<arg>${hor_pixels}</arg>
<arg>${ver_pixels}</arg>
<doc>Sets current windows size to given ``width`` and ``height``.</doc>
<msg timestamp="20210630 17:22:41.633" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/window/rect {"x": null, "y": null, "width": 1920, "height": 1080}</msg>
<msg timestamp="20210630 17:22:41.853" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/window/rect HTTP/1.1" 200 51</msg>
<msg timestamp="20210630 17:22:41.853" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:22:41.633" endtime="20210630 17:22:41.853"/>
</kw>
<status status="PASS" starttime="20210630 17:22:41.632" endtime="20210630 17:22:41.853"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${set_max_browser_window}</arg>
<arg>Maximize Browser Window</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Maximize Browser Window" library="SeleniumLibrary">
<doc>Maximizes current browser window.</doc>
<msg timestamp="20210630 17:22:41.854" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/window/maximize {}</msg>
<msg timestamp="20210630 17:22:41.984" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/window/maximize HTTP/1.1" 200 51</msg>
<msg timestamp="20210630 17:22:41.985" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:22:41.854" endtime="20210630 17:22:41.985"/>
</kw>
<status status="PASS" starttime="20210630 17:22:41.854" endtime="20210630 17:22:41.985"/>
</kw>
<status status="PASS" starttime="20210630 17:22:37.574" endtime="20210630 17:22:41.985"/>
</kw>
<kw name="Logon Soboten" library="public_robot_keywords">
<arg>logon_type=0</arg>
<arg>email=${gbl_vars}[email]</arg>
<arg>password=${gbl_vars}[password]</arg>
<doc>根据参数logon_type值,登录相应的智齿系统</doc>
<kw name="Run Keyword If" library="BuiltIn">
<arg>'@' not in "${email}" or '.' not in "${email}"</arg>
<arg>Fail</arg>
<arg>email format is wrong, please double check!</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210630 17:22:41.986" endtime="20210630 17:22:41.988"/>
</kw>
<kw name="Get Length" library="BuiltIn">
<var>${password_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<msg timestamp="20210630 17:22:41.989" level="INFO">Length is 9</msg>
<msg timestamp="20210630 17:22:41.992" level="INFO">${password_length} = 9</msg>
<status status="PASS" starttime="20210630 17:22:41.988" endtime="20210630 17:22:41.992"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${password_length} &lt; 8</arg>
<arg>Fail</arg>
<arg>Password is less than 8 digits</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210630 17:22:41.992" endtime="20210630 17:22:41.992"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${logon_type}&gt;0</arg>
<arg>Click Element</arg>
<arg>xpath=//div[text()="登录"]</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210630 17:22:41.992" endtime="20210630 17:22:41.992"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${logon_type}==0</arg>
<arg>Logon Test Environment</arg>
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<arg>ELSE IF</arg>
<arg>${logon_type}==1</arg>
<arg>Logon Cloud Customer Service</arg>
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<arg>ELSE IF</arg>
<arg>${logon_type}==2</arg>
<arg>Logon Cloud Outgoing Call</arg>
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Logon Test Environment" library="public_robot_keywords">
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<doc>登录智齿测试系统</doc>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>登录智齿客服,开启智慧客服新篇章</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 17:22:41.994" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//*[contains(., '\u767b\u5f55\u667a\u9f7f\u5ba2\u670d\uff0c\u5f00\u542f\u667a\u6167\u5ba2\u670d\u65b0\u7bc7\u7ae0')]"}</msg>
<msg timestamp="20210630 17:22:42.005" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 722</msg>
<msg timestamp="20210630 17:22:42.005" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:22:41.994" endtime="20210630 17:22:42.005"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>id=userEmail</arg>
<arg>${email}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210630 17:22:42.006" level="INFO">Typing text 'mjmj@zhichi.com' into text field 'id=userEmail'.</msg>
<msg timestamp="20210630 17:22:42.006" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "css selector", "value": "[id=\"userEmail\"]"}</msg>
<msg timestamp="20210630 17:22:42.012" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:22:42.012" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:42.012" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/element/af6f17ac-655f-4a51-ae0a-956b59026d3e/clear {"id": "af6f17ac-655f-4a51-ae0a-956b59026d3e"}</msg>
<msg timestamp="20210630 17:22:42.035" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/element/af6f17ac-655f-4a51-ae0a-956b59026d3e/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:22:42.036" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:42.036" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/element/af6f17ac-655f-4a51-ae0a-956b59026d3e/value {"text": "mjmj@zhichi.com", "value": ["m", "j", "m", "j", "@", "z", "h", "i", "c", "h", "i", ".", "c", "o", "m"], "id": "af6f17ac-655f-4a51-ae0a-956b59026d3e"}</msg>
<msg timestamp="20210630 17:22:42.102" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/element/af6f17ac-655f-4a51-ae0a-956b59026d3e/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:22:42.102" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:22:42.005" endtime="20210630 17:22:42.102"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>id=userPassword</arg>
<arg>${password}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210630 17:22:42.103" level="INFO">Typing text 'sobot1234' into text field 'id=userPassword'.</msg>
<msg timestamp="20210630 17:22:42.103" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "css selector", "value": "[id=\"userPassword\"]"}</msg>
<msg timestamp="20210630 17:22:42.110" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:22:42.110" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:42.110" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/element/04917e6d-dd0c-4f54-8486-2a03ebbb168e/clear {"id": "04917e6d-dd0c-4f54-8486-2a03ebbb168e"}</msg>
<msg timestamp="20210630 17:22:42.134" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/element/04917e6d-dd0c-4f54-8486-2a03ebbb168e/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:22:42.134" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:42.134" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/element/04917e6d-dd0c-4f54-8486-2a03ebbb168e/value {"text": "sobot1234", "value": ["s", "o", "b", "o", "t", "1", "2", "3", "4"], "id": "04917e6d-dd0c-4f54-8486-2a03ebbb168e"}</msg>
<msg timestamp="20210630 17:22:42.197" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/element/04917e6d-dd0c-4f54-8486-2a03ebbb168e/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:22:42.197" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:22:42.102" endtime="20210630 17:22:42.197"/>
</kw>
<kw name="Click Button" library="SeleniumLibrary">
<arg>xpath=//button[text()="登 录"]</arg>
<doc>Clicks the button identified by ``locator``.</doc>
<msg timestamp="20210630 17:22:42.198" level="INFO">Clicking button 'xpath=//button[text()="登 录"]'.</msg>
<msg timestamp="20210630 17:22:42.199" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u767b \u5f55\"]"}</msg>
<msg timestamp="20210630 17:22:42.209" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:22:42.210" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:42.210" level="DEBUG">GET http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/element/8db7ac84-dde6-4471-8549-0a5e29ff0f92/name {"id": "8db7ac84-dde6-4471-8549-0a5e29ff0f92"}</msg>
<msg timestamp="20210630 17:22:42.212" level="DEBUG">http://127.0.0.1:56011 "GET /session/f2913381763a1e8f8c4473e58b0663b5/element/8db7ac84-dde6-4471-8549-0a5e29ff0f92/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 17:22:42.212" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:42.213" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u767b \u5f55\"]"}</msg>
<msg timestamp="20210630 17:22:42.219" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:22:42.219" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:42.219" level="DEBUG">GET http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/element/8db7ac84-dde6-4471-8549-0a5e29ff0f92/name {"id": "8db7ac84-dde6-4471-8549-0a5e29ff0f92"}</msg>
<msg timestamp="20210630 17:22:42.221" level="DEBUG">http://127.0.0.1:56011 "GET /session/f2913381763a1e8f8c4473e58b0663b5/element/8db7ac84-dde6-4471-8549-0a5e29ff0f92/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 17:22:42.222" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:42.222" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/element/8db7ac84-dde6-4471-8549-0a5e29ff0f92/click {"id": "8db7ac84-dde6-4471-8549-0a5e29ff0f92"}</msg>
<msg timestamp="20210630 17:22:42.269" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/element/8db7ac84-dde6-4471-8549-0a5e29ff0f92/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:22:42.269" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:22:42.198" endtime="20210630 17:22:42.269"/>
</kw>
<status status="PASS" starttime="20210630 17:22:41.993" endtime="20210630 17:22:42.269"/>
</kw>
<status status="PASS" starttime="20210630 17:22:41.993" endtime="20210630 17:22:42.269"/>
</kw>
<status status="PASS" starttime="20210630 17:22:41.985" endtime="20210630 17:22:42.270"/>
</kw>
<kw name="Wait Until Element Is Enabled" library="SeleniumLibrary">
<arg>${locator_vars}[我知道了]</arg>
<arg>60s</arg>
<doc>Waits until the element ``locator`` is enabled.</doc>
<msg timestamp="20210630 17:22:42.270" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:42.285" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:42.285" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:42.491" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:42.506" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:42.506" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:42.719" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:42.726" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:42.726" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:42.930" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:42.940" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:42.940" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:43.146" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:43.254" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:43.255" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:43.460" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:43.769" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:43.770" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:43.975" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:43.980" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:43.980" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:44.191" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:44.197" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:44.197" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:44.403" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:44.413" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:44.413" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:44.617" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:44.622" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:44.623" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:44.831" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:44.835" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:44.835" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:45.046" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:45.051" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:45.051" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:45.263" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:45.288" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:45.289" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:45.492" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:45.496" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:45.496" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:45.709" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:45.715" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:45.715" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:45.927" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:45.931" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:45.931" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:46.141" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:46.145" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:46.145" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:46.357" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:46.363" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:46.363" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:46.573" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:46.578" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:46.578" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:46.789" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:46.795" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:46.795" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:47.006" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:47.012" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:47.012" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:47.224" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:47.228" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:47.228" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:47.440" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:47.446" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:22:47.446" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:47.446" level="DEBUG">GET http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/element/32421484-5312-4417-b079-29cdbbdd3382/enabled {"id": "32421484-5312-4417-b079-29cdbbdd3382"}</msg>
<msg timestamp="20210630 17:22:47.451" level="DEBUG">http://127.0.0.1:56011 "GET /session/f2913381763a1e8f8c4473e58b0663b5/element/32421484-5312-4417-b079-29cdbbdd3382/enabled HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:22:47.451" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:47.451" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/execute/sync {"script": "return (function(){return function(){var d=this;function f(a){return\"string\"==typeof a};function h(a,b){this.code=a;this.a=l[a]||m;this.message=b||\"\";a=this.a.replace(/((?:^|\\s+)[a-z])/g,function(a){return a.toUpperCase().replace(/^[\\s\\xa0]+/g,\"\")});b=a.length-5;if(0&gt;b||a.indexOf(\"Error\",b)!=b)a+=\"Error\";this.name=a;a=Error(this.message);a.name=this.name;this.stack=a.stack||\"\"}\n(function(){var a=Error;function b(){}b.prototype=a.prototype;h.b=a.prototype;h.prototype=new b;h.prototype.constructor=h;h.a=function(b,c,g){for(var e=Array(arguments.length-2),k=2;k&lt;arguments.length;k++)e[k-2]=arguments[k];return a.prototype[c].apply(b,e)}})();var m=\"unknown error\",l={15:\"element not selectable\",11:\"element not visible\"};l[31]=m;l[30]=m;l[24]=\"invalid cookie domain\";l[29]=\"invalid element coordinates\";l[12]=\"invalid element state\";l[32]=\"invalid selector\";l[51]=\"invalid selector\";\nl[52]=\"invalid selector\";l[17]=\"javascript error\";l[405]=\"unsupported operation\";l[34]=\"move target out of bounds\";l[27]=\"no such alert\";l[7]=\"no such element\";l[8]=\"no such frame\";l[23]=\"no such window\";l[28]=\"script timeout\";l[33]=\"session not created\";l[10]=\"stale element reference\";l[21]=\"timeout\";l[25]=\"unable to set cookie\";l[26]=\"unexpected alert open\";l[13]=m;l[9]=\"unknown command\";h.prototype.toString=function(){return this.name+\": \"+this.message};var n;a:{var p=d.navigator;if(p){var q=p.userAgent;if(q){n=q;break a}}n=\"\"}function r(a){return-1!=n.indexOf(a)};function t(a,b){for(var e=a.length,c=f(a)?a.split(\"\"):a,g=0;g&lt;e;g++)g in c&amp;&amp;b.call(void 0,c[g],g,a)};function v(){return r(\"iPhone\")&amp;&amp;!r(\"iPod\")&amp;&amp;!r(\"iPad\")};function w(){return(r(\"Chrome\")||r(\"CriOS\"))&amp;&amp;!r(\"Edge\")};var x=r(\"Opera\"),y=r(\"Trident\")||r(\"MSIE\"),z=r(\"Edge\"),A=r(\"Gecko\")&amp;&amp;!(-1!=n.toLowerCase().indexOf(\"webkit\")&amp;&amp;!r(\"Edge\"))&amp;&amp;!(r(\"Trident\")||r(\"MSIE\"))&amp;&amp;!r(\"Edge\"),aa=-1!=n.toLowerCase().indexOf(\"webkit\")&amp;&amp;!r(\"Edge\");function B(){var a=d.document;return a?a.documentMode:void 0}var C;\na:{var D=\"\",E=function(){var a=n;if(A)return/rv\\:([^\\);]+)(\\)|;)/.exec(a);if(z)return/Edge\\/([\\d\\.]+)/.exec(a);if(y)return/\\b(?:MSIE|rv)[: ]([^\\);]+)(\\)|;)/.exec(a);if(aa)return/WebKit\\/(\\S+)/.exec(a);if(x)return/(?:Version)[ \\/]?(\\S+)/.exec(a)}();E&amp;&amp;(D=E?E[1]:\"\");if(y){var F=B();if(null!=F&amp;&amp;F&gt;parseFloat(D)){C=String(F);break a}}C=D}var G;var H=d.document;G=H&amp;&amp;y?B()||(\"CSS1Compat\"==H.compatMode?parseInt(C,10):5):void 0;var ba=r(\"Firefox\"),ca=v()||r(\"iPod\"),da=r(\"iPad\"),I=r(\"Android\")&amp;&amp;!(w()||r(\"Firefox\")||r(\"Opera\")||r(\"Silk\")),ea=w(),J=r(\"Safari\")&amp;&amp;!(w()||r(\"Coast\")||r(\"Opera\")||r(\"Edge\")||r(\"Silk\")||r(\"Android\"))&amp;&amp;!(v()||r(\"iPad\")||r(\"iPod\"));function K(a){return(a=a.exec(n))?a[1]:\"\"}(function(){if(ba)return K(/Firefox\\/([0-9.]+)/);if(y||z||x)return C;if(ea)return v()||r(\"iPad\")||r(\"iPod\")?K(/CriOS\\/([0-9.]+)/):K(/Chrome\\/([0-9.]+)/);if(J&amp;&amp;!(v()||r(\"iPad\")||r(\"iPod\")))return K(/Version\\/([0-9.]+)/);if(ca||da){var a=/Version\\/(\\S+).*Mobile\\/(\\S+)/.exec(n);if(a)return a[1]+\".\"+a[2]}else if(I)return(a=K(/Android\\s+([0-9.]+)/))?a:K(/Version\\/([0-9.]+)/);return\"\"})();var L,M=function(){if(!A)return!1;var a=d.Components;if(!a)return!1;try{if(!a.classes)return!1}catch(g){return!1}var b=a.classes,a=a.interfaces,e=b[\"@mozilla.org/xpcom/version-comparator;1\"].getService(a.nsIVersionComparator),c=b[\"@mozilla.org/xre/app-info;1\"].getService(a.nsIXULAppInfo).version;L=function(a){e.compare(c,\"\"+a)};return!0}(),N=y&amp;&amp;!(8&lt;=Number(G)),fa=y&amp;&amp;!(9&lt;=Number(G));I&amp;&amp;M&amp;&amp;L(2.3);I&amp;&amp;M&amp;&amp;L(4);J&amp;&amp;M&amp;&amp;L(6);var ga={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1},O={IMG:\" \",BR:\"\\n\"};function P(a,b,e){if(!(a.nodeName in ga))if(3==a.nodeType)e?b.push(String(a.nodeValue).replace(/(\\r\\n|\\r|\\n)/g,\"\")):b.push(a.nodeValue);else if(a.nodeName in O)b.push(O[a.nodeName]);else for(a=a.firstChild;a;)P(a,b,e),a=a.nextSibling};function Q(a,b){b=b.toLowerCase();return\"style\"==b?ha(a.style.cssText):N&amp;&amp;\"value\"==b&amp;&amp;R(a,\"INPUT\")?a.value:fa&amp;&amp;!0===a[b]?String(a.getAttribute(b)):(a=a.getAttributeNode(b))&amp;&amp;a.specified?a.value:null}var ia=/[;]+(?=(?:(?:[^\"]*\"){2})*[^\"]*$)(?=(?:(?:[^']*'){2})*[^']*$)(?=(?:[^()]*\\([^()]*\\))*[^()]*$)/;\nfunction ha(a){var b=[];t(a.split(ia),function(a){var c=a.indexOf(\":\");0&lt;c&amp;&amp;(a=[a.slice(0,c),a.slice(c+1)],2==a.length&amp;&amp;b.push(a[0].toLowerCase(),\":\",a[1],\";\"))});b=b.join(\"\");return b=\";\"==b.charAt(b.length-1)?b:b+\";\"}function S(a,b){N&amp;&amp;\"value\"==b&amp;&amp;R(a,\"OPTION\")&amp;&amp;null===Q(a,\"value\")?(b=[],P(a,b,!1),a=b.join(\"\")):a=a[b];return a}function R(a,b){b&amp;&amp;\"string\"!==typeof b&amp;&amp;(b=b.toString());return!!a&amp;&amp;1==a.nodeType&amp;&amp;(!b||a.tagName.toUpperCase()==b)}\nfunction T(a){return R(a,\"OPTION\")?!0:R(a,\"INPUT\")?(a=a.type.toLowerCase(),\"checkbox\"==a||\"radio\"==a):!1};var ja={\"class\":\"className\",readonly:\"readOnly\"},U=\"allowfullscreen allowpaymentrequest allowusermedia async autofocus autoplay checked compact complete controls declare default defaultchecked defaultselected defer disabled ended formnovalidate hidden indeterminate iscontenteditable ismap itemscope loop multiple muted nohref nomodule noresize noshade novalidate nowrap open paused playsinline pubdate readonly required reversed scoped seamless seeking selected truespeed typemustmatch willvalidate\".split(\" \");function V(a,b){var e=null,c=b.toLowerCase();if(\"style\"==c)return(e=a.style)&amp;&amp;!f(e)&amp;&amp;(e=e.cssText),e;if((\"selected\"==c||\"checked\"==c)&amp;&amp;T(a)){if(!T(a))throw new h(15,\"Element is not selectable\");b=\"selected\";e=a.type&amp;&amp;a.type.toLowerCase();if(\"checkbox\"==e||\"radio\"==e)b=\"checked\";return S(a,b)?\"true\":null}var g=R(a,\"A\");if(R(a,\"IMG\")&amp;&amp;\"src\"==c||g&amp;&amp;\"href\"==c)return(e=Q(a,c))&amp;&amp;(e=S(a,c)),e;if(\"spellcheck\"==c){e=Q(a,c);if(null!==e){if(\"false\"==e.toLowerCase())return\"false\";if(\"true\"==e.toLowerCase())return\"true\"}return S(a,\nc)+\"\"}g=ja[b]||b;a:if(f(U))c=f(c)&amp;&amp;1==c.length?U.indexOf(c,0):-1;else{for(var u=0;u&lt;U.length;u++)if(u in U&amp;&amp;U[u]===c){c=u;break a}c=-1}if(0&lt;=c)return(e=null!==Q(a,b)||S(a,g))?\"true\":null;try{var k=S(a,g)}catch(ka){}(c=null==k)||(c=typeof k,c=\"object\"==c&amp;&amp;null!=k||\"function\"==c);c?e=Q(a,b):e=k;return null!=e?e.toString():null}var W=[\"_\"],X=d;W[0]in X||!X.execScript||X.execScript(\"var \"+W[0]);\nfor(var Y;W.length&amp;&amp;(Y=W.shift());){var Z;if(Z=!W.length)Z=void 0!==V;Z?X[Y]=V:X[Y]&amp;&amp;X[Y]!==Object.prototype[Y]?X=X[Y]:X=X[Y]={}};; return this._.apply(null,arguments);}.apply({navigator:typeof window!='undefined'?window.navigator:null,document:typeof window!='undefined'?window.document:null}, arguments);}\n).apply(null, arguments);", "args": [{"ELEMENT": "32421484-5312-4417-b079-29cdbbdd3382", "element-6066-11e4-a52e-4f735466cecf": "32421484-5312-4417-b079-29cdbbdd3382"}, "readonly"]}</msg>
<msg timestamp="20210630 17:22:47.455" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/execute/sync HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:22:47.455" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:22:42.270" endtime="20210630 17:22:47.455"/>
</kw>
<kw name="Click Button" library="SeleniumLibrary">
<arg>${locator_vars}[我知道了]</arg>
<doc>Clicks the button identified by ``locator``.</doc>
<msg timestamp="20210630 17:22:47.456" level="INFO">Clicking button 'xpath=//button[text()="我知道了"]'.</msg>
<msg timestamp="20210630 17:22:47.456" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:47.464" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:22:47.464" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:47.464" level="DEBUG">GET http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/element/32421484-5312-4417-b079-29cdbbdd3382/name {"id": "32421484-5312-4417-b079-29cdbbdd3382"}</msg>
<msg timestamp="20210630 17:22:47.467" level="DEBUG">http://127.0.0.1:56011 "GET /session/f2913381763a1e8f8c4473e58b0663b5/element/32421484-5312-4417-b079-29cdbbdd3382/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 17:22:47.467" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:47.467" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:22:47.471" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:22:47.471" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:47.471" level="DEBUG">GET http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/element/32421484-5312-4417-b079-29cdbbdd3382/name {"id": "32421484-5312-4417-b079-29cdbbdd3382"}</msg>
<msg timestamp="20210630 17:22:47.474" level="DEBUG">http://127.0.0.1:56011 "GET /session/f2913381763a1e8f8c4473e58b0663b5/element/32421484-5312-4417-b079-29cdbbdd3382/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 17:22:47.474" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:47.474" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/element/32421484-5312-4417-b079-29cdbbdd3382/click {"id": "32421484-5312-4417-b079-29cdbbdd3382"}</msg>
<msg timestamp="20210630 17:22:47.511" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/element/32421484-5312-4417-b079-29cdbbdd3382/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:22:47.511" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:22:47.456" endtime="20210630 17:22:47.511"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[智客]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:22:47.512" level="INFO">Clicking element 'xpath=//div[@data-title="智客"]'.</msg>
<msg timestamp="20210630 17:22:47.512" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//div[@data-title=\"\u667a\u5ba2\"]"}</msg>
<msg timestamp="20210630 17:22:47.520" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:22:47.521" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:47.521" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/element/92a36d81-8a06-40a2-aec5-17315ffbddcd/click {"id": "92a36d81-8a06-40a2-aec5-17315ffbddcd"}</msg>
<msg timestamp="20210630 17:22:47.638" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/element/92a36d81-8a06-40a2-aec5-17315ffbddcd/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:22:47.639" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:22:47.512" endtime="20210630 17:22:47.639"/>
</kw>
<kw name="Switch Window" library="SeleniumLibrary">
<arg>NEW</arg>
<doc>Switches to browser window matching ``locator``.</doc>
<msg timestamp="20210630 17:22:47.639" level="DEBUG">GET http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/window {}</msg>
<msg timestamp="20210630 17:22:47.640" level="DEBUG">http://127.0.0.1:56011 "GET /session/f2913381763a1e8f8c4473e58b0663b5/window HTTP/1.1" 200 53</msg>
<msg timestamp="20210630 17:22:47.641" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:47.641" level="DEBUG">GET http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/window/handles {}</msg>
<msg timestamp="20210630 17:22:47.643" level="DEBUG">http://127.0.0.1:56011 "GET /session/f2913381763a1e8f8c4473e58b0663b5/window/handles HTTP/1.1" 200 99</msg>
<msg timestamp="20210630 17:22:47.643" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:47.643" level="DEBUG">GET http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/window {}</msg>
<msg timestamp="20210630 17:22:47.644" level="DEBUG">http://127.0.0.1:56011 "GET /session/f2913381763a1e8f8c4473e58b0663b5/window HTTP/1.1" 200 53</msg>
<msg timestamp="20210630 17:22:47.644" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:47.644" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/window {"handle": "CDwindow-E5D111A94333FF7A37F6E007809DFE36"}</msg>
<msg timestamp="20210630 17:22:47.647" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/window HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:22:47.647" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:22:47.639" endtime="20210630 17:22:47.647"/>
</kw>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>已有企业微信</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 17:22:47.648" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210630 17:22:49.544" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:49.544" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:49.756" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210630 17:22:49.762" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:49.762" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:49.973" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210630 17:22:49.988" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:49.989" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:50.202" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210630 17:22:50.215" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 1117</msg>
<msg timestamp="20210630 17:22:50.215" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:22:47.647" endtime="20210630 17:22:50.215"/>
</kw>
<status status="PASS" starttime="20210630 17:22:37.570" endtime="20210630 17:22:50.216"/>
</kw>
<status status="PASS" starttime="20210630 17:22:37.570" endtime="20210630 17:22:50.216"/>
</kw>
<test id="s1-t1" name="Tc1 Skill group add case">
<kw name="Run Keywords" library="BuiltIn" type="SETUP">
<arg>My Test Setup</arg>
<doc>Executes all the given keywords in a sequence.</doc>
<kw name="My Test Setup" library="callcenter_Skillsgroup_V6_setup_teardown">
<kw name="Click Link" library="SeleniumLibrary">
<arg>${locator_vars}[首页]</arg>
<doc>Clicks a link identified by ``locator``.</doc>
<msg timestamp="20210630 17:22:50.218" level="INFO">Clicking link 'xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a'.</msg>
<msg timestamp="20210630 17:22:50.218" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//*[@id=\"root\"]/div/div[2]/ul/li[2]/a"}</msg>
<msg timestamp="20210630 17:22:50.229" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:22:50.229" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:50.230" level="DEBUG">GET http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/element/23bd94de-6d41-432f-98e9-cab90d8e90f3/name {"id": "23bd94de-6d41-432f-98e9-cab90d8e90f3"}</msg>
<msg timestamp="20210630 17:22:50.235" level="DEBUG">http://127.0.0.1:56011 "GET /session/f2913381763a1e8f8c4473e58b0663b5/element/23bd94de-6d41-432f-98e9-cab90d8e90f3/name HTTP/1.1" 200 13</msg>
<msg timestamp="20210630 17:22:50.235" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:50.235" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/element/23bd94de-6d41-432f-98e9-cab90d8e90f3/click {"id": "23bd94de-6d41-432f-98e9-cab90d8e90f3"}</msg>
<msg timestamp="20210630 17:22:50.674" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/element/23bd94de-6d41-432f-98e9-cab90d8e90f3/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:22:50.674" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:22:50.218" endtime="20210630 17:22:50.674"/>
</kw>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>首页</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 17:22:50.675" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//*[contains(., '\u9996\u9875')]"}</msg>
<msg timestamp="20210630 17:22:50.687" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 801</msg>
<msg timestamp="20210630 17:22:50.687" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:22:50.674" endtime="20210630 17:22:50.687"/>
</kw>
<kw name="Sleep" library="BuiltIn">
<arg>2</arg>
<doc>Pauses the test executed for the given time.</doc>
<msg timestamp="20210630 17:22:52.699" level="INFO">Slept 2 seconds</msg>
<status status="PASS" starttime="20210630 17:22:50.687" endtime="20210630 17:22:52.699"/>
</kw>
<status status="PASS" starttime="20210630 17:22:50.218" endtime="20210630 17:22:52.699"/>
</kw>
<status status="PASS" starttime="20210630 17:22:50.217" endtime="20210630 17:22:52.699"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>---------- Tc1 step 1: 进入V6呼叫中心erererrer ------------</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:22:52.700" level="INFO">---------- Tc1 step 1: 进入V6呼叫中心erererrer ------------</msg>
<status status="PASS" starttime="20210630 17:22:52.699" endtime="20210630 17:22:52.700"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-新呼叫中心]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:22:52.701" level="INFO">Clicking element 'xpath=//*[@id="root"]/div/div[3]/div/div/div/div[2]/div/div[9]/a'.</msg>
<msg timestamp="20210630 17:22:52.701" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//*[@id=\"root\"]/div/div[3]/div/div/div/div[2]/div/div[9]/a"}</msg>
<msg timestamp="20210630 17:22:52.709" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:22:52.709" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:52.709" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/element/01727bba-e033-45e5-8dd5-bf3a9c04ee5d/click {"id": "01727bba-e033-45e5-8dd5-bf3a9c04ee5d"}</msg>
<msg timestamp="20210630 17:22:54.555" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/element/01727bba-e033-45e5-8dd5-bf3a9c04ee5d/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:22:54.555" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:22:52.700" endtime="20210630 17:22:54.555"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>---------- Tc1 step 2: 进入呼叫中心 &gt; 技能组 ------------</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:22:54.556" level="INFO">---------- Tc1 step 2: 进入呼叫中心 &gt; 技能组 ------------</msg>
<status status="PASS" starttime="20210630 17:22:54.556" endtime="20210630 17:22:54.556"/>
</kw>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>技能组</arg>
<arg>${sleep_60}</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 17:22:54.557" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//*[contains(., '\u6280\u80fd\u7ec4')]"}</msg>
<msg timestamp="20210630 17:22:54.572" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:22:54.572" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:54.775" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//*[contains(., '\u6280\u80fd\u7ec4')]"}</msg>
<msg timestamp="20210630 17:22:54.784" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 1354</msg>
<msg timestamp="20210630 17:22:54.784" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:22:54.557" endtime="20210630 17:22:54.784"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-呼叫技能组]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:22:54.785" level="INFO">Clicking element 'xpath=//*[@id="0-0$Menu"]/li[3]/a[text()=("呼叫技能组")]'.</msg>
<msg timestamp="20210630 17:22:54.785" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//*[@id=\"0-0$Menu\"]/li[3]/a[text()=(\"\u547c\u53eb\u6280\u80fd\u7ec4\")]"}</msg>
<msg timestamp="20210630 17:22:54.792" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:22:54.792" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:54.792" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/element/bd3cd440-9424-44ce-b0e2-f8fefc193cd9/click {"id": "bd3cd440-9424-44ce-b0e2-f8fefc193cd9"}</msg>
<msg timestamp="20210630 17:22:54.993" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/element/bd3cd440-9424-44ce-b0e2-f8fefc193cd9/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:22:54.994" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:22:54.784" endtime="20210630 17:22:54.994"/>
</kw>
<kw name="Sleep" library="BuiltIn">
<arg>${sleep_3}</arg>
<doc>Pauses the test executed for the given time.</doc>
<msg timestamp="20210630 17:22:58.005" level="INFO">Slept 3 seconds</msg>
<status status="PASS" starttime="20210630 17:22:54.995" endtime="20210630 17:22:58.005"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>--------------- Tc1 step 3: 新增技能组(重复组号/重复名字) -------------------------------</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:22:58.006" level="INFO">--------------- Tc1 step 3: 新增技能组(重复组号/重复名字) -------------------------------</msg>
<status status="PASS" starttime="20210630 17:22:58.006" endtime="20210630 17:22:58.006"/>
</kw>
<kw name="Set Variable" library="BuiltIn">
<var>${groupName}</var>
<arg>发生的</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<msg timestamp="20210630 17:22:58.011" level="INFO">${groupName} = 发生的</msg>
<status status="PASS" starttime="20210630 17:22:58.011" endtime="20210630 17:22:58.011"/>
</kw>
<kw name="Set Variable" library="BuiltIn">
<var>${groupNumber}</var>
<arg>6667</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<msg timestamp="20210630 17:22:58.012" level="INFO">${groupNumber} = 6667</msg>
<status status="PASS" starttime="20210630 17:22:58.012" endtime="20210630 17:22:58.012"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>新增</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:22:58.012" level="INFO">新增</msg>
<status status="PASS" starttime="20210630 17:22:58.012" endtime="20210630 17:22:58.012"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-新增]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:22:58.013" level="INFO">Clicking element 'xpath=//*[@id="searchRight"]/button/span[text()="新建"]'.</msg>
<msg timestamp="20210630 17:22:58.013" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//*[@id=\"searchRight\"]/button/span[text()=\"\u65b0\u5efa\"]"}</msg>
<msg timestamp="20210630 17:22:58.024" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:22:58.025" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:58.025" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/element/c54f6b19-6eb3-4e90-be96-3115a8810f7e/click {"id": "c54f6b19-6eb3-4e90-be96-3115a8810f7e"}</msg>
<msg timestamp="20210630 17:22:58.103" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/element/c54f6b19-6eb3-4e90-be96-3115a8810f7e/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:22:58.104" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:22:58.012" endtime="20210630 17:22:58.104"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-名称文本]</arg>
<arg>${groupName}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210630 17:22:58.105" level="INFO">Typing text '发生的' into text field 'xpath=//*[@id="queueName"]'.</msg>
<msg timestamp="20210630 17:22:58.105" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//*[@id=\"queueName\"]"}</msg>
<msg timestamp="20210630 17:22:58.123" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:22:58.124" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:58.124" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/element/d87268ee-5f8d-47cc-b4e3-09c4f0d46a3e/clear {"id": "d87268ee-5f8d-47cc-b4e3-09c4f0d46a3e"}</msg>
<msg timestamp="20210630 17:22:58.164" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/element/d87268ee-5f8d-47cc-b4e3-09c4f0d46a3e/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:22:58.164" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:58.164" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/element/d87268ee-5f8d-47cc-b4e3-09c4f0d46a3e/value {"text": "\u53d1\u751f\u7684", "value": ["\u53d1", "\u751f", "\u7684"], "id": "d87268ee-5f8d-47cc-b4e3-09c4f0d46a3e"}</msg>
<msg timestamp="20210630 17:22:58.227" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/element/d87268ee-5f8d-47cc-b4e3-09c4f0d46a3e/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:22:58.228" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:22:58.104" endtime="20210630 17:22:58.228"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-组号]</arg>
<arg>${groupNumber}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210630 17:22:58.229" level="INFO">Typing text '6667' into text field 'xpath=//*[@id="queueID"]'.</msg>
<msg timestamp="20210630 17:22:58.229" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "//*[@id=\"queueID\"]"}</msg>
<msg timestamp="20210630 17:22:58.239" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:22:58.240" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:58.240" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/element/ea90bf84-2cd2-480b-a909-94e8f22d8778/clear {"id": "ea90bf84-2cd2-480b-a909-94e8f22d8778"}</msg>
<msg timestamp="20210630 17:22:58.263" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/element/ea90bf84-2cd2-480b-a909-94e8f22d8778/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:22:58.263" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:58.263" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/element/ea90bf84-2cd2-480b-a909-94e8f22d8778/value {"text": "6667", "value": ["6", "6", "6", "7"], "id": "ea90bf84-2cd2-480b-a909-94e8f22d8778"}</msg>
<msg timestamp="20210630 17:22:58.319" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/element/ea90bf84-2cd2-480b-a909-94e8f22d8778/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:22:58.320" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:22:58.228" endtime="20210630 17:22:58.320"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-弹板-新建]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:22:58.321" level="INFO">Clicking element 'xpath=/html/body//button/span[text()="新 建"]'.</msg>
<msg timestamp="20210630 17:22:58.321" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/elements {"using": "xpath", "value": "/html/body//button/span[text()=\"\u65b0 \u5efa\"]"}</msg>
<msg timestamp="20210630 17:22:58.329" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:22:58.329" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:22:58.329" level="DEBUG">POST http://127.0.0.1:56011/session/f2913381763a1e8f8c4473e58b0663b5/element/6a2ed4a2-9c5d-4ec1-8819-2a8c4c97a38e/click {"id": "6a2ed4a2-9c5d-4ec1-8819-2a8c4c97a38e"}</msg>
<msg timestamp="20210630 17:22:58.382" level="DEBUG">http://127.0.0.1:56011 "POST /session/f2913381763a1e8f8c4473e58b0663b5/element/6a2ed4a2-9c5d-4ec1-8819-2a8c4c97a38e/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:22:58.384" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:22:58.320" endtime="20210630 17:22:58.385"/>
</kw>
<kw name="sleep 2">
<msg timestamp="20210630 17:22:58.394" level="FAIL">No keyword with name 'sleep 2' found. Did you mean:
BuiltIn.Sleep</msg>
<status status="FAIL" starttime="20210630 17:22:58.394" endtime="20210630 17:22:58.394"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-创建返回列表]</arg>
<doc>Click the element identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 17:22:58.395" endtime="20210630 17:22:58.395"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>--------校验是否添加成功---------</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" starttime="20210630 17:22:58.395" endtime="20210630 17:22:58.395"/>
</kw>
<kw name="Get Table Data For Column" library="public_robot_keywords">
<var>${listDataNumber}</var>
<arg>tbody_locator=${locator_vars}[V6-技能组tbody]</arg>
<arg>column=2</arg>
<arg>right_arrow_locator=${locator_vars}[V6-技能组-下一页]</arg>
<arg>the_first_page_locator=${locator_vars}[V6-技能组-第一页切换]</arg>
<doc>取得table列数据</doc>
<status status="NOT RUN" starttime="20210630 17:22:58.395" endtime="20210630 17:22:58.395"/>
</kw>
<kw name="Check Items Match Or Not In List" library="public_robot_keywords">
<arg>all_data=${listDataNumber}</arg>
<arg>check_items=${groupNumber}</arg>
<doc>在list里检查items数据是否精确匹配</doc>
<status status="NOT RUN" starttime="20210630 17:22:58.396" endtime="20210630 17:22:58.396"/>
</kw>
<doc>- 进入呼叫中心
- 进入呼叫中心</doc>
<tag>1</tag>
<tag>Sanity</tag>
<tag>呼叫中心</tag>
<status status="FAIL" starttime="20210630 17:22:50.216" endtime="20210630 17:22:58.397">No keyword with name 'sleep 2' found. Did you mean:
BuiltIn.Sleep</status>
</test>
<doc>callcenter_Relaynumber_V6_full1.robot
author: jiawei</doc>
<status status="FAIL" starttime="20210630 17:22:37.248" endtime="20210630 17:22:58.406"/>
</suite>
<statistics>
<total>
<stat pass="0" fail="1" skip="0">All Tests</stat>
</total>
<tag>
<stat pass="0" fail="1" skip="0">1</stat>
<stat pass="0" fail="1" skip="0">Sanity</stat>
<stat pass="0" fail="1" skip="0">呼叫中心</stat>
</tag>
<suite>
<stat pass="0" fail="1" skip="0" id="s1" name="callcenter Skillsgroup V6 full1">callcenter Skillsgroup V6 full1</stat>
</suite>
</statistics>
<errors>
<msg timestamp="20210630 17:22:37.513" level="WARN">Imported library 'D:\word\自动化\script_template\keyword\callcenter_V6_python_keywords.py' contains no keywords.</msg>
</errors>
</robot>
<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 4.0.3 (Python 3.8.8 on win32)" generated="20210630 17:24:51.047" rpa="false" schemaversion="2">
<suite id="s1" name="callcenter Skillsgroup V6 full1" source="D:\word\自动化\script_template\callcenter_Skillsgroup_V6_full1.robot">
<kw name="Run Keywords" library="BuiltIn" type="SETUP">
<arg>My Suite Setup</arg>
<doc>Executes all the given keywords in a sequence.</doc>
<kw name="My Suite Setup" library="callcenter_Skillsgroup_V6_setup_teardown">
<kw name="Log" library="BuiltIn">
<arg>========================== My Suite Setup Start ==========================</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:24:51.376" level="INFO">========================== My Suite Setup Start ==========================</msg>
<status status="PASS" starttime="20210630 17:24:51.376" endtime="20210630 17:24:51.378"/>
</kw>
<kw name="Fetch Json Vars" library="public_python_keywords">
<var>&amp;{gbl_vars}</var>
<arg>file=D:\\word\\自动化\\script_template\\json_file\\call_center_vars.json</arg>
<msg timestamp="20210630 17:24:51.379" level="INFO">&amp;{gbl_vars} = { log_level=DEBUG | url=http://test.sobot.com/console/login | browser=gc | email=mjmj@zhichi.com | password=sobot1234 | w_size_hor_pixels=1920 | w_size_ver_pixels=1080 | time={'hour': 11, 'minute': '2...</msg>
<status status="PASS" starttime="20210630 17:24:51.379" endtime="20210630 17:24:51.379"/>
</kw>
<kw name="Set Global Variable" library="BuiltIn">
<arg>${gbl_vars}</arg>
<doc>Makes a variable available globally in all tests and suites.</doc>
<msg timestamp="20210630 17:24:51.380" level="INFO">${gbl_vars} = {'log_level': 'DEBUG', 'url': 'http://test.sobot.com/console/login', 'browser': 'gc', 'email': 'mjmj@zhichi.com', 'password': 'sobot1234', 'w_size_hor_pixels': 1920, 'w_size_ver_pixels': 1080, 'time':...</msg>
<status status="PASS" starttime="20210630 17:24:51.380" endtime="20210630 17:24:51.380"/>
</kw>
<kw name="Fetch Json Vars" library="public_python_keywords">
<var>&amp;{locator_vars}</var>
<arg>file=D:\\word\\自动化\\script_template\\json_file\\call_center_locator_vars.json</arg>
<msg timestamp="20210630 17:24:51.381" level="INFO">&amp;{locator_vars} = { 我知道了=xpath=//button[text()="我知道了"] | 智客=xpath=//div[@data-title="智客"] | 首页=xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a | 呼叫中心=x、】path=//*[@id="root"]/div/div[2]/ul/li[3]/a | 企微智客=xpath=//*[@id="root...</msg>
<status status="PASS" starttime="20210630 17:24:51.380" endtime="20210630 17:24:51.381"/>
</kw>
<kw name="Set Global Variable" library="BuiltIn">
<arg>${locator_vars}</arg>
<doc>Makes a variable available globally in all tests and suites.</doc>
<msg timestamp="20210630 17:24:51.382" level="INFO">${locator_vars} = {'我知道了': 'xpath=//button[text()="我知道了"]', '智客': 'xpath=//div[@data-title="智客"]', '首页': 'xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a', '呼叫中心': 'x、】path=//*[@id="root"]/div/div[2]/ul/li[3]/a', '企微智客': '...</msg>
<status status="PASS" starttime="20210630 17:24:51.381" endtime="20210630 17:24:51.382"/>
</kw>
<kw name="Set Log Level" library="BuiltIn">
<arg>${gbl_vars}[log_level]</arg>
<doc>Sets the log threshold to the specified level and returns the old level.</doc>
<msg timestamp="20210630 17:24:51.382" level="INFO">Log level changed from INFO to DEBUG.</msg>
<status status="PASS" starttime="20210630 17:24:51.382" endtime="20210630 17:24:51.382"/>
</kw>
<kw name="Close All Browsers" library="SeleniumLibrary">
<doc>Closes all open browsers and resets the browser cache.</doc>
<msg timestamp="20210630 17:24:51.383" level="DEBUG">Closing all browsers.</msg>
<status status="PASS" starttime="20210630 17:24:51.383" endtime="20210630 17:24:51.383"/>
</kw>
<kw name="Open Browser And Set Size" library="public_robot_keywords">
<arg>url=${gbl_vars}[url]</arg>
<arg>set_window_size=${True}</arg>
<arg>set_max_browser_window=${True}</arg>
<doc>打开指定类型的浏览器,并设置窗口大小</doc>
<kw name="Open Browser" library="SeleniumLibrary">
<arg>${url}</arg>
<arg>${browser}</arg>
<doc>Opens a new browser instance to the optional ``url``.</doc>
<msg timestamp="20210630 17:24:51.384" level="INFO">Opening browser 'gc' to base url 'http://test.sobot.com/console/login'.</msg>
<msg timestamp="20210630 17:24:51.905" level="DEBUG">POST http://127.0.0.1:49416/session {"capabilities": {"firstMatch": [{}], "alwaysMatch": {"browserName": "chrome", "platformName": "any", "goog:chromeOptions": {"extensions": [], "args": []}}}, "desiredCapabilities": {"browserName": "chrome", "version": "", "platform": "ANY", "goog:chromeOptions": {"extensions": [], "args": []}}}</msg>
<msg timestamp="20210630 17:24:51.906" level="DEBUG">Starting new HTTP connection (1): 127.0.0.1:49416</msg>
<msg timestamp="20210630 17:24:52.667" level="DEBUG">http://127.0.0.1:49416 "POST /session HTTP/1.1" 200 753</msg>
<msg timestamp="20210630 17:24:52.667" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:52.668" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/timeouts {"script": 5000}</msg>
<msg timestamp="20210630 17:24:52.671" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/timeouts HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:24:52.672" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:52.673" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/timeouts {"implicit": 0}</msg>
<msg timestamp="20210630 17:24:52.677" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/timeouts HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:24:52.679" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:52.679" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/url {"url": "http://test.sobot.com/console/login"}</msg>
<msg timestamp="20210630 17:24:54.811" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/url HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:24:54.812" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:54.812" level="DEBUG">Opened browser with session id f4a0099756c9ae024cf30213d3adfb9b.</msg>
<status status="PASS" starttime="20210630 17:24:51.384" endtime="20210630 17:24:54.812"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${set_window_size}</arg>
<arg>Set Window Size</arg>
<arg>${hor_pixels}</arg>
<arg>${ver_pixels}</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Set Window Size" library="SeleniumLibrary">
<arg>${hor_pixels}</arg>
<arg>${ver_pixels}</arg>
<doc>Sets current windows size to given ``width`` and ``height``.</doc>
<msg timestamp="20210630 17:24:54.813" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/window/rect {"x": null, "y": null, "width": 1920, "height": 1080}</msg>
<msg timestamp="20210630 17:24:54.953" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/window/rect HTTP/1.1" 200 51</msg>
<msg timestamp="20210630 17:24:54.953" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:24:54.812" endtime="20210630 17:24:54.953"/>
</kw>
<status status="PASS" starttime="20210630 17:24:54.812" endtime="20210630 17:24:54.953"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${set_max_browser_window}</arg>
<arg>Maximize Browser Window</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Maximize Browser Window" library="SeleniumLibrary">
<doc>Maximizes current browser window.</doc>
<msg timestamp="20210630 17:24:54.955" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/window/maximize {}</msg>
<msg timestamp="20210630 17:24:55.144" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/window/maximize HTTP/1.1" 200 51</msg>
<msg timestamp="20210630 17:24:55.145" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:24:54.954" endtime="20210630 17:24:55.145"/>
</kw>
<status status="PASS" starttime="20210630 17:24:54.954" endtime="20210630 17:24:55.145"/>
</kw>
<status status="PASS" starttime="20210630 17:24:51.383" endtime="20210630 17:24:55.145"/>
</kw>
<kw name="Logon Soboten" library="public_robot_keywords">
<arg>logon_type=0</arg>
<arg>email=${gbl_vars}[email]</arg>
<arg>password=${gbl_vars}[password]</arg>
<doc>根据参数logon_type值,登录相应的智齿系统</doc>
<kw name="Run Keyword If" library="BuiltIn">
<arg>'@' not in "${email}" or '.' not in "${email}"</arg>
<arg>Fail</arg>
<arg>email format is wrong, please double check!</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210630 17:24:55.146" endtime="20210630 17:24:55.146"/>
</kw>
<kw name="Get Length" library="BuiltIn">
<var>${password_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<msg timestamp="20210630 17:24:55.146" level="INFO">Length is 9</msg>
<msg timestamp="20210630 17:24:55.147" level="INFO">${password_length} = 9</msg>
<status status="PASS" starttime="20210630 17:24:55.146" endtime="20210630 17:24:55.147"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${password_length} &lt; 8</arg>
<arg>Fail</arg>
<arg>Password is less than 8 digits</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210630 17:24:55.147" endtime="20210630 17:24:55.147"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${logon_type}&gt;0</arg>
<arg>Click Element</arg>
<arg>xpath=//div[text()="登录"]</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<status status="PASS" starttime="20210630 17:24:55.147" endtime="20210630 17:24:55.147"/>
</kw>
<kw name="Run Keyword If" library="BuiltIn">
<arg>${logon_type}==0</arg>
<arg>Logon Test Environment</arg>
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<arg>ELSE IF</arg>
<arg>${logon_type}==1</arg>
<arg>Logon Cloud Customer Service</arg>
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<arg>ELSE IF</arg>
<arg>${logon_type}==2</arg>
<arg>Logon Cloud Outgoing Call</arg>
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
<kw name="Logon Test Environment" library="public_robot_keywords">
<arg>email=${email}</arg>
<arg>password=${password}</arg>
<doc>登录智齿测试系统</doc>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>登录智齿客服,开启智慧客服新篇章</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 17:24:55.150" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//*[contains(., '\u767b\u5f55\u667a\u9f7f\u5ba2\u670d\uff0c\u5f00\u542f\u667a\u6167\u5ba2\u670d\u65b0\u7bc7\u7ae0')]"}</msg>
<msg timestamp="20210630 17:24:55.161" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 722</msg>
<msg timestamp="20210630 17:24:55.162" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:24:55.149" endtime="20210630 17:24:55.162"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>id=userEmail</arg>
<arg>${email}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210630 17:24:55.163" level="INFO">Typing text 'mjmj@zhichi.com' into text field 'id=userEmail'.</msg>
<msg timestamp="20210630 17:24:55.163" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "css selector", "value": "[id=\"userEmail\"]"}</msg>
<msg timestamp="20210630 17:24:55.175" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:24:55.176" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:55.176" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/element/4909d886-0c92-4f51-927b-8e56e8cd88a4/clear {"id": "4909d886-0c92-4f51-927b-8e56e8cd88a4"}</msg>
<msg timestamp="20210630 17:24:55.209" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/element/4909d886-0c92-4f51-927b-8e56e8cd88a4/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:24:55.209" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:55.209" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/element/4909d886-0c92-4f51-927b-8e56e8cd88a4/value {"text": "mjmj@zhichi.com", "value": ["m", "j", "m", "j", "@", "z", "h", "i", "c", "h", "i", ".", "c", "o", "m"], "id": "4909d886-0c92-4f51-927b-8e56e8cd88a4"}</msg>
<msg timestamp="20210630 17:24:55.346" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/element/4909d886-0c92-4f51-927b-8e56e8cd88a4/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:24:55.346" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:24:55.162" endtime="20210630 17:24:55.346"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>id=userPassword</arg>
<arg>${password}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210630 17:24:55.347" level="INFO">Typing text 'sobot1234' into text field 'id=userPassword'.</msg>
<msg timestamp="20210630 17:24:55.347" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "css selector", "value": "[id=\"userPassword\"]"}</msg>
<msg timestamp="20210630 17:24:55.360" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:24:55.360" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:55.360" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/element/95f9921e-eb8d-4ae6-b323-f32f8e9be8da/clear {"id": "95f9921e-eb8d-4ae6-b323-f32f8e9be8da"}</msg>
<msg timestamp="20210630 17:24:55.388" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/element/95f9921e-eb8d-4ae6-b323-f32f8e9be8da/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:24:55.389" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:55.389" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/element/95f9921e-eb8d-4ae6-b323-f32f8e9be8da/value {"text": "sobot1234", "value": ["s", "o", "b", "o", "t", "1", "2", "3", "4"], "id": "95f9921e-eb8d-4ae6-b323-f32f8e9be8da"}</msg>
<msg timestamp="20210630 17:24:55.449" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/element/95f9921e-eb8d-4ae6-b323-f32f8e9be8da/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:24:55.450" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:24:55.346" endtime="20210630 17:24:55.450"/>
</kw>
<kw name="Click Button" library="SeleniumLibrary">
<arg>xpath=//button[text()="登 录"]</arg>
<doc>Clicks the button identified by ``locator``.</doc>
<msg timestamp="20210630 17:24:55.450" level="INFO">Clicking button 'xpath=//button[text()="登 录"]'.</msg>
<msg timestamp="20210630 17:24:55.451" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u767b \u5f55\"]"}</msg>
<msg timestamp="20210630 17:24:55.459" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:24:55.459" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:55.459" level="DEBUG">GET http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/element/30ae4543-671c-4782-af46-4b3d5e0e7e14/name {"id": "30ae4543-671c-4782-af46-4b3d5e0e7e14"}</msg>
<msg timestamp="20210630 17:24:55.461" level="DEBUG">http://127.0.0.1:49416 "GET /session/f4a0099756c9ae024cf30213d3adfb9b/element/30ae4543-671c-4782-af46-4b3d5e0e7e14/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 17:24:55.461" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:55.462" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u767b \u5f55\"]"}</msg>
<msg timestamp="20210630 17:24:55.471" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:24:55.471" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:55.471" level="DEBUG">GET http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/element/30ae4543-671c-4782-af46-4b3d5e0e7e14/name {"id": "30ae4543-671c-4782-af46-4b3d5e0e7e14"}</msg>
<msg timestamp="20210630 17:24:55.473" level="DEBUG">http://127.0.0.1:49416 "GET /session/f4a0099756c9ae024cf30213d3adfb9b/element/30ae4543-671c-4782-af46-4b3d5e0e7e14/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 17:24:55.474" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:55.474" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/element/30ae4543-671c-4782-af46-4b3d5e0e7e14/click {"id": "30ae4543-671c-4782-af46-4b3d5e0e7e14"}</msg>
<msg timestamp="20210630 17:24:55.518" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/element/30ae4543-671c-4782-af46-4b3d5e0e7e14/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:24:55.519" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:24:55.450" endtime="20210630 17:24:55.519"/>
</kw>
<status status="PASS" starttime="20210630 17:24:55.148" endtime="20210630 17:24:55.519"/>
</kw>
<status status="PASS" starttime="20210630 17:24:55.148" endtime="20210630 17:24:55.519"/>
</kw>
<status status="PASS" starttime="20210630 17:24:55.145" endtime="20210630 17:24:55.520"/>
</kw>
<kw name="Wait Until Element Is Enabled" library="SeleniumLibrary">
<arg>${locator_vars}[我知道了]</arg>
<arg>60s</arg>
<doc>Waits until the element ``locator`` is enabled.</doc>
<msg timestamp="20210630 17:24:55.521" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:24:55.536" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:24:55.536" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:55.742" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:24:55.746" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:24:55.747" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:55.958" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:24:55.963" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:24:55.963" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:56.171" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:24:56.190" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:24:56.190" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:56.399" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:24:56.487" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:24:56.487" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:56.687" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:24:56.926" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:24:56.926" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:57.138" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:24:57.145" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:24:57.146" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:57.354" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:24:57.359" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:24:57.359" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:57.572" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:24:57.578" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:24:57.578" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:57.788" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:24:57.793" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:24:57.794" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:58.005" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:24:58.009" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:24:58.009" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:58.219" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:24:58.228" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:24:58.228" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:58.437" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:24:58.442" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:24:58.443" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:58.655" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:24:58.659" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:24:58.660" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:58.874" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:24:58.879" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:24:58.879" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:59.090" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:24:59.099" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:24:59.100" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:59.307" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:24:59.313" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:24:59.314" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:59.526" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:24:59.531" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:24:59.531" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:59.744" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:24:59.749" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:24:59.749" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:24:59.961" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:24:59.967" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:24:59.967" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:00.178" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:25:00.183" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:25:00.183" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:00.396" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:25:00.400" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:25:00.401" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:00.613" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:25:00.619" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:25:00.620" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:00.620" level="DEBUG">GET http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/element/ef2a49ca-4a8c-4818-a50b-bf91574467ef/enabled {"id": "ef2a49ca-4a8c-4818-a50b-bf91574467ef"}</msg>
<msg timestamp="20210630 17:25:00.625" level="DEBUG">http://127.0.0.1:49416 "GET /session/f4a0099756c9ae024cf30213d3adfb9b/element/ef2a49ca-4a8c-4818-a50b-bf91574467ef/enabled HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:25:00.625" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:00.625" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/execute/sync {"script": "return (function(){return function(){var d=this;function f(a){return\"string\"==typeof a};function h(a,b){this.code=a;this.a=l[a]||m;this.message=b||\"\";a=this.a.replace(/((?:^|\\s+)[a-z])/g,function(a){return a.toUpperCase().replace(/^[\\s\\xa0]+/g,\"\")});b=a.length-5;if(0&gt;b||a.indexOf(\"Error\",b)!=b)a+=\"Error\";this.name=a;a=Error(this.message);a.name=this.name;this.stack=a.stack||\"\"}\n(function(){var a=Error;function b(){}b.prototype=a.prototype;h.b=a.prototype;h.prototype=new b;h.prototype.constructor=h;h.a=function(b,c,g){for(var e=Array(arguments.length-2),k=2;k&lt;arguments.length;k++)e[k-2]=arguments[k];return a.prototype[c].apply(b,e)}})();var m=\"unknown error\",l={15:\"element not selectable\",11:\"element not visible\"};l[31]=m;l[30]=m;l[24]=\"invalid cookie domain\";l[29]=\"invalid element coordinates\";l[12]=\"invalid element state\";l[32]=\"invalid selector\";l[51]=\"invalid selector\";\nl[52]=\"invalid selector\";l[17]=\"javascript error\";l[405]=\"unsupported operation\";l[34]=\"move target out of bounds\";l[27]=\"no such alert\";l[7]=\"no such element\";l[8]=\"no such frame\";l[23]=\"no such window\";l[28]=\"script timeout\";l[33]=\"session not created\";l[10]=\"stale element reference\";l[21]=\"timeout\";l[25]=\"unable to set cookie\";l[26]=\"unexpected alert open\";l[13]=m;l[9]=\"unknown command\";h.prototype.toString=function(){return this.name+\": \"+this.message};var n;a:{var p=d.navigator;if(p){var q=p.userAgent;if(q){n=q;break a}}n=\"\"}function r(a){return-1!=n.indexOf(a)};function t(a,b){for(var e=a.length,c=f(a)?a.split(\"\"):a,g=0;g&lt;e;g++)g in c&amp;&amp;b.call(void 0,c[g],g,a)};function v(){return r(\"iPhone\")&amp;&amp;!r(\"iPod\")&amp;&amp;!r(\"iPad\")};function w(){return(r(\"Chrome\")||r(\"CriOS\"))&amp;&amp;!r(\"Edge\")};var x=r(\"Opera\"),y=r(\"Trident\")||r(\"MSIE\"),z=r(\"Edge\"),A=r(\"Gecko\")&amp;&amp;!(-1!=n.toLowerCase().indexOf(\"webkit\")&amp;&amp;!r(\"Edge\"))&amp;&amp;!(r(\"Trident\")||r(\"MSIE\"))&amp;&amp;!r(\"Edge\"),aa=-1!=n.toLowerCase().indexOf(\"webkit\")&amp;&amp;!r(\"Edge\");function B(){var a=d.document;return a?a.documentMode:void 0}var C;\na:{var D=\"\",E=function(){var a=n;if(A)return/rv\\:([^\\);]+)(\\)|;)/.exec(a);if(z)return/Edge\\/([\\d\\.]+)/.exec(a);if(y)return/\\b(?:MSIE|rv)[: ]([^\\);]+)(\\)|;)/.exec(a);if(aa)return/WebKit\\/(\\S+)/.exec(a);if(x)return/(?:Version)[ \\/]?(\\S+)/.exec(a)}();E&amp;&amp;(D=E?E[1]:\"\");if(y){var F=B();if(null!=F&amp;&amp;F&gt;parseFloat(D)){C=String(F);break a}}C=D}var G;var H=d.document;G=H&amp;&amp;y?B()||(\"CSS1Compat\"==H.compatMode?parseInt(C,10):5):void 0;var ba=r(\"Firefox\"),ca=v()||r(\"iPod\"),da=r(\"iPad\"),I=r(\"Android\")&amp;&amp;!(w()||r(\"Firefox\")||r(\"Opera\")||r(\"Silk\")),ea=w(),J=r(\"Safari\")&amp;&amp;!(w()||r(\"Coast\")||r(\"Opera\")||r(\"Edge\")||r(\"Silk\")||r(\"Android\"))&amp;&amp;!(v()||r(\"iPad\")||r(\"iPod\"));function K(a){return(a=a.exec(n))?a[1]:\"\"}(function(){if(ba)return K(/Firefox\\/([0-9.]+)/);if(y||z||x)return C;if(ea)return v()||r(\"iPad\")||r(\"iPod\")?K(/CriOS\\/([0-9.]+)/):K(/Chrome\\/([0-9.]+)/);if(J&amp;&amp;!(v()||r(\"iPad\")||r(\"iPod\")))return K(/Version\\/([0-9.]+)/);if(ca||da){var a=/Version\\/(\\S+).*Mobile\\/(\\S+)/.exec(n);if(a)return a[1]+\".\"+a[2]}else if(I)return(a=K(/Android\\s+([0-9.]+)/))?a:K(/Version\\/([0-9.]+)/);return\"\"})();var L,M=function(){if(!A)return!1;var a=d.Components;if(!a)return!1;try{if(!a.classes)return!1}catch(g){return!1}var b=a.classes,a=a.interfaces,e=b[\"@mozilla.org/xpcom/version-comparator;1\"].getService(a.nsIVersionComparator),c=b[\"@mozilla.org/xre/app-info;1\"].getService(a.nsIXULAppInfo).version;L=function(a){e.compare(c,\"\"+a)};return!0}(),N=y&amp;&amp;!(8&lt;=Number(G)),fa=y&amp;&amp;!(9&lt;=Number(G));I&amp;&amp;M&amp;&amp;L(2.3);I&amp;&amp;M&amp;&amp;L(4);J&amp;&amp;M&amp;&amp;L(6);var ga={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1},O={IMG:\" \",BR:\"\\n\"};function P(a,b,e){if(!(a.nodeName in ga))if(3==a.nodeType)e?b.push(String(a.nodeValue).replace(/(\\r\\n|\\r|\\n)/g,\"\")):b.push(a.nodeValue);else if(a.nodeName in O)b.push(O[a.nodeName]);else for(a=a.firstChild;a;)P(a,b,e),a=a.nextSibling};function Q(a,b){b=b.toLowerCase();return\"style\"==b?ha(a.style.cssText):N&amp;&amp;\"value\"==b&amp;&amp;R(a,\"INPUT\")?a.value:fa&amp;&amp;!0===a[b]?String(a.getAttribute(b)):(a=a.getAttributeNode(b))&amp;&amp;a.specified?a.value:null}var ia=/[;]+(?=(?:(?:[^\"]*\"){2})*[^\"]*$)(?=(?:(?:[^']*'){2})*[^']*$)(?=(?:[^()]*\\([^()]*\\))*[^()]*$)/;\nfunction ha(a){var b=[];t(a.split(ia),function(a){var c=a.indexOf(\":\");0&lt;c&amp;&amp;(a=[a.slice(0,c),a.slice(c+1)],2==a.length&amp;&amp;b.push(a[0].toLowerCase(),\":\",a[1],\";\"))});b=b.join(\"\");return b=\";\"==b.charAt(b.length-1)?b:b+\";\"}function S(a,b){N&amp;&amp;\"value\"==b&amp;&amp;R(a,\"OPTION\")&amp;&amp;null===Q(a,\"value\")?(b=[],P(a,b,!1),a=b.join(\"\")):a=a[b];return a}function R(a,b){b&amp;&amp;\"string\"!==typeof b&amp;&amp;(b=b.toString());return!!a&amp;&amp;1==a.nodeType&amp;&amp;(!b||a.tagName.toUpperCase()==b)}\nfunction T(a){return R(a,\"OPTION\")?!0:R(a,\"INPUT\")?(a=a.type.toLowerCase(),\"checkbox\"==a||\"radio\"==a):!1};var ja={\"class\":\"className\",readonly:\"readOnly\"},U=\"allowfullscreen allowpaymentrequest allowusermedia async autofocus autoplay checked compact complete controls declare default defaultchecked defaultselected defer disabled ended formnovalidate hidden indeterminate iscontenteditable ismap itemscope loop multiple muted nohref nomodule noresize noshade novalidate nowrap open paused playsinline pubdate readonly required reversed scoped seamless seeking selected truespeed typemustmatch willvalidate\".split(\" \");function V(a,b){var e=null,c=b.toLowerCase();if(\"style\"==c)return(e=a.style)&amp;&amp;!f(e)&amp;&amp;(e=e.cssText),e;if((\"selected\"==c||\"checked\"==c)&amp;&amp;T(a)){if(!T(a))throw new h(15,\"Element is not selectable\");b=\"selected\";e=a.type&amp;&amp;a.type.toLowerCase();if(\"checkbox\"==e||\"radio\"==e)b=\"checked\";return S(a,b)?\"true\":null}var g=R(a,\"A\");if(R(a,\"IMG\")&amp;&amp;\"src\"==c||g&amp;&amp;\"href\"==c)return(e=Q(a,c))&amp;&amp;(e=S(a,c)),e;if(\"spellcheck\"==c){e=Q(a,c);if(null!==e){if(\"false\"==e.toLowerCase())return\"false\";if(\"true\"==e.toLowerCase())return\"true\"}return S(a,\nc)+\"\"}g=ja[b]||b;a:if(f(U))c=f(c)&amp;&amp;1==c.length?U.indexOf(c,0):-1;else{for(var u=0;u&lt;U.length;u++)if(u in U&amp;&amp;U[u]===c){c=u;break a}c=-1}if(0&lt;=c)return(e=null!==Q(a,b)||S(a,g))?\"true\":null;try{var k=S(a,g)}catch(ka){}(c=null==k)||(c=typeof k,c=\"object\"==c&amp;&amp;null!=k||\"function\"==c);c?e=Q(a,b):e=k;return null!=e?e.toString():null}var W=[\"_\"],X=d;W[0]in X||!X.execScript||X.execScript(\"var \"+W[0]);\nfor(var Y;W.length&amp;&amp;(Y=W.shift());){var Z;if(Z=!W.length)Z=void 0!==V;Z?X[Y]=V:X[Y]&amp;&amp;X[Y]!==Object.prototype[Y]?X=X[Y]:X=X[Y]={}};; return this._.apply(null,arguments);}.apply({navigator:typeof window!='undefined'?window.navigator:null,document:typeof window!='undefined'?window.document:null}, arguments);}\n).apply(null, arguments);", "args": [{"ELEMENT": "ef2a49ca-4a8c-4818-a50b-bf91574467ef", "element-6066-11e4-a52e-4f735466cecf": "ef2a49ca-4a8c-4818-a50b-bf91574467ef"}, "readonly"]}</msg>
<msg timestamp="20210630 17:25:00.631" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/execute/sync HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:25:00.631" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:24:55.520" endtime="20210630 17:25:00.631"/>
</kw>
<kw name="Click Button" library="SeleniumLibrary">
<arg>${locator_vars}[我知道了]</arg>
<doc>Clicks the button identified by ``locator``.</doc>
<msg timestamp="20210630 17:25:00.632" level="INFO">Clicking button 'xpath=//button[text()="我知道了"]'.</msg>
<msg timestamp="20210630 17:25:00.632" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:25:00.638" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:25:00.638" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:00.638" level="DEBUG">GET http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/element/ef2a49ca-4a8c-4818-a50b-bf91574467ef/name {"id": "ef2a49ca-4a8c-4818-a50b-bf91574467ef"}</msg>
<msg timestamp="20210630 17:25:00.642" level="DEBUG">http://127.0.0.1:49416 "GET /session/f4a0099756c9ae024cf30213d3adfb9b/element/ef2a49ca-4a8c-4818-a50b-bf91574467ef/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 17:25:00.642" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:00.642" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//button[text()=\"\u6211\u77e5\u9053\u4e86\"]"}</msg>
<msg timestamp="20210630 17:25:00.649" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:25:00.649" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:00.649" level="DEBUG">GET http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/element/ef2a49ca-4a8c-4818-a50b-bf91574467ef/name {"id": "ef2a49ca-4a8c-4818-a50b-bf91574467ef"}</msg>
<msg timestamp="20210630 17:25:00.651" level="DEBUG">http://127.0.0.1:49416 "GET /session/f4a0099756c9ae024cf30213d3adfb9b/element/ef2a49ca-4a8c-4818-a50b-bf91574467ef/name HTTP/1.1" 200 18</msg>
<msg timestamp="20210630 17:25:00.652" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:00.652" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/element/ef2a49ca-4a8c-4818-a50b-bf91574467ef/click {"id": "ef2a49ca-4a8c-4818-a50b-bf91574467ef"}</msg>
<msg timestamp="20210630 17:25:00.696" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/element/ef2a49ca-4a8c-4818-a50b-bf91574467ef/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:25:00.696" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:25:00.632" endtime="20210630 17:25:00.697"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[智客]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:25:00.699" level="INFO">Clicking element 'xpath=//div[@data-title="智客"]'.</msg>
<msg timestamp="20210630 17:25:00.699" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//div[@data-title=\"\u667a\u5ba2\"]"}</msg>
<msg timestamp="20210630 17:25:00.717" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:25:00.718" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:00.718" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/element/ee33a16e-45ac-451e-adf4-ee3b6cad4c2d/click {"id": "ee33a16e-45ac-451e-adf4-ee3b6cad4c2d"}</msg>
<msg timestamp="20210630 17:25:00.888" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/element/ee33a16e-45ac-451e-adf4-ee3b6cad4c2d/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:25:00.889" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:25:00.698" endtime="20210630 17:25:00.890"/>
</kw>
<kw name="Switch Window" library="SeleniumLibrary">
<arg>NEW</arg>
<doc>Switches to browser window matching ``locator``.</doc>
<msg timestamp="20210630 17:25:00.891" level="DEBUG">GET http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/window {}</msg>
<msg timestamp="20210630 17:25:00.893" level="DEBUG">http://127.0.0.1:49416 "GET /session/f4a0099756c9ae024cf30213d3adfb9b/window HTTP/1.1" 200 53</msg>
<msg timestamp="20210630 17:25:00.894" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:00.894" level="DEBUG">GET http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/window/handles {}</msg>
<msg timestamp="20210630 17:25:00.903" level="DEBUG">http://127.0.0.1:49416 "GET /session/f4a0099756c9ae024cf30213d3adfb9b/window/handles HTTP/1.1" 200 99</msg>
<msg timestamp="20210630 17:25:00.904" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:00.904" level="DEBUG">GET http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/window {}</msg>
<msg timestamp="20210630 17:25:00.905" level="DEBUG">http://127.0.0.1:49416 "GET /session/f4a0099756c9ae024cf30213d3adfb9b/window HTTP/1.1" 200 53</msg>
<msg timestamp="20210630 17:25:00.905" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:00.905" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/window {"handle": "CDwindow-D153EA7D64D50F2CB0E482810312FDA7"}</msg>
<msg timestamp="20210630 17:25:00.918" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/window HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:25:00.919" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:25:00.890" endtime="20210630 17:25:00.920"/>
</kw>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>已有企业微信</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 17:25:00.923" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210630 17:25:02.680" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:25:02.680" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:02.888" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210630 17:25:02.895" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:25:02.895" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:03.103" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210630 17:25:03.108" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:25:03.109" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:03.317" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210630 17:25:03.322" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:25:03.322" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:03.530" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//*[contains(., '\u5df2\u6709\u4f01\u4e1a\u5fae\u4fe1')]"}</msg>
<msg timestamp="20210630 17:25:03.730" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 1117</msg>
<msg timestamp="20210630 17:25:03.730" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:25:00.921" endtime="20210630 17:25:03.730"/>
</kw>
<status status="PASS" starttime="20210630 17:24:51.375" endtime="20210630 17:25:03.731"/>
</kw>
<status status="PASS" starttime="20210630 17:24:51.375" endtime="20210630 17:25:03.731"/>
</kw>
<test id="s1-t1" name="Tc1 Skill group add case">
<kw name="Run Keywords" library="BuiltIn" type="SETUP">
<arg>My Test Setup</arg>
<doc>Executes all the given keywords in a sequence.</doc>
<kw name="My Test Setup" library="callcenter_Skillsgroup_V6_setup_teardown">
<kw name="Click Link" library="SeleniumLibrary">
<arg>${locator_vars}[首页]</arg>
<doc>Clicks a link identified by ``locator``.</doc>
<msg timestamp="20210630 17:25:03.734" level="INFO">Clicking link 'xpath=//*[@id="root"]/div/div[2]/ul/li[2]/a'.</msg>
<msg timestamp="20210630 17:25:03.734" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//*[@id=\"root\"]/div/div[2]/ul/li[2]/a"}</msg>
<msg timestamp="20210630 17:25:03.742" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:25:03.742" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:03.742" level="DEBUG">GET http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/element/179ee406-35ba-497b-8bd5-281b3714dde7/name {"id": "179ee406-35ba-497b-8bd5-281b3714dde7"}</msg>
<msg timestamp="20210630 17:25:03.748" level="DEBUG">http://127.0.0.1:49416 "GET /session/f4a0099756c9ae024cf30213d3adfb9b/element/179ee406-35ba-497b-8bd5-281b3714dde7/name HTTP/1.1" 200 13</msg>
<msg timestamp="20210630 17:25:03.750" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:03.750" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/element/179ee406-35ba-497b-8bd5-281b3714dde7/click {"id": "179ee406-35ba-497b-8bd5-281b3714dde7"}</msg>
<msg timestamp="20210630 17:25:04.463" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/element/179ee406-35ba-497b-8bd5-281b3714dde7/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:25:04.465" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:25:03.733" endtime="20210630 17:25:04.466"/>
</kw>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>首页</arg>
<arg>60s</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 17:25:04.466" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//*[contains(., '\u9996\u9875')]"}</msg>
<msg timestamp="20210630 17:25:04.480" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 801</msg>
<msg timestamp="20210630 17:25:04.480" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:25:04.466" endtime="20210630 17:25:04.480"/>
</kw>
<kw name="Sleep" library="BuiltIn">
<arg>2</arg>
<doc>Pauses the test executed for the given time.</doc>
<msg timestamp="20210630 17:25:06.493" level="INFO">Slept 2 seconds</msg>
<status status="PASS" starttime="20210630 17:25:04.481" endtime="20210630 17:25:06.493"/>
</kw>
<status status="PASS" starttime="20210630 17:25:03.733" endtime="20210630 17:25:06.493"/>
</kw>
<status status="PASS" starttime="20210630 17:25:03.732" endtime="20210630 17:25:06.493"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>---------- Tc1 step 1: 进入V6呼叫中心erererrer ------------</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:25:06.494" level="INFO">---------- Tc1 step 1: 进入V6呼叫中心erererrer ------------</msg>
<status status="PASS" starttime="20210630 17:25:06.494" endtime="20210630 17:25:06.494"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-新呼叫中心]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:25:06.495" level="INFO">Clicking element 'xpath=//*[@id="root"]/div/div[3]/div/div/div/div[2]/div/div[9]/a'.</msg>
<msg timestamp="20210630 17:25:06.495" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//*[@id=\"root\"]/div/div[3]/div/div/div/div[2]/div/div[9]/a"}</msg>
<msg timestamp="20210630 17:25:06.503" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:25:06.504" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:06.504" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/element/cb097a8b-cce4-4ccc-9f97-aaf5867b466d/click {"id": "cb097a8b-cce4-4ccc-9f97-aaf5867b466d"}</msg>
<msg timestamp="20210630 17:25:07.907" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/element/cb097a8b-cce4-4ccc-9f97-aaf5867b466d/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:25:07.908" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:25:06.495" endtime="20210630 17:25:07.908"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>---------- Tc1 step 2: 进入呼叫中心 &gt; 技能组 ------------</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:25:07.909" level="INFO">---------- Tc1 step 2: 进入呼叫中心 &gt; 技能组 ------------</msg>
<status status="PASS" starttime="20210630 17:25:07.908" endtime="20210630 17:25:07.909"/>
</kw>
<kw name="Wait Until Page Contains" library="SeleniumLibrary">
<arg>技能组</arg>
<arg>${sleep_60}</arg>
<doc>Waits until ``text`` appears on the current page.</doc>
<msg timestamp="20210630 17:25:07.911" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//*[contains(., '\u6280\u80fd\u7ec4')]"}</msg>
<msg timestamp="20210630 17:25:07.951" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 12</msg>
<msg timestamp="20210630 17:25:07.952" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:08.161" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//*[contains(., '\u6280\u80fd\u7ec4')]"}</msg>
<msg timestamp="20210630 17:25:08.224" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 1354</msg>
<msg timestamp="20210630 17:25:08.224" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:25:07.910" endtime="20210630 17:25:08.224"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-呼叫技能组]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:25:08.226" level="INFO">Clicking element 'xpath=//*[@id="0-0$Menu"]/li[3]/a[text()=("呼叫技能组")]'.</msg>
<msg timestamp="20210630 17:25:08.226" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//*[@id=\"0-0$Menu\"]/li[3]/a[text()=(\"\u547c\u53eb\u6280\u80fd\u7ec4\")]"}</msg>
<msg timestamp="20210630 17:25:08.235" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:25:08.235" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:08.235" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/element/82fd1d03-4000-4384-ad5c-c4c36c091d01/click {"id": "82fd1d03-4000-4384-ad5c-c4c36c091d01"}</msg>
<msg timestamp="20210630 17:25:08.354" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/element/82fd1d03-4000-4384-ad5c-c4c36c091d01/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:25:08.354" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:25:08.226" endtime="20210630 17:25:08.354"/>
</kw>
<kw name="Sleep" library="BuiltIn">
<arg>${sleep_3}</arg>
<doc>Pauses the test executed for the given time.</doc>
<msg timestamp="20210630 17:25:11.361" level="INFO">Slept 3 seconds</msg>
<status status="PASS" starttime="20210630 17:25:08.355" endtime="20210630 17:25:11.361"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>--------------- Tc1 step 3: 新增技能组(重复组号/重复名字) -------------------------------</arg>
<arg>console=True</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:25:11.362" level="INFO">--------------- Tc1 step 3: 新增技能组(重复组号/重复名字) -------------------------------</msg>
<status status="PASS" starttime="20210630 17:25:11.362" endtime="20210630 17:25:11.362"/>
</kw>
<kw name="Set Variable" library="BuiltIn">
<var>${groupName}</var>
<arg>发生的</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<msg timestamp="20210630 17:25:11.363" level="INFO">${groupName} = 发生的</msg>
<status status="PASS" starttime="20210630 17:25:11.363" endtime="20210630 17:25:11.363"/>
</kw>
<kw name="Set Variable" library="BuiltIn">
<var>${groupNumber}</var>
<arg>6668</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<msg timestamp="20210630 17:25:11.364" level="INFO">${groupNumber} = 6668</msg>
<status status="PASS" starttime="20210630 17:25:11.364" endtime="20210630 17:25:11.364"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>新增</arg>
<doc>Logs the given message with the given level.</doc>
<msg timestamp="20210630 17:25:11.364" level="INFO">新增</msg>
<status status="PASS" starttime="20210630 17:25:11.364" endtime="20210630 17:25:11.364"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-新增]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:25:11.365" level="INFO">Clicking element 'xpath=//*[@id="searchRight"]/button/span[text()="新建"]'.</msg>
<msg timestamp="20210630 17:25:11.365" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//*[@id=\"searchRight\"]/button/span[text()=\"\u65b0\u5efa\"]"}</msg>
<msg timestamp="20210630 17:25:11.374" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:25:11.374" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:11.374" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/element/46f58c3a-f93d-45f1-bfe3-7ce839e49329/click {"id": "46f58c3a-f93d-45f1-bfe3-7ce839e49329"}</msg>
<msg timestamp="20210630 17:25:11.441" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/element/46f58c3a-f93d-45f1-bfe3-7ce839e49329/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:25:11.442" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:25:11.365" endtime="20210630 17:25:11.442"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-名称文本]</arg>
<arg>${groupName}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210630 17:25:11.443" level="INFO">Typing text '发生的' into text field 'xpath=//*[@id="queueName"]'.</msg>
<msg timestamp="20210630 17:25:11.443" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//*[@id=\"queueName\"]"}</msg>
<msg timestamp="20210630 17:25:11.457" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:25:11.457" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:11.457" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/element/07d45023-d418-4911-8118-fa7ca874c0e2/clear {"id": "07d45023-d418-4911-8118-fa7ca874c0e2"}</msg>
<msg timestamp="20210630 17:25:11.493" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/element/07d45023-d418-4911-8118-fa7ca874c0e2/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:25:11.494" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:11.494" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/element/07d45023-d418-4911-8118-fa7ca874c0e2/value {"text": "\u53d1\u751f\u7684", "value": ["\u53d1", "\u751f", "\u7684"], "id": "07d45023-d418-4911-8118-fa7ca874c0e2"}</msg>
<msg timestamp="20210630 17:25:11.559" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/element/07d45023-d418-4911-8118-fa7ca874c0e2/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:25:11.559" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:25:11.442" endtime="20210630 17:25:11.559"/>
</kw>
<kw name="Input Text" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-组号]</arg>
<arg>${groupNumber}</arg>
<doc>Types the given ``text`` into the text field identified by ``locator``.</doc>
<msg timestamp="20210630 17:25:11.560" level="INFO">Typing text '6668' into text field 'xpath=//*[@id="queueID"]'.</msg>
<msg timestamp="20210630 17:25:11.560" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "//*[@id=\"queueID\"]"}</msg>
<msg timestamp="20210630 17:25:11.570" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:25:11.570" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:11.570" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/element/87c14128-7394-4ce7-99db-8bfc9bff17b1/clear {"id": "87c14128-7394-4ce7-99db-8bfc9bff17b1"}</msg>
<msg timestamp="20210630 17:25:11.596" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/element/87c14128-7394-4ce7-99db-8bfc9bff17b1/clear HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:25:11.597" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:11.597" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/element/87c14128-7394-4ce7-99db-8bfc9bff17b1/value {"text": "6668", "value": ["6", "6", "6", "8"], "id": "87c14128-7394-4ce7-99db-8bfc9bff17b1"}</msg>
<msg timestamp="20210630 17:25:11.675" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/element/87c14128-7394-4ce7-99db-8bfc9bff17b1/value HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:25:11.675" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:25:11.560" endtime="20210630 17:25:11.675"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-弹板-新建]</arg>
<doc>Click the element identified by ``locator``.</doc>
<msg timestamp="20210630 17:25:11.677" level="INFO">Clicking element 'xpath=/html/body//button/span[text()="新 建"]'.</msg>
<msg timestamp="20210630 17:25:11.677" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/elements {"using": "xpath", "value": "/html/body//button/span[text()=\"\u65b0 \u5efa\"]"}</msg>
<msg timestamp="20210630 17:25:11.688" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/elements HTTP/1.1" 200 90</msg>
<msg timestamp="20210630 17:25:11.689" level="DEBUG">Finished Request</msg>
<msg timestamp="20210630 17:25:11.689" level="DEBUG">POST http://127.0.0.1:49416/session/f4a0099756c9ae024cf30213d3adfb9b/element/efd70e24-a7ec-4a46-bcfc-14618bcbf7d3/click {"id": "efd70e24-a7ec-4a46-bcfc-14618bcbf7d3"}</msg>
<msg timestamp="20210630 17:25:11.732" level="DEBUG">http://127.0.0.1:49416 "POST /session/f4a0099756c9ae024cf30213d3adfb9b/element/efd70e24-a7ec-4a46-bcfc-14618bcbf7d3/click HTTP/1.1" 200 14</msg>
<msg timestamp="20210630 17:25:11.733" level="DEBUG">Finished Request</msg>
<status status="PASS" starttime="20210630 17:25:11.676" endtime="20210630 17:25:11.733"/>
</kw>
<kw name="sleep 2">
<msg timestamp="20210630 17:25:11.739" level="FAIL">No keyword with name 'sleep 2' found. Did you mean:
BuiltIn.Sleep</msg>
<status status="FAIL" starttime="20210630 17:25:11.739" endtime="20210630 17:25:11.739"/>
</kw>
<kw name="Click Element" library="SeleniumLibrary">
<arg>${locator_vars}[V6-技能组-创建返回列表]</arg>
<doc>Click the element identified by ``locator``.</doc>
<status status="NOT RUN" starttime="20210630 17:25:11.740" endtime="20210630 17:25:11.740"/>
</kw>
<kw name="Log" library="BuiltIn">
<arg>--------校验是否添加成功---------</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" starttime="20210630 17:25:11.740" endtime="20210630 17:25:11.740"/>
</kw>
<kw name="Get Table Data For Column" library="public_robot_keywords">
<var>${listDataNumber}</var>
<arg>tbody_locator=${locator_vars}[V6-技能组tbody]</arg>
<arg>column=2</arg>
<arg>right_arrow_locator=${locator_vars}[V6-技能组-下一页]</arg>
<arg>the_first_page_locator=${locator_vars}[V6-技能组-第一页切换]</arg>
<doc>取得table列数据</doc>
<status status="NOT RUN" starttime="20210630 17:25:11.741" endtime="20210630 17:25:11.741"/>
</kw>
<kw name="Check Items Match Or Not In List" library="public_robot_keywords">
<arg>all_data=${listDataNumber}</arg>
<arg>check_items=${groupNumber}</arg>
<doc>在list里检查items数据是否精确匹配</doc>
<status status="NOT RUN" starttime="20210630 17:25:11.741" endtime="20210630 17:25:11.741"/>
</kw>
<doc>- 进入呼叫中心
- 进入呼叫中心</doc>
<tag>1</tag>
<tag>Sanity</tag>
<tag>呼叫中心</tag>
<status status="FAIL" starttime="20210630 17:25:03.731" endtime="20210630 17:25:11.741">No keyword with name 'sleep 2' found. Did you mean:
BuiltIn.Sleep</status>
</test>
<doc>callcenter_Relaynumber_V6_full1.robot
author: jiawei</doc>
<status status="FAIL" starttime="20210630 17:24:51.048" endtime="20210630 17:25:11.744"/>
</suite>
<statistics>
<total>
<stat pass="0" fail="1" skip="0">All Tests</stat>
</total>
<tag>
<stat pass="0" fail="1" skip="0">1</stat>
<stat pass="0" fail="1" skip="0">Sanity</stat>
<stat pass="0" fail="1" skip="0">呼叫中心</stat>
</tag>
<suite>
<stat pass="0" fail="1" skip="0" id="s1" name="callcenter Skillsgroup V6 full1">callcenter Skillsgroup V6 full1</stat>
</suite>
</statistics>
<errors>
<msg timestamp="20210630 17:24:51.314" level="WARN">Imported library 'D:\word\自动化\script_template\keyword\callcenter_V6_python_keywords.py' contains no keywords.</msg>
</errors>
</robot>
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
script_template @ 347bf94c
Subproject commit 347bf94c9154b84c577f3433db5072a9e05b6670
1) 更改json_file目录下call_center_vars.json文件,把email和password改成自己对应的帐户信息
1) 更改json_file目录下call_center_vars.json文件,把email和password改成自己对应的帐户信息
2) 更改callcenter_callreports_v1_setup_teardown.robot文件里Fetch Json Vars关键字对应的file值(改成自己所放的位置),注意二点:1)\需要转义成\\ 2)文件目录名中不要有空格
&{gbl_vars}= Fetch Json Vars file=C:\\Users\\Administrator\\Desktop\\script_template\\json_file\\call_center_vars.json
&{locator_vars}= Fetch Json Vars file=C:\\Users\\Administrator\\Desktop\\script_template\\json_file\\call_center_locator_vars.json
3) 运行脚本执行命令例子:robot -i 1 -T -d ./log/ callcenter_callreports_v1_fun1.robot
4》
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment