コード例 #1
0
        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);
        }
コード例 #5
0
        /// <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);
        }