0
こんにちは、私はC#とセレンを使ってテスト自動化プロジェクトに取り組んでいます。私はExcelファイルから値を読み取っていますが、チェックボックスの値を読み込むのに問題があります。値を動的に読み取る方法がわかりません。単純なケースでシナリオは、ここに私の現在のソースコードです:セレンを使用してC#のチェックボックスの値を読み取る
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();
}
}
上記のソースコードはコンパイルされないことは明らかですが、私はチェックボックスがハードコーディングされないようにこれにアプローチする方法を知りました。