我已经写了基本代码,该代码转到特定的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);
}
}
}