簡體   English   中英

使用硒讀取C#中的復選框值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM