web_reg_save_param函数使用
函数原型:
intweb_reg_save_param (const
char *ParamName, <List of Attributes>, LAST);
问题:
在使用web_reg_save_param函数时,想将参数打印出来,出现了如下的问题:
//[WCSPARAM WCSParam_Diff1 44、、 97766.8822195221fAciiitpAAtVzzzHDAVHDpDAtAcf]
Parameter {WCSParam_Diff1} created by Correlation Studio
web_reg_save_param("WCSParam_Diff1",
"LB=userSession value=",
"RB=>",
"Ord=1",
"RelFrameId=1.2.1",
"Search=Body",
"IgnoreRedirections=Yes",
LAST);
lr_log_message("====userSession :
%d======",lr_eval_string ("{WCSParam_Diff1}"));
此时在output 输出窗口显示了一条警告信息:
Warning: The string
'WCSParam_Diff1' with parameter delimiters is not a parameter.
因为在对socket脚本进行关联参数化的时候,参数分割符用的一对尖括号(“<>”),于是我就在输出的时候将分隔符修改,然后运行结果发现警告不存在了。
//[WCSPARAM WCSParam_Diff1 44
97766.8822195221fAciiitpAAtVzzzHDAVHDpDAtAcf] Parameter {WCSParam_Diff1}
created by Correlation Studio
web_reg_save_param("WCSParam_Diff1",
"LB=userSession value=",
"RB=>",
"Ord=1",
"RelFrameId=1.2.1",
"Search=Body",
"IgnoreRedirections=Yes",
LAST);
lr_log_message("====getvalue :
%d======",lr_eval_string ("<WCSParam_Diff1>"));
我就在想下面引用到该参数的时候是不是也应该将分隔符修改一下呢,于是在引用参数的地方修改分隔符,结果发现又出现了问题,这次不是warning了,干脆来了一个error,哈哈,真是好玩呢:
web_submit_data("login.pl", "Action=http://127.0.0.1:1080/mercuryWebTours/login.pl",
"Method=POST",
"TargetFrame=body",
"RecContentType=text/html", "Referer=http://127.0.0.1:1080/mercuryWebTours/nav.pl?in=home",
"Snapshot=t2.inf",
"Mode=HTML",
ITEMDATA,
"Name=userSession", "Value=<WCSParam_Diff1>", ENDITEM,
"Name=username",
"Value=jojo", ENDITEM,
"Name=password",
"Value=bean", ENDITEM,
"Name=JSFormSubmit",
"Value=off", ENDITEM,
"Name=login.x",
"Value=0", ENDITEM,
"Name=login.y",
"Value=0", ENDITEM,
LAST);
web_find("web_find",
"RightOf=welcome,",
"What=jojo",
LAST);
错误Error:
Action.c(52): Error -27195:
"web_find" failed. 0 occurrence(s) of "jojo" found
(RightOf="welcome,", LeftOf="") [MsgId: MERR-27195]
Action.c(52): web_find highest severity
level was "ERROR" [MsgId: MMSG-26391]
赶紧改回来:-/
总结:
当使用web_reg_save_param时,输出参数到日志或output窗口时,可以用<>作为参数分隔符,引用参数的地方必须用{}作为参数分隔符。