/// <summary>
        /// Searches for product.
        /// </summary>
        /// <param name="productName">Name of the product.</param>
        public virtual void SearchForProduct(string productName)
        {
            var currentWindowHandle = WrappedDriver.CurrentWindowHandle;

            ProductNameElement.SetValue(productName);
            SearchElement.Click();

            WrappedDriver
            .Wait(TimeSpan.FromSeconds(2))
            .Until(d => !ProductsGrid.IsBusy());

            var firstCheckbox = ProductsGrid
                                .GetCell(0, 0)
                                .FindElement(By.TagName("input"));

            var checkbox = new CheckboxElement(firstCheckbox);

            checkbox.Check(true);
            SaveElement.Click();

            // Wait for the page to close.
            WrappedDriver
            .Wait(TimeSpan.FromSeconds(10))
            .Until(d => !d.WindowHandles.Contains(currentWindowHandle));
        }
        /// <summary>
        /// Sets the name of the product.
        /// </summary>
        /// <param name="productName">Name of the product.</param>
        /// <returns></returns>
        public virtual GeneralInformationComponent SetProductName(string productName)
        {
            ProductNameElement.SetValue(productName);

            return(this);
        }
Exemple #3
0
        /// <summary>
        /// Searches the specified order search model.
        /// </summary>
        /// <param name="orderSearchModel">The order search model.</param>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        public virtual IListPage Search(OrderSearchModel orderSearchModel)
        {
            StartDateComponent.SetValue(orderSearchModel.StartDate);
            EndDateComponent.SetValue(orderSearchModel.EndDate);
            ProductNameElement.SetValue(orderSearchModel.ProductName);
            OrderStatusesComponent.SelectOptions(orderSearchModel.OrderStatuses);
            PaymentStatusesComponent.SelectOptions(orderSearchModel.PaymentStatuses);
            ShippingStatusesComponent.SelectOptions(orderSearchModel.ShippingStatuses);

            if (!String.IsNullOrEmpty(orderSearchModel.StoreName))
            {
                var storeIndex = StoreElement.Options.IndexOf(
                    el => String.Equals(
                        el.TextHelper().InnerText,
                        orderSearchModel.StoreName,
                        StringComparison.Ordinal));

                if (storeIndex == -1)
                {
                    throw new NoSuchElementException();
                }

                StoreElement.SelectByIndex(storeIndex);
            }

            if (!String.IsNullOrEmpty(orderSearchModel.VendorName))
            {
                var vendorIndex = StoreElement.Options.IndexOf(
                    el => String.Equals(
                        el.TextHelper().InnerText,
                        orderSearchModel.VendorName,
                        StringComparison.Ordinal));

                if (vendorIndex == -1)
                {
                    throw new NoSuchElementException();
                }

                VendorElement.SelectByIndex(vendorIndex);
            }

            BillingPhoneNumberElement.SetValue(orderSearchModel.BillingPhone);
            BillingEmailAddressElement.SetValue(orderSearchModel.BillingEmail);
            BillingLastNameElement.SetValue(orderSearchModel.BillingLastName);

            if (!String.IsNullOrEmpty(orderSearchModel.BillingCountryName))
            {
                var billingCountryIndex = BillingCountryElement.Options.IndexOf(
                    el => String.Equals(
                        el.TextHelper().InnerText,
                        orderSearchModel.BillingCountryName,
                        StringComparison.Ordinal));

                if (billingCountryIndex == -1)
                {
                    throw new NoSuchElementException();
                }

                BillingCountryElement.SelectByIndex(billingCountryIndex);
            }

            if (!String.IsNullOrEmpty(orderSearchModel.PaymentMethodName))
            {
                var paymentMethodIndex = PaymentMethodElement.Options.IndexOf(
                    el => String.Equals(
                        el.TextHelper().InnerText,
                        orderSearchModel.PaymentMethodName,
                        StringComparison.Ordinal));

                if (paymentMethodIndex == -1)
                {
                    throw new NoSuchElementException();
                }

                PaymentMethodElement.SelectByIndex(paymentMethodIndex);
            }

            OrderNotesElement.SetValue(orderSearchModel.OrderNotes);

            return(this);
        }