Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 编码Web测试中提取规则的结果获取_C#_Visual Studio 2008_Automated Tests - Fatal编程技术网

C# 编码Web测试中提取规则的结果获取

C# 编码Web测试中提取规则的结果获取,c#,visual-studio-2008,automated-tests,C#,Visual Studio 2008,Automated Tests,我一直在尝试从编码Web测试(VS2008)中的提取规则中提取结果。我想从testA中的标记中提取URL,并将其输入testB的运行参数。在“yield-return-WebTestRequest”语句之后,我一直在单步遍历testA的代码。 这可能吗 代码片段: ExtractAttributeValue(); extractionRule6.TagName = "a"; extractionRule6.AttributeName = "href

我一直在尝试从编码Web测试(VS2008)中的提取规则中提取结果。我想从testA中的标记中提取URL,并将其输入testB的运行参数。在“yield-return-WebTestRequest”语句之后,我一直在单步遍历testA的代码。 这可能吗

代码片段:

ExtractAttributeValue();
            extractionRule6.TagName = "a";
            extractionRule6.AttributeName = "href";
            extractionRule6.MatchAttributeName = "";
            extractionRule6.MatchAttributeValue = "";
            extractionRule6.HtmlDecode = true;
            extractionRule6.Required = true;
            extractionRule6.Index = 0;
            extractionRule6.ContextParameterName = "";
            extractionRule6.ContextParameterName = "fifth";
            request2.ExtractValues += new EventHandler<ExtractionEventArgs>(extractionRule6.Extract);
                  yield return request2;
ExtractAttributeValue();
extractionRule6.TagName=“a”;
extractionRule6.AttributeName=“href”;
extractionRule6.MatchAttributeName=“”;
提取规则6.MatchAttributeValue=“”;
extractionRule6.htmlCode=true;
extractionRule6.Required=真;
提取规则6.索引=0;
extractionRule6.ContextParameterName=“”;
extractionRule6.ContextParameterName=“第五”;
request2.ExtractValues+=新的EventHandler(extractionRule6.Extract);
收益回报请求2;

大卫

我想出来了。在返回WebTestRequest之后直接访问上下文对象。我使用了上下文的TryGetValue方法。代码添加到下面。我的提取规则名为“firstprj”。我还可以使用bool跳过所有剩余的WebTestRequests,如果没有找到URL,该方法将返回bool

        WebTestRequest request2 = new WebTestRequest("http://tramdev/MyProjects.aspx");
        request2.Method = "POST";
        request2.Headers.Add(new WebTestRequestHeader("x-microsoftajax", "Delta=true"));
        FormPostHttpBody request2Body = new FormPostHttpBody();
        request2Body.FormPostParameters.Add("ctl00$cphMain$SM", "ctl00$cphMain$pnlLoadCurtain|ctl00$cphMain$btnSearch");
        request2Body.FormPostParameters.Add("__EVENTTARGET", this.Context["$HIDDEN1.__EVENTTARGET"].ToString());
        request2Body.FormPostParameters.Add("__EVENTARGUMENT", this.Context["$HIDDEN1.__EVENTARGUMENT"].ToString());
        request2Body.FormPostParameters.Add("__LASTFOCUS", this.Context["$HIDDEN1.__LASTFOCUS"].ToString());
        request2Body.FormPostParameters.Add("__VIEWSTATE", this.Context["$HIDDEN1.__VIEWSTATE"].ToString());
        request2Body.FormPostParameters.Add("__EVENTVALIDATION", this.Context["$HIDDEN1.__EVENTVALIDATION"].ToString());
        request2Body.FormPostParameters.Add("ctl00$cphMain$txtProjectName", "");
        request2Body.FormPostParameters.Add("ctl00$cphMain$txtOpenStartDate", "");
        request2Body.FormPostParameters.Add("ctl00$cphMain$txtOpenEndDate", "");
        request2Body.FormPostParameters.Add("ctl00$cphMain$ddlAOR", "--All--");
        request2Body.FormPostParameters.Add("ctl00$cphMain$ddlSubAOR", "--All--");
        request2Body.FormPostParameters.Add("ctl00$cphMain$ddlContact", "0");
        request2Body.FormPostParameters.Add("ctl00$cphMain$lstProjectStatus", "Applied for Charter");
        request2Body.FormPostParameters.Add("ctl00$cphMain$gvPrjSearch$ctl02$txtstatus", "");
        request2Body.FormPostParameters.Add("ctl00$cphMain$gvPrjSearch$ctl03$txtstatus", "");
        request2Body.FormPostParameters.Add("ctl00$cphMain$gvPrjSearch$ctl06$txtstatus", "");
        request2Body.FormPostParameters.Add("__ASYNCPOST", "true");
        request2Body.FormPostParameters.Add("ctl00$cphMain$btnSearch", "Search");
        request2.Body = request2Body;
        ExtractAttributeValue extractionRule2 = new ExtractAttributeValue();
        extractionRule2.TagName = "a";
        extractionRule2.AttributeName = "href";
        extractionRule2.MatchAttributeName = "";
        extractionRule2.MatchAttributeValue = "";
        extractionRule2.HtmlDecode = true;
        extractionRule2.Required = true;
        extractionRule2.Index = 5;
        extractionRule2.ContextParameterName = "";
        extractionRule2.ContextParameterName = "firstprj";
        request2.ExtractValues += new EventHandler<ExtractionEventArgs>(extractionRule2.Extract);
        yield return request2;
        request2 = null;

        // get prjId of first record in project list (href in extracted attribute value)
        bool urlFound;
        object firstProjectUrlObj;
        string prjId;

        urlFound = Context.TryGetValue("firstprj", out firstProjectUrlObj);
