51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1913|回复: 7
打印 上一主题 下一主题

关于web_reg_save_param函数问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-7-11 13:58:30 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我要实现的操作是取列表中的最后一条记录,做法如下:
//定义参数
    int i;
//取最后一页的最后一条记录equId,为修改和删除做准备
    web_reg_save_param("equId",
        "LB=<input name=\"listCheck\" type=\"checkbox\" value=\"",
        "RB=\">",
        "Ord=all",
        "Search=body",
        LAST);

    i=atoi(lr_eval_string("{equId_count}"));

//然后用{equId_i}代替最后一条id
web_custom_request("TechEquEditFrame.jsp",
                "URL=http://testsvr:8080/ent/EntInfo/TechEquEditFrame.jsp?equId={equId_i}",
                "Method=GET",
                "Resource=0",
                "RecContentType=text/html",
                "Referer=",
                "Snapshot=t248.inf",
                "Mode=HTTP",
                LAST);
请问,我这样为什么执行不了我要修改的那条记录?错在哪?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2005-7-12 10:56:26 | 只看该作者
谢谢楼上各位的回答,特别是两位版主!
是我理解错误,原来以为只要把 i 取出来,若 i =11,那么equId_i也就=equId_11,那么equId_11里保存的就是我要的记录 id 号,可能是C里面的语言有点区别,要这么麻烦,需要输出和转换
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2005-7-11 19:00:55 | 只看该作者
讨论这个问题首先有个前提!你的关联首先是正确的!
问问题的人首先是想将关联数组的最后一个值取到再付给下个函数!显然问问题的人参数值还没有拿出来就直接付到下个函数当然不行!
wss123:你那个方法是取得当前的参数值,而不是参数数组,那当然是可以的!如果是数组你那个方法当然不行!
happypeach的方法当然也可以!这里有两种做法,你要懂得怎样使用LR的内部变量和外部变量!做法不一样实现的方式当然不一样!
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2005-7-11 17:49:06 | 只看该作者
EntInfo/TechEquEditFrame.jsp?equId={equId_i}",用法错误,上面已经有人写出正确的写法,要加一个字符串处理的过程
你说的可执行完这句:i=atoi(lr_eval_string("{equId_count}"));系统提示:“the string ‘equId_count’ with parameter delimits is not a parameter”,怎么会这样?
你先不要关联队列,你先捉一个,能不能关联上,如果可以,再扩展到两个
//\转意符在我这里显示是人民币的标志
//href='/wm/mail/read.htmlsessionid=0fe692e3f08bc1f6ef924188e70a2c137&uid=10&msgid=10&mbox=ur.u3'>高效、安全、稳定--To: User3</a>

web_reg_save_param("MailList", "LB/ic=href=\'/wm/mail/read.html?sessionid=", "RB=\'>", "Ord=All", LAST);

// check how much mails in the list
        MailCnt=atoi(lr_eval_string("{MailList_count}"));

我这段代码在我的应用中copy出来的,一定可以,我估计是你的ie中可能没有你这段内容,再试试看看
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2005-7-11 17:23:15 | 只看该作者
按斑竹说得~~然后将buffer值和url 使用strcat连接接就可以了

~~
但是按照lz的问题~~lz是用web_reg_save_param关联,按照
fuction reference中web_reg_save_param:
The first match is saved as A_1, the second match is saved as A_2, etc. You can retrieve the total number of matches by using the following term: ParamName_count. For example, to retrieve the total number of matches saved to the parameter array, use
TotalNumberOfMatches=atoi(lr_eval_string("{A_count}"));
这1段,
感觉直接
"URL=http://testsvr:8080/ent/EntInfo/TechEquEditFrame.jsp?equId={equId_count}"就可以。lz的想法也就是取得  equId_count值

ps:参数为web_reg_save_param中ParamNam的话,参数也会红底么?或者根本不能参数是web_reg_save_param中ParamNam?

请斑竹回答~
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2005-7-11 16:55:23 | 只看该作者
你看看{equid_count}是否用的红底字样标识,如无,请检查generator option-->parameterization 中设定的参数边界辅是否是{}.如是,则重现点右键重设参数。
------------------------------------
karenzhang斑竹,我经常用如下格式:
char user1[30];
strcpy(user1,lr_eval_string("<user>"));
直接可以作为字符串赋给user1的,和楼主的做法相同吧.不能这样的吗?

[ Last edited by wss123 on 2005-7-11 at 17:02 ]
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2005-7-11 15:50:22 | 只看该作者
你怎么能这么乱用函数呢?
米在函数中间增加如下几行:
char equip_id[256];
sprintf(equp_id,"{equid_%i}",i);
lr_save_string(lr_eval_string(equip_id),"buffer");
在把buffer这个参数付给下个函数!
回复 支持 反对

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2005-7-11 14:38:19 | 只看该作者
用单步调试,执行完web_reg_save_param这个函数提示成功,可执行完这句:i=atoi(lr_eval_string("{equId_count}"));系统提示:“the string ‘equId_count’ with parameter delimits is not a parameter”,怎么会这样?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-26 18:18 , Processed in 0.069459 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表