1、遇到的问题如下:
关联的作用是获取服务器返回的数据,服务器返回的html代码如下:
<input data-val="true" data-val-regex="璇疯緭鍏ユ纭殑鎵嬫満鍙风爜锛岄潪鍖椾含甯傛湰鍦板彿鐮佸墠璇峰姞0锛? data-val-regex-pattern="(((0)|())?(1)[3-9]\d{9})$" data-val-required="璇峰~鍐欐墜鏈哄彿鐮侊紒" id="MobileNumber" name="MobileNumber" type="hidden" value="18280062222" />
<input id="ExpertID" name="ExpertID" type="hidden" value="a7804072-3e9f-4d0c-815b-68df04df7b70" />
我想获取服务器返回的数据"a7804072-3e9f-4d0c-815b-68df04df7b70",通过手动关联完成如下图:
生成的关联函数为:
//Correlation comment - Do not change!Original value='7e270eeb-3201-409e-ac44-21c674530a25' Name ='CorrelationParameter_1'
web_reg_save_param_ex(
"ParamName=CorrelationParameter_1",
"LB= value=\"",
"RB=\" ",
SEARCH_FILTERS,
"Scope=Body",
"RequestUrl=*/Index*",
LAST);
关联后并做相关的参数化后,运行脚本,结果发现,获取到的值是电话号码,原来是,MobileNumber的左右边界和ExpertID的左右边界一模一样。
解决办法:
1、首先通过在关联函数中增加"Ordinal=All",然后调试脚本,发现CorrelationParameter_1列表中没有我需要的ExpertID,我怀疑左右边界有问题;
2、修改关联函数的左边界,扩大左边界的范围,修改后关联函数如下:
//Correlation comment - Do not change!Original value='value="{CorrelationParameter_1}' Name ='CorrelationParameter_1'
web_reg_save_param_ex(
"ParamName=CorrelationParameter_1",
"LB=type=\"hidden\" value=\"",
"RB=\" ",
"Ordinal=ALL",
SEARCH_FILTERS,
"Scope=Body",
"RequestUrl=*/Index*",
LAST);
获取到CorrelationParameter_1的列表,发现列表中第二个值是我需要,如下图:
3、修改关联函数"Ordinal=ALL"为"Ordinal=2",意思是选取数组中的第二个值,修改后的关联函数如下:
//Correlation comment - Do not change!Original value='value="{CorrelationParameter_1}' Name ='CorrelationParameter_1'
web_reg_save_param_ex(
"ParamName=CorrelationParameter_1",
"LB=type=\"hidden\" value=\"",
"RB=\" ",
"Ordinal=2",
SEARCH_FILTERS,
"Scope=Body",
"RequestUrl=*/Index*",
LAST);
经过以上做操作后,终于获取到到了服务器返回的expertid,脚本成功运行通过。
心得:
1、当时怀疑LR的"Ordinal=ALL"参数有bug,获取不到列表,最后发现原来是左右边界的问题。
2、调试脚本是只开启parameter substitation日志就行,如果全开,总是找不到自己需要的日志。
3、如果遇到问题,一定是自己哪里没做对,不会是系统或者LR的问题。