之前登陆WebTours网站中提示错误的session,无法登录,那是因为在登录时网站会给你一个session编码,你给与的session编码与它给你的不一致,所以无法登录。
// 去获取上一个请求中给与的session编码并赋予变量
// 实时获取值得方式:关联
// 函数名:web_reg_save_param();------>为了获取上一请求中响应的usersession值
// 该关联函数:带有reg字样,凡是带有reg字样的函数我们都成为注册型函数
// 注册型函数的特点:哪个请求的响应数据有我们需要的数据,那么就放在请求的前面
可以通过插入,新建步骤来找到该函数
fiddler查询结果
定位变量后加入花括号引用变量即可
Action()
{
//web_reg_save_param()
web_reg_save_param("session",
"LB=name=userSession value=",
"RB=>",
"Ord=1",
LAST);
web_url("打开网站","URL=http://192.168.226.146:1080/WebTours/",LAST);
//去获取上一个请求中给与的session编码并赋予变量
//实时获取值得方式:关联
// 函数名:web_reg_save_param();------>为了获取上一请求中响应的usersession值
// 该关联函数:带有reg字样,凡是带有reg字样的函数我们都成为注册型函数
// 注册型函数的特点:哪个请求的响应数据有我们需要的数据,那么就放在请求的前面
lr_output_message("%s",lr_eval_string("{session}"));
web_custom_request("登陆",
"URL=http://192.168.226.146:1080/WebTours/login.pl",
"Method=POST",
"TargetFrame=",
"Resource=0",
"Referer=",
"Mode=HTML",
"Body=userSession={session}&username=jojo&password=bean&login.x=65&login.y=3&JSFormSubmit=off",
LAST);
/*
web_submit_data("web_submit_data",
"Action=http://192.168.226.146:1080/WebTours/login.pl",
"Method=POST",
"TargetFrame=",
"Referer=",
"Mode=HTML",
ITEMDATA,
"Name=userSession", "Value={session}", ENDITEM,
"Name=username", "Value=jojo", ENDITEM,
"Name=password", "Value=bean", ENDITEM,
"Name=JSFormSubmit", "Value=off", ENDITEM,
"Name=login.x", "Value=49", ENDITEM,
"Name=login.y", "Value=13", ENDITEM,
LAST);
*/
return 0;
}
————————————————————————————————————————————————————————
高级关联(取多个参数)
还是以该订票案例为例,中间有一个订购时间的页面,页面中有四个时段参数,我们来捕获它们。
还是需要之前使用到的那个函数
代码
Action()
{
int arrSize;
//int two;
char * value;
//web_reg_save_param()
web_reg_save_param("session",
"LB=name=userSession value=",
"RB=>",
"Ord=1",
LAST);
web_url("打开网站","URL=http://192.168.226.146:1080/WebTours/",LAST);
//去获取上一个请求中给与的session编码并赋予变量
//实时获取值得方式:关联
// 函数名:web_reg_save_param();------>为了获取上一请求中响应的usersession值
// 该关联函数:带有reg字样,凡是带有reg字样的函数我们都成为注册型函数
// 注册型函数的特点:哪个请求的响应数据有我们需要的数据,那么就放在请求的前面
lr_output_message("%s",lr_eval_string("{session}"));
web_custom_request("登陆",
"URL=http://192.168.226.146:1080/WebTours/login.pl",
"Method=POST",
"TargetFrame=",
"Resource=0",
"Referer=",
"Mode=HTML",
"Body=userSession={session}&username=jojo&password=bean&login.x=65&login.y=3&JSFormSubmit=off",
LAST);
web_url("点击订票",
"URL=http://192.168.226.146:1080/WebTours/welcome.pl?page=search",
"TargetFrame=",
"Resource=0",
"Referer=",
"Mode=HTML",
LAST);
//下面请求有返回给我多个时段参数,所以我们需要在这里加入注册函数
web_reg_save_param("flytime",
"LB=<input type = radio name=outboundFlight value=",
"RB=>",
"Ord=ALL",
LAST);
web_custom_request("选择去哪并开始订票",
"URL=http://192.168.226.146:1080/WebTours/reservations.pl",
"Method=POST",
"TargetFrame=",
"Resource=0",
"Referer=",
"Mode=HTML",
"Body=advanceDiscount=0&depart=Denver&departDate=08%2F07%2F2019&arrive=London&returnDate=08%2F08%2F2019&numPassengers=1&seatPref=None&seatType=Coach&findFlights.x=47&findFlights.y=11&.cgifields=roundtrip&.cgifields=seatType&.cgifields=seatPref",
LAST);
//原理还是全部取出放到了一个数组里,所以还是那样操作数组那样操作
//arrSize = lr_paramarr_len("flytime");
//three = lr_paramarr_random("flytime");
//这个下标是从1开始的
value = lr_paramarr_idx("flytime",2);
//这样定义的value还不是变量,得使用下面的函数保存
lr_save_string(value,"value");
lr_output_message("%s",lr_eval_string("{value}"));
/* web_custom_request("选择时段确认",
"URL=http://192.168.226.146:1080/WebTours/reservations.pl",
"Method=POST",
"TargetFrame=",
"Resource=0",
"Referer=",
"Mode=HTML",
"Body=outboundFlight={value}&numPassengers=1&advanceDiscount=0&seatType=Coach&seatPref=None&reserveFlights.x=62&reserveFlights.y=7",
LAST);
*/
//上面那个不行,还得转符号
web_submit_data("选择时段确认",
"Action=http://192.168.226.146:1080/WebTours/reservations.pl",
"Method=POST",
"TargetFrame=",
"Referer=",
"Mode=HTML",
ITEMDATA,
"Name=outboundFlight", "Value={value}", ENDITEM,
"Name=numPassengers", "Value=1", ENDITEM,
"Name=advanceDiscount", "Value=0", ENDITEM,
"Name=seatType", "Value=Coach", ENDITEM,
"Name=seatPref", "Value=None", ENDITEM,
"Name=reserveFlights.x", "Value=62", ENDITEM,
"Name=reserveFlights.y", "Value=7", ENDITEM,
LAST);
web_custom_request("继续订票Last",
"URL=http://192.168.226.146:1080/WebTours/reservations.pl",
"Method=POST",
"TargetFrame=",
"Resource=0",
"Referer=",
"Mode=HTML",
"Body=firstName=Joseph&lastName=Marshall&address1=234+Willow+Drive&address2=San+Jose%2FCA%2F94085&pass1=Joseph+Marshall&creditCard=123&expDate=123&saveCC=on&oldCCOption=on&numPassengers=1&seatType=Coach&seatPref=None&outboundFlight=022%3B320%3B08%2F07%2F2019&advanceDiscount=0&returnFlight=&JSFormSubmit=off&buyFlights.x=57&buyFlights.y=6&.cgifields=saveCC",
LAST);
return 0;
}