WebTestRequest2=新的WebTestRequest(“http://tramdev/MyProjects.aspx");
request2.Method=“POST”;
Add(新的WebTestRequestHeader(“x-microsoftajax”,“Delta=true”);
FormPostHttpBody request2Body=新FormPostHttpBody();
request2Body.FormPostParameters.Add(“ctl00$cphMain$SM”、“ctl00$cphMain$PNLLOADDEVENT | ctl00$cphMain$BTN搜索”);
request2Body.FormPostParameters.Add(“\uu EVENTTARGET”,this.Context[“$HIDDEN1.\uu EVENTTARGET”].ToString());
request2Body.FormPostParameters.Add(“\uu EVENTARGUMENT”,this.Context[“$HIDDEN1.\uu EVENTARGUMENT”].ToString());
request2Body.FormPostParameters.Add(“\uu LASTFOCUS”,this.Context[“$HIDDEN1.\uu LASTFOCUS”].ToString());
request2Body.FormPostParameters.Add(“\uu VIEWSTATE”,this.Context[“$HIDDEN1.\uu VIEWSTATE”].ToString());
request2Body.FormPostParameters.Add(“\uu EVENTVALIDATION”,this.Context[“$HIDDEN1.\uu EVENTVALIDATION”].ToString());
request2Body.FormPostParameters.Add(“ctl00$cphMain$txtProjectName,”);
request2Body.FormPostParameters.Add(“ctl00$cphMain$txtOpenStartDate,”);
request2Body.FormPostParameters.Add(“ctl00$cphMain$txtopennddate”,”);
request2Body.FormPostParameters.Add(“ctl00$cphMain$ddlAOR”、“--All--”)命令;
request2Body.FormPostParameters.Add(“ctl00$cphMain$ddlsubator”,“--All--”;
request2Body.FormPostParameters.Add(“ctl00$cphMain$ddlContact”,“0”);
request2Body.FormPostParameters.Add(“ctl00$cphMain$lstProjectStatus”,“申请特许”);
request2Body.FormPostParameters.Add(“ctl00$cphMain$gvPrjSearch$ctl02$txtstatus”,”);
request2Body.FormPostParameters.Add(“ctl00$cphMain$gvPrjSearch$ctl03$txtstatus”,”);
request2Body.FormPostParameters.Add(“ctl00$cphMain$gvPrjSearch$ctl06$txtstatus”,”);
request2Body.FormPostParameters.Add(“\uu ASYNCPOST”,“true”);
request2Body.FormPostParameters.Add(“ctl00$cphMain$btnSearch”,“Search”);
request2.Body=request2Body;
ExtractAttributeValue extractionRule2=新的ExtractAttributeValue();
extractionRule2.TagName=“a”;
extractionRule2.AttributeName=“href”;
extractionRule2.MatchAttributeName=“”;
extractionRule2.MatchAttributeValue=“”;
extractionRule2.htmlCode=true;
extractionRule2.Required=真;
提取规则2.索引=5;
extractionRule2.ContextParameterName=“”;
extractionRule2.ContextParameterName=“firstprj”;
request2.ExtractValues+=新的EventHandler(extractionRule2.Extract);
收益回报请求2;
request2=null;
//获取项目列表中第一条记录的prjId(提取的属性值中的href)
布尔发现;
object firstProjectUrlObj;
字符串prjId;
urlFound=Context.TryGetValue(“firstprj”,out firstProjectUrlObj);