public void TestStartup() { driver = webDriverFactory.CreateDriver( MajorWebDriver.Chrome, WindowSize.DefaultDesktop); var serviceCollection = new ServiceCollection(); serviceCollection.AddSingleton(driver); serviceCollection.AddSingleton(new PageOptions { Url = Startup.ServerUrl }); pageObjectFactory = new PageObjectFactory(serviceCollection); var homePage = pageObjectFactory.PreparePage <HomePage>(); widgetPage = homePage.GoToWidget( "Bootstrap", "4.1", "NavsTab"); navsTabComponent = pageObjectFactory.PrepareComponent( new NavsTabComponent <WidgetPage>( By.CssSelector(".container.body-content"), Array.Empty <ILoadableComponent>(), driver, new NavsTabComponentConfiguration(), widgetPage)); }
/// <summary> /// Initializes a new instance of the <see cref="_CreateOrUpdatePage"/> class. /// </summary> /// <param name="basePage">The base page.</param> /// <param name="pageObjectFactory">The page object factory.</param> /// <param name="driver">The driver.</param> /// <exception cref="ArgumentNullException"> /// basePage /// or /// pageObjectFactory /// </exception> public _CreateOrUpdatePage(IBasePage basePage, IPageObjectFactory pageObjectFactory, IWebDriver driver) : base(driver) { this.basePage = basePage ?? throw new ArgumentNullException(nameof(basePage)); this.pageObjectFactory = pageObjectFactory ?? throw new ArgumentNullException(nameof(pageObjectFactory)); Tabs = new NavsTabComponent <_CreateOrUpdatePage>( By.CssSelector("#product-form"), new ILoadableComponent[] { }, WrappedDriver, new NavsTabComponentConfiguration { ActiveTabContentElementSelector = By.CssSelector(".tab-content .tab-pane.active"), ActiveTabHeaderElementSelector = By.CssSelector(".nav-tabs li.active"), ActiveTabHeaderNameSelector = By.CssSelector(".nav-tabs li.active"), TabContentElementsSelector = By.CssSelector(".tab-content .tab-pane"), TabHeaderElementsSelector = By.CssSelector(".nav-tabs li"), TabHeaderNamesSelector = By.CssSelector(".nav-tabs li") }, this); }
/// <summary> /// Initializes a new instance of the <see cref="EditPage"/> class. /// </summary> /// <param name="basePage">The base page.</param> /// <param name="pageObjectFactory">The page object factory.</param> /// <param name="driver">The driver.</param> /// <param name="pageSettings">The page settings.</param> public EditPage(IBasePage basePage, IPageObjectFactory pageObjectFactory, IWebDriver driver, PageSettings pageSettings) : base(driver, new Uri(pageSettings.BaseUrl, "Admin"), new UriTemplate("Order/Edit/{id}")) { this.basePage = basePage; this.pageObjectFactory = pageObjectFactory; InfoTab = new OrderDetailsInfoComponent( By.CssSelector("#tab-info"), WrappedDriver, this); Tabs = new NavsTabComponent <IEditPage>( By.CssSelector(".nav-tabs.nav"), new ILoadableComponent[] { InfoTab }, WrappedDriver, new NavsTabComponentConfiguration(), this); }
/// <summary> /// Initializes a new instance of the <see cref="EditPage"/> class. /// </summary> /// <param name="basePage"></param> /// <param name="pageObjectFactory"></param> /// <param name="driver"></param> /// <param name="pageSettings"></param> public EditPage(IBasePage basePage, IPageObjectFactory pageObjectFactory, IWebDriver driver, PageSettings pageSettings) : base(driver, pageSettings.AdminBaseUrl, new UriTemplate("Product/Edit/{id}")) { this.basePage = basePage; this.pageObjectFactory = pageObjectFactory; AdvancedOptions = new EditorSettingsComponent( advancedSwitchSelector, settingsBySelector, new EditorSettingsComponentConfiguration(), WrappedDriver); Tabs = new NavsTabComponent <IEditPage>( navsTabComponentSelector, new ILoadableComponent[] { GeneralInfoTab }, WrappedDriver, new NavsTabComponentConfiguration { ActiveTabContentElementSelector = By.CssSelector(".tab-content .tab-pane.active"), ActiveTabHeaderElementSelector = By.CssSelector(".nav-tabs > .active"), ActiveTabHeaderNameSelector = By.CssSelector(".nav-tabs > .active > a"), TabHeaderElementsSelector = By.CssSelector(".nav-tabs > li"), TabHeaderNamesSelector = By.CssSelector(".nav-tabs > li > a") }, this); GeneralInfoTab = new ProductInfoComponent( productInfoComponentSelector, this, WrappedDriver); }
/// <summary> /// Initializes a new instance of the <see cref="EditPage"/> class. /// </summary> /// <param name="basePage">The base page.</param> /// <param name="pageObjectFactory">The page object factory.</param> /// <param name="driver">The driver.</param> /// <param name="pageSettings">The page settings.</param> public EditPage(IBasePage basePage, IPageObjectFactory pageObjectFactory, IWebDriver driver, PageSettings pageSettings) : base(driver, new Uri(pageSettings.BaseUrl, "/Admin"), new UriTemplate("Customer/Edit/{id}")) { this.basePage = basePage ?? throw new ArgumentNullException(nameof(basePage)); this.pageObjectFactory = pageObjectFactory ?? throw new ArgumentNullException(nameof(pageObjectFactory)); InfoTab = new _CreateOrUpdateInfoComponent( By.CssSelector("#tab-info"), pageObjectFactory, WrappedDriver); OrdersTab = new _CreateOrUpdateOrdersComponent( By.CssSelector("#tab-orders"), pageObjectFactory, WrappedDriver); AddressesTab = new _CreateOrUpdateAddressesComponent( By.CssSelector("#tab-address"), pageObjectFactory, WrappedDriver); CurrentShoppingCartAndWishlistTab = new _CreateOrUpdateCurrentShoppingCartComponent( By.CssSelector("#tab-cart"), pageObjectFactory, WrappedDriver); ActivityLogTab = new _CreateOrUpdateActivityLogComponent( By.CssSelector("#tab-activitylog"), pageObjectFactory, driver); ImpersonateTab = new _CreateOrUpdateImpersonateComponent( By.CssSelector("#tab-impersonate"), pageObjectFactory, driver); Tabs = new NavsTabComponent <IEditPage>( By.CssSelector("#customer-edit"), new ILoadableComponent[] { InfoTab, OrdersTab, AddressesTab, CurrentShoppingCartAndWishlistTab, ActivityLogTab, ImpersonateTab }, WrappedDriver, new NavsTabComponentConfiguration { ActiveTabContentElementSelector = By.CssSelector(".tab-content .tab-pane.active"), ActiveTabHeaderElementSelector = By.CssSelector(".nav-tabs li.active"), ActiveTabHeaderNameSelector = By.CssSelector(".nav-tabs li.active"), TabContentElementsSelector = By.CssSelector(".tab-content .tab-pane"), TabHeaderElementsSelector = By.CssSelector(".nav-tabs li"), TabHeaderNamesSelector = By.CssSelector(".nav-tabs li") }, this); }