如何在此方法中递增结果关键字? 在硒 C# 中


private SendGridCompleteRegistrationEmail WaitForBlobEmail(AzureStorageBlobClient blobClient, string containerName, string fileName)
{
int i = 0;
SendGridCompleteRegistrationEmail result = null;
while ((i < 120) && (result == null)) 
{
System.Threading.Thread.Sleep(1000);
result = blobClient.GetJsonBlobContent<SendGridCompleteRegistrationEmail>(containerName, fileName).Result;
i++;
}
Assert.IsNotNull(result, "Failed to retrieve json message for " + fileName + " from " + containerName + " blob");
return result;
}

每次使用它时,我都希望返回一个新的关键字结果,result2等

[TestMethod]
[DataRow("Manager", "testadmin@markerstudy.com", new string[] { "Foody Fleet" } )]
[DataRow("Manager", "fleetmanager@visiontrack.com", new string[] { "Foody Fleet", "Fleetingly Employed" })]
[TestCategory("UserMgt")]
public void CompleteRegProcessPass_dom(string role, string emailID, string[] fleetNames)
{
//is emailID registered if not register
var blobClient = new AzureStorageBlobClient(AzureStorageBlobClient);
_regRep.btnAddUser.Click();
FilterUserTableByEmail(emailID);
if (FilterUserTableByEmail(emailID) == true)
{
//No need to register
}
else
{
//must register
objCommon.EnterText(_regRep.firstNameAdd, userName);
objCommon.EnterText(_regRep.lastNameAdd, "Smithy");
objCommon.EnterText(_regRep.userEmailAdd, emailID);
objCommon.EnterText(_regRep.userTelephoneAdd, "12345678901");
objCommon.Exists(_regRep.userRoleManager(role), 10);
objCommon.ScrollInToViewAndClick(_regRep.userRoleManager(role));
//objCommon.Exists(_regRep.chooseFleet, 5);
for (int i = 0; i < fleetNames.Count(); i++)
{
objCommon.ScrollInToViewAndClick(_regRep.chooseFleet(fleetNames[i]));
}

objCommon.Click(_regRep.btnSaveUser);
System.Threading.Thread.Sleep(1000);

FilterUserTableByEmail(emailID);


var result = WaitForBlobEmail(blobClient, "complete-registration", $"{emailID}.json");
Assert.IsNotNull(result, "Failed to retrieve json message from complete-registration blob");
objCommon.HoverAndClick(_regRep.UserIcon, _regRep.LogOutLink, driver);
System.Threading.Thread.Sleep(2000);
driver.Navigate().GoToUrl(result.TokenUrl);
System.Threading.Thread.Sleep(2000);
Actions builder1 = new Actions(driver);
builder1.MoveToElement(driver.FindElement(By.XPath("//div[@class='vt-login-page__footer']/span"))).Click().Build().Perform();

System.Threading.Thread.Sleep(2000);
driver.FindElement(By.Id("email")).SendKeys(emailID);
driver.FindElement(By.XPath("//input[@id='newPassword']")).SendKeys("cy!NbZtnzAs4T&");
driver.FindElement(By.XPath("//input[@id='confirmPassword']")).SendKeys("cy!NbZtnzAs4T&");
driver.FindElement(By.XPath("//button[text()='Set Password']")).Click();
if (driver.FindElement(By.XPath("//h1[text()='Complete Registration...']")).Displayed)
{
Assert.IsTrue(driver.FindElement(By.XPath("//h1[text()='Complete Registration...']")).Displayed == true);
}
else
{
Console.WriteLine("Registration completed successfully.");
}
}
objCommon.EnterText(_regRep.firstNameAdd, userName);
objCommon.EnterText(_regRep.lastNameAdd, "Smithy");
objCommon.EnterText(_regRep.userEmailAdd, emailID);
objCommon.EnterText(_regRep.userTelephoneAdd, "12345678901");
objCommon.Exists(_regRep.userRoleManager(role), 10);
objCommon.ScrollInToViewAndClick(_regRep.userRoleManager(role));
//objCommon.Exists(_regRep.chooseFleet, 5);
for (int i = 0; i < fleetNames.Count(); i++)
{ 
objCommon.ScrollInToViewAndClick(_regRep.chooseFleet(fleetNames[i]));
}

objCommon.Click(_regRep.btnSaveUser);
System.Threading.Thread.Sleep(1000);

FilterUserTableByEmail(emailID);

var result = WaitForBlobEmail(blobClient, "complete-registration", $"{emailID}.json");
Assert.IsNotNull(result, "Failed to retrieve json message from complete-registration blob");
objCommon.HoverAndClick(_regRep.UserIcon, _regRep.LogOutLink, driver);
System.Threading.Thread.Sleep(2000);
driver.Navigate().GoToUrl(result.TokenUrl);
System.Threading.Thread.Sleep(2000);
Actions builder = new Actions(driver);
builder.MoveToElement(driver.FindElement(By.XPath("//div[@class='vt-login-page__footer']/span"))).Click().Build().Perform();

System.Threading.Thread.Sleep(2000);
driver.FindElement(By.Id("email")).SendKeys(emailID);
driver.FindElement(By.XPath("//input[@id='newPassword']")).SendKeys("cy!NbZtnzAs4T&");
driver.FindElement(By.XPath("//input[@id='confirmPassword']")).SendKeys("cy!NbZtnzAs4T&");
driver.FindElement(By.XPath("//button[text()='Set Password']")).Click();
if (driver.FindElement(By.XPath("//h1[text()='Complete Registration...']")).Displayed)
{
Assert.IsTrue(driver.FindElement(By.XPath("//h1[text()='Complete Registration...']")).Displayed == true);
}
else
{
Console.WriteLine("Registration completed successfully.");
}

}

每次调用原始方法时,反过来说,我们可以计算它以使其在主要测试方法中唯一吗? 我遇到的问题是我需要注册登录凭据,并且它们使用关键字"result"。 请帮我写正确的代码?

您可以创建一个列表,并将从该函数返回的结果值添加到该列表中。这样,您将在每次运行中获得函数返回的值。

List<SendGridCompleteRegistrationEmail> results = new List<SendGridCompleteRegistrationEmail>();
SendGridCompleteRegistrationEmail result = WaitForBlobEmail(blobClient, "complete-registration", $"{emailID}.json");
results.Add(result);

最新更新