【发布时间】:2018-02-28 23:34:06
【问题描述】:
您好,我正在使用 c# 和 selenium 进行测试自动化项目。我正在从 excel 文件中读取值,但是在读取复选框值时遇到问题,我不确定如何动态读取值。在一个简单的情况下,这是我当前的源代码:
class LoginPageObject
{
public LoginPageObject()
{
PageFactory.InitElements(PropertiesCollection.driver, this);
}
[FindsBy(How = How.CssSelector, Using = "[customid = '5624']")]
public IWebElement selectCheckbox { get; set; }
[FindsBy(How = How.Name, Using = "UserName")]
public IWebElement txtUserName { get; set; }
[FindsBy(How = How.Name, Using = "Password")]
public IWebElement txtPassword { get; set; }
[FindsBy(How = How.Name, Using = "Login")]
public IWebElement btnLogin { get; set; }
// Method to Perform Login
public PageObject Login(string userName, string password)
{
//Select checkbox
selectCheckbox.Click();
// Send Username
txtUserName.EnterText(userName);
// Send Password
txtPassword.EnterText(password);
// Click Login Button
btnLogin.ClickSubmit();
return new PageObject();
}
}
这很好用,但是我想采用一种更动态的方法,其中自定义 id 不是硬编码的,如下所示:
class LoginPageObject
{
string value = "5624";
public LoginPageObject()
{
PageFactory.InitElements(PropertiesCollection.driver, this);
}
[FindsBy(How = How.CssSelector, Using = "[customid = '"+ value + "']")]
public IWebElement selectCheckbox { get; set; }
[FindsBy(How = How.Name, Using = "UserName")]
public IWebElement txtUserName { get; set; }
[FindsBy(How = How.Name, Using = "Password")]
public IWebElement txtPassword { get; set; }
[FindsBy(How = How.Name, Using = "Login")]
public IWebElement btnLogin { get; set; }
// Method to Perform Login
public PageObject Login(string userName, string password, string value)
{
//Select checkbox
selectCheckbox.Click();
// Send Username
txtUserName.EnterText(userName);
// Send Password
txtPassword.EnterText(password);
// Click Login Button
btnLogin.ClickSubmit();
return new PageObject();
}
}
很明显上面的源代码不会编译,但我想知道如何处理这个问题,这样复选框就不会以某种方式被硬编码。
【问题讨论】:
标签: c# excel selenium checkbox