如何在现有代码C#硒中使用Page对象模型

时间:2018-06-21 10:24:24

标签: c# selenium selenium-webdriver

我已经写了基本代码,该代码转到特定的URL,然后更改国家/地区和币种。我现在想整理一下代码,使其更易于维护。

我以前没有使用过页面对象模型,因此一直在阅读它。我了解在项目内创建另一个类并为用于初始化Web元素的页面对象创建扩展的基本概念。因此,基本上我所有的FindElements都将存储在一个单独的类中。但是我不确定如何使用已有的现有代码实现

    namespace Exercise1
{
    class Program
    {
        static void Main(string[] args)
        {
            IWebDriver webDriver = new ChromeDriver();
            webDriver.Navigate().GoToUrl("http://www.asos.com/men/");
            webDriver.Manage().Window.Maximize();
            webDriver.FindElement(By.XPath(".//button[@data-testid='country-selector-btn']")).Click();

            WebDriverWait wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(5));
            IWebElement country = wait.Until(ExpectedConditions.ElementExists(By.Id("country")));
            SelectElementFromDropDown(country, "India");


            IWebElement currency = wait.Until(ExpectedConditions.ElementExists(By.Id("currency")));
            SelectElementFromDropDown(currency, "$ USD");

            webDriver.FindElement(By.XPath(".//button[@data-testid='save-country-button']")).Click();

            webDriver.Quit();

        }

        private static void SelectElementFromDropDown(IWebElement ele, string text)
        {
            SelectElement select = new SelectElement(ele);
            select.SelectByText(text);
        }


    }
}

0 个答案:

没有答案