![](/img/trans.png)
[英]Reading Excel file with Selenium WebDriver C# and web form with values
[英]Reading in checkbox values in c# using selenium
嗨,我正在使用c#和硒進行測試自動化項目。 我正在從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();
}
}
顯然,上面的源代碼無法編譯,但是我想知道如何處理此代碼,從而不會以某種方式對復選框進行硬編碼。
FindsBy批注只能將const字符串用作Using參數。 在編譯時也會對此進行評估。
當您不使用頁面工廠時,這是可能的。 您只需找到以下復選框:
string value = "5624";
IWebElement checkbox = driver.FindElement(By.CssSelector("[customid = '"+ value + "']"));
checkbox.Click();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.