1、遇到的問題如下:
關聯的作用是獲取服務器返回的數據,服務器返回的html代碼如下:
<input data-val="true" data-val-regex="璇瘋緭鍏ユ紜殑鎵嬫満鍙風爜錛岄潪鍖椾含甯傛湰鍦板彿鐮佸墠璇峰姞0錛? data-val-regex-pattern="(((0)|())?(1)[3-9]\d{9})$" data-val-required="璇峰~鍐欐墜鏈哄彿鐮侊紒" id="MobileNumber" name="MobileNumber" type="hidden" value="18280062222" />
<input id="ExpertID" name="ExpertID" type="hidden" value="a7804072-3e9f-4d0c-815b-68df04df7b70" />
我想獲取服務器返回的數據"a7804072-3e9f-4d0c-815b-68df04df7b70",通過手動關聯完成如下圖:
生成的關聯函數為:
//Correlation comment - Do not change!Original value='7e270eeb-3201-409e-ac44-21c674530a25' Name ='CorrelationParameter_1'
web_reg_save_param_ex(
"ParamName=CorrelationParameter_1",
"LB= value=\"",
"RB=\" ",
SEARCH_FILTERS,
"Scope=Body",
"RequestUrl=*/Index*",
LAST);
關聯后並做相關的參數化后,運行腳本,結果發現,獲取到的值是電話號碼,原來是,MobileNumber的左右邊界和ExpertID的左右邊界一模一樣。
解決辦法:
1、首先通過在關聯函數中增加"Ordinal=All",然后調試腳本,發現CorrelationParameter_1列表中沒有我需要的ExpertID,我懷疑左右邊界有問題;
2、修改關聯函數的左邊界,擴大左邊界的范圍,修改后關聯函數如下:
//Correlation comment - Do not change!Original value='value="{CorrelationParameter_1}' Name ='CorrelationParameter_1'
web_reg_save_param_ex(
"ParamName=CorrelationParameter_1",
"LB=type=\"hidden\" value=\"",
"RB=\" ",
"Ordinal=ALL",
SEARCH_FILTERS,
"Scope=Body",
"RequestUrl=*/Index*",
LAST);
獲取到CorrelationParameter_1的列表,發現列表中第二個值是我需要,如下圖:
3、修改關聯函數"Ordinal=ALL"為"Ordinal=2",意思是選取數組中的第二個值,修改后的關聯函數如下:
//Correlation comment - Do not change!Original value='value="{CorrelationParameter_1}' Name ='CorrelationParameter_1'
web_reg_save_param_ex(
"ParamName=CorrelationParameter_1",
"LB=type=\"hidden\" value=\"",
"RB=\" ",
"Ordinal=2",
SEARCH_FILTERS,
"Scope=Body",
"RequestUrl=*/Index*",
LAST);
經過以上做操作后,終於獲取到到了服務器返回的expertid,腳本成功運行通過。
心得:
1、當時懷疑LR的"Ordinal=ALL"參數有bug,獲取不到列表,最后發現原來是左右邊界的問題。
2、調試腳本是只開啟parameter substitation日志就行,如果全開,總是找不到自己需要的日志。
3、如果遇到問題,一定是自己哪里沒做對,不會是系統或者LR的問題。