如何在Selenium中传递用户名和电子邮件

时间:2014-06-11 19:22:23

标签: c# selenium selenium-webdriver pageobjects

我正在使用C#,Selenium和页面对象模型。

我需要了解如何将测试代码中的用户名和密码传递到我的页面对象中。

我目前的测试示例如下:

[TestMethod]
public void Registeruser()
{
     Registrationpage.GoTo();
     Registrationpage.Enterusername();
     Registrationpage.EnterEmail();
}

从注册页面提取(页面对象)

public static void Enterusername()
{
    Driver.Instance.FindElement(By.Id("MainContent_RegisterUser_CreateUserStepContainer_UserName")).SendKeys("testusername");
}

public static void Email()
{
    Driver.Instance.FindElement(By.Id("MainContent_RegisterUser_CreateUserStepContainer_Email")).SendKeys("testemail");
}

正如您所看到的,目前我已经在我的网页对象sendkeys中进行了委托。

相反,我希望能够在我的测试代码中指定testusernametestemail,这样我就可以改变每次测试中输入的文字。

我理解我需要将这些指定为字符串,但我不太明白如何在页面对象代码中进行此操作,我希望这是有道理的,任何帮助表示赞赏(下面是我想要做的)

[TestMethod]
public void Registeruser()
{
     Registrationpage.GoTo();
     Registrationpage.Enterusername(testusername);
     Registrationpage.EnterEmail(testemail);
}

1 个答案:

答案 0 :(得分:1)

您可能希望更改方法以接受string参数。

public static void Enterusername(string testusername)
{
    Driver.Instance.FindElement(By.Id("MainContent_RegisterUser_CreateUserStepContainer_UserName")).SendKeys(testusername);
}

public static void EnterEmail(string testemail)
{
    Driver.Instance.FindElement(By.Id("MainContent_RegisterUser_CreateUserStepContainer_Email")).SendKeys(testemail);
}

然后用字符串调用方法:

[TestMethod]
public void Registeruser()
{
    Registrationpage.GoTo();
    Registrationpage.Enterusername("user3451887");
    Registrationpage.EnterEmail("user3451887@stackoverflow.com");
}