嗨,我有一个emun,它将通过if和if语句进行测试。
public enum Test_Criteria
{
Pass,
Warning,
Fail
}
运行if语句后
if (driver.Url.Contains("Postcode.aspx?type=billing&mode=guest"))
{
return Test_Criteria.Pass;
}
else
{
return Test_Criteria.Fail;
}
我无法访问的代码继续进行下面的下一个测试
driver.FindElement(By.Id("Pagecontent_TextBoxPostCode")).SendKeys("#####");
允许程序在返回后继续执行代码的最明智的方法是什么。感谢
答案 0 :(得分:3)
您将同时返回if
和else
子句,这就是为什么您的代码无法在if
语句后到达下一行的原因。如果有任何条件,如果检查失败,您的代码将从该方法返回。这就是您收到错误/警告的原因。
答案 1 :(得分:1)
你的问题是你从这两个分支返回。如果要执行更多代码,则不应返回任何一个代码。
为了测试多个条件,您可以尝试这样的事情:(我假设失败的条件立即停止测试)
var result = Test_Criteria.Pass;
if ( */fail condition*/ )
{
return Test_Criteria.Fail;
}
if ( */another fail condition*/ )
{
return Test_Criteria.Fail;
}
if( */warning condition*/ )
{
result = Test_Criteria.Warning;
}
else if( */another warning condition*/ )
{
result = Test_Criteria.Warning;
}
return result;
答案 2 :(得分:0)
你有两个执行路径,每个都从你的函数返回,所以在你的if-else块之后确实不可能继续。
试试这个:
var urlContains = driver.Url.Contains("Postcode.aspx?type=billing&mode=guest"));
var result = urlContains ? Test_Critera.Pass : Test_Criteria.Fail;
driver.FindElement(By.Id("Pagecontent_TextBoxPostCode")).SendKeys("#####");
//the rest of your code
return result;