jiachang 发表于 2010-8-17 16:15:12

判断成功登陆的方法

网上找到的关于判断成功登陆的方法:
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 编辑 ]

xueying1123 发表于 2010-8-17 16:29:38

错误提示的意思是没有匹配到指定的参数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保存参数再比较

jiachang 发表于 2010-8-17 16:56:34

只是想试验一下这种方法。
是不是因为登陆不成功才提示没有匹配到参数呢?
另外跟这段代码的外置有关吗,如果把这段代码放到登陆页面的后边,if语句之前就不会提示这个错误。
能提供一个用这种方法的完整实例吗,谢谢!

云层 发表于 2010-8-17 18:07:32

检查点函数不是这样用的,关联更不是这样用的,你应该是检查点去判断是否出现 图书馆管理系统登录页面 然后把结果保存在一个参数中再去判断参数的值

jiachang 发表于 2010-8-18 08:52:57

这是两个页面,Login.aspx——图书馆管理系统登录页面,Login.aspx_2——图书馆管理系统主页,我现在判断的是成功登陆主页。
fanhuiflag就是登陆成功的标志,WCSParam_Text1是系统登录后的参数,不是关联,最后的if语句就是比较这两个参数是否相等,相等则登录成功,这个思路不对吗?

[ 本帖最后由 jiachang 于 2010-8-18 09:23 编辑 ]

jiachang 发表于 2010-8-18 09:58:08

如果登陆不成功时,他就会提示找不到参数 WCSParam_Text1,执行不到 if判断语句那,

xueying1123 发表于 2010-8-18 10:26:11

直接用web_reg_find找你的登录成功标志,web_reg_find就是做验证用的,自己写if做判断岂不是多此一举

jiachang 发表于 2010-8-18 10:52:58

用web_reg_find方法是可以,但我就是想试验一下这种方法是否可以
页: [1]
查看完整版本: 判断成功登陆的方法