В общем в чем задача. Ищу шаблон фреймворка Webdriver+C# с реализацией Page Object. гуглил, гуглил и чото не удалось найти. помогите плиз.
Спасибо
Советую начать с создание драйвера:
public class Driver { private static IWebDriver driverInstance; private Driver() { } public static IWebDriver DriverInstance { get { if (driverInstance == null) { var profile = new FirefoxProfile(); profile.EnableNativeEvents = false; driverInstance = new FirefoxDriver(profile); break; } return driverInstance; } } public static void Close() { if (driverInstance != null) { driverInstance.Quit(); driverInstance = null; } } }
Потом создай базовый тестовый класс от которого тесты будут наследоваться:
public class BaseTest { [TestFixtureSetUp] public static void Init() { XmlConfigurator.Configure(); Driver.DriverInstance.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(20))); Driver.DriverInstance.Manage().Window.Maximize(); } [TestFixtureTearDown] public static void Close() { Driver.Close(); } [SetUp] public void Open() { Driver.DriverInstance.Navigate().GoToUrl(ConfigurationManager.AppSettings["BaseUrl"]); } [TearDown] public void CleanUp() { Driver.DriverInstance.Manage().Cookies.DeleteAllCookies(); } }Потом разбить свой сайт на страницы, выделить в нем какие-то общие элементы которые причущны всем страницам(если такие есть то просто создать класс от которого потом наследоваться):
class OnePage { [FindsBy(How = How.XPath, Using = "//input[@alt='Submit Search']")] private IWebElement _searchSubmitButton; public SearchResultPage() { PageFactory.InitElements(Driver.DriverInstance, this); } public bool Method() { return true; } }
Ну а потом самое простое тесты:
class Example : BaseTest { [Test] public void ExampleTest() { HomePage page = new HomePage(); //Открываем главную страницу SearchPage srch = page.GetSearchPage();//Открываем страницу поиска Assert.IsTrue(srch.Method();//Проверяем то чно надо и проверям рузультат } }
В папке Helper лежат Методы которые тебе будут необходимы много раз. Такие как ожидалки работы с строками или с элементами.