如何通过C#转换Selenium Locator中的Selenium IWebElement?

时间:2016-12-15 16:30:56

标签: c# selenium automated-tests pageobjects

如何在Locator Selenium WebDriver页面对象中转换IWebElement?

我这样工作:

using OpenQA.Selenium.Support.PageObjects;
        [FindsBy(How = How.Id, Using = "user")]
        public IWebElement txtUser { get; set; }

        public void fillUserField(string user)
        {
           wait.Until(ExpectedConditions.ElementIsVisible(By.Id("user")));
           txtUser.SendKeys(user);
        }

我不想重复ID"用户"在等待。

我不这样做:

    public void fillUserField(string user)
    {   // TO DO - Convert IWebElement in Locator (BY)
        //Argument1: Cannot convert from 'OpenQA.Selenium.IWebElement' to 'OpenQA.Selenium.By'  
        wait.Until(ExpectedConditions.**ElementIsVisible(txtUser)**);
        txtUser.SendKeys(user);
    }

有可能吗?谢谢!

1 个答案:

答案 0 :(得分:-1)

您可以在班级顶部声明一个定位器。

public By userLocator = By.Id("user");

然后像

一样使用它
wait.Until(ExpectedConditions.ElementIsVisible(userLocator));