判断成功登陆的方法
网上找到的关于判断成功登陆的方法:1、添加成功登陆后的标志,如下的fanhuiflag字段
2、保存判断成功与否的参数,如下的WCSParam_Text1
3、判断登陆是否成功,如下的if语句
问题:
WCSParam_Text1是登陆成功后才取的参数,如果登陆不成功,脚本执行完后,系统就找不到这个参数,提示错误“No match found for the requested parameter "WCSParam_Text1"”,后边的if语句根本就没有执行到。
请问上边的方法对吗,还是我的思路有问题?
Action()
{
char fanhuiflag ="22222";
web_reg_find("Text=\r\n"
"\t图书馆管理系统登录页面\r\n",
LAST);
web_set_max_html_param_len("1024");
/* Registering parameter(s) from source task id 7
// {Siebel_Analytic_ViewState2} = "/wEPDwULLTE5MzA2NTM1MDFkZMhW7tsMnr72dyQw1EWe9oRnEdQl"
// */
web_reg_save_param("Siebel_Analytic_ViewState2",
"LB/IC=ViewState\" value=\"",
"RB/IC=\"",
"Ord=1",
"RelFrameId=1",
"Search=Body",
LAST);
web_url("Login.aspx",
"URL=http://10.*.*.*/LibraryMS/Login.aspx",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
// Parameter {WCSParam_Text1} created by Correlation Studio
web_reg_save_param("WCSParam_Text1",
"LB=td>",
"RB=<",
"Ord=94",
"RelFrameId=1",
"Search=Body",
"IgnoreRedirections=Yes",
LAST);
web_submit_data("Login.aspx_2",
"Action=http://10.1.16.89/LibraryMS/Login.aspx",
"Method=POST",
"RecContentType=text/html",
"Referer=http://10.1.16.89/LibraryMS/Login.aspx",
"Snapshot=t2.inf",
"Mode=HTML",
ITEMDATA,
"Name=__VIEWSTATE", "Value={Siebel_Analytic_ViewState2}", ENDITEM,
"Name=txtAdmin", "Value=tsoft", ENDITEM,
"Name=txtPwd", "Value=1110", ENDITEM,
"Name=txtCode", "Value=", ENDITEM,
"Name=btnLogin", "Value=鐧诲綍", ENDITEM,
"Name=__EVENTVALIDATION", "Value=/wEWBgLH06DZCwKN8+WYBgKd+7qdDgLChPzDDQKC3IeGDAKQ9M/rBTMz5cP3aLfsQzbX86Jne1ixRdMJ", ENDITEM,
EXTRARES,
"URL=WebResource.axd?d=sQsZ8AfHHfX5j7Lh0K2vYg2&t=633936346575142915", "Referer=http://10.1.16.89/LibraryMS/Default.aspx", ENDITEM,
"URL=WebResource.axd?d=kEe3vR9BO-LC5GNwMzINFw2&t=633936346575142915", "Referer=http://10.1.16.89/LibraryMS/Default.aspx", ENDITEM,
LAST);
if(strcmp(fanhuiflag,lr_eval_string("{WCSParam_Text1}"))!=0)
{
lr_error_message ("登录不成功");
}
return 0;
}
[ 本帖最后由 jiachang 于 2010-8-17 16:16 编辑 ] 错误提示的意思是没有匹配到指定的参数WCSParam_Text1;
----------------
另外这句应该有问题,Ord=94,页面中有这么多组匹配项吗?你改成Ord=1试试……
web_reg_save_param("WCSParam_Text1",
"LB=td>",
"RB=<",
"Ord=94",
"RelFrameId=1",
"Search=Body",
"IgnoreRedirections=Yes",
LAST);
-------------------------
文本检查直接用web_reg_find或web_find,不必用web_reg_save_param保存参数再比较 只是想试验一下这种方法。
是不是因为登陆不成功才提示没有匹配到参数呢?
另外跟这段代码的外置有关吗,如果把这段代码放到登陆页面的后边,if语句之前就不会提示这个错误。
能提供一个用这种方法的完整实例吗,谢谢! 检查点函数不是这样用的,关联更不是这样用的,你应该是检查点去判断是否出现 图书馆管理系统登录页面 然后把结果保存在一个参数中再去判断参数的值 这是两个页面,Login.aspx——图书馆管理系统登录页面,Login.aspx_2——图书馆管理系统主页,我现在判断的是成功登陆主页。
fanhuiflag就是登陆成功的标志,WCSParam_Text1是系统登录后的参数,不是关联,最后的if语句就是比较这两个参数是否相等,相等则登录成功,这个思路不对吗?
[ 本帖最后由 jiachang 于 2010-8-18 09:23 编辑 ] 如果登陆不成功时,他就会提示找不到参数 WCSParam_Text1,执行不到 if判断语句那, 直接用web_reg_find找你的登录成功标志,web_reg_find就是做验证用的,自己写if做判断岂不是多此一举 用web_reg_find方法是可以,但我就是想试验一下这种方法是否可以
页:
[1]