Пример #1
0
        public void ShouldContain(string name, double price)
        {
            _universe.Window.Find <Tab>(FindBy.WpfText("Basket")).Select();
            var basketContents = _universe.Window.Find <GridView>("basketOutput");

            Assert.True(basketContents.ContainsRow(name, price.ToString("0.00")));
        }
Пример #2
0
        public void ShouldBeEmpty()
        {
            _universe.Window.Find <Tab>(FindBy.WpfText("Basket")).Select();
            var basketContents = _universe.Window.Find <GridView>("basketOutput");

            Assert.IsTrue(basketContents.IsEmpty());
        }
Пример #3
0
        public static void NotFound(string idOrName, FindBy findBy)
        {
            ElementCache.Clear();
            UIObject ui = findBy == FindBy.Name ? TryFindElement.ByName(idOrName) : TryFindElement.ById(idOrName);

            Verify.IsNull(ui, "Expected not to be able to find element with " + findBy.ToString() + " '" + idOrName + "'");
        }
Пример #4
0
        public static void Click(IWebDriver driver, string element, FindBy elementType)
        {
            switch (elementType)
            {
            case FindBy.Id:
                driver.FindElement(By.Id(element)).Click();
                break;

            case FindBy.Name:
                driver.FindElement(By.Name(element)).Click();
                break;

            case FindBy.Class:
                driver.FindElement(By.ClassName(element)).Click();
                break;

            case FindBy.CssSelector:
                driver.FindElement(By.CssSelector(element)).Click();
                break;

            case FindBy.LinkText:
                driver.FindElement(By.LinkText(element)).Click();
                break;

            default:
                throw new ArgumentException(elementType.ToString() + " elementType not recognized.");
            }
        }
Пример #5
0
        private void ParsePageConfig(PageObjectConfiguration pageObjectConfig)
        {
            PageObjectConfiguration basePage = GetBasePage(pageObjectConfig);

            if (basePage != null)
            {
                ParsePageConfig(basePage);
            }

            foreach (ElementConfiguration ec in pageObjectConfig.Elements)
            {
                string value  = ec.Value;
                FindBy findBy = ec.FindBy;

                if (ec.IsParameterized)
                {
                    Func <string, string[], IWebElement> parameterizedFinder = (str, args) => ParameterizedFindElementBy(value, findBy, args);
                    ec.ParameterizedFinder = parameterizedFinder;
                }
                else
                {
                    Func <string, IWebElement> finder = (str) => FindElementBy(value, findBy);
                    ec.Finder = finder;
                }

                _cachedQueries.Add(ec.Name, ec);
            }

            foreach (var kp in pageObjectConfig.Values)
            {
                pageObjectConfig.Type.GetProperty(kp.Key).SetValue(this, kp.Value, null);
            }
        }
Пример #6
0
        private void MakeFind(object sender, MouseButtonEventArgs e)
        {
            FindBy findBy = null;

            switch ((sender as ComboBoxItem).Name)
            {
            case "findName":
                findBy = FindName;
                break;

            case "findSurname":
                findBy = FindSurname;
                break;

            case "findAge":
                findBy = FindAge;
                break;
            }
            listWorkers.ItemsSource = null;
            listWorkers.Items.Clear();
            findBy();
            if (listWorkers.Items.IsEmpty)
            {
                listWorkers.Items.Add("Not found");
            }
        }
Пример #7
0
        public static bool ClickAndVerifyText(IWebDriver driver, string element, FindBy elementType, string value)
        {
            switch (elementType)
            {
            case FindBy.Id:
                //driver.FindElement(By.Id(element)).Click();
                break;

            case FindBy.Name:
                //driver.FindElement(By.Name(element)).Click();
                break;

            case FindBy.Class:
                //driver.FindElement(By.ClassName(element)).Click();
                break;

            case FindBy.CssSelector:
                var target = driver.FindElement(By.CssSelector(element));
                if (target.Text.Equals(value))
                {
                    target.Click();
                    return(true);
                }
                break;

            case FindBy.LinkText:
                //driver.FindElement(By.LinkText(element)).Click();
                break;

            default:
                throw new ArgumentException(elementType.ToString() + " elementType not recognized.");
            }
            return(false);
        }
        public IEnumerable <IElement> GetChildren()
        {
            FindBy childrenLocator = new FindBy(How.Xpath, "./*");
            IElementSearchConfiguration childrenSearchConfiguration = new SeleniumElementFinder();

            childrenSearchConfiguration.FindBy(childrenLocator);
            return(childrenSearchConfiguration.FindAll());
        }
Пример #9
0
        public void ShouldProvideItsTextByCell()
        {
            _window = LaunchPetShopWindow();
            _window.Find <Tab>(FindBy.WpfText("History")).Select();
            var gridView = _window.Find <GridView>("lastPetsOutput");

            Assert.AreEqual("Dancer", gridView.TextAt(0, 2));
        }
Пример #10
0
        public void ShouldDetermineIfItContainsARowWithTheGivenHeaderAndPropertyCondition()
        {
            _window = LaunchPetShopWindow();
            _window.Find <Tab>(FindBy.WpfText("History")).Select();
            var gridView = _window.Find <GridView>("lastPetsOutput");

            Assert.True(gridView.ContainsRow("Name", FindBy.WpfText("Dancer")));
        }
Пример #11
0
        public void ShouldBeAbleToRetrieveTheRowIndexForARowWithTheGivenHeaderAndPropertyCondition()
        {
            _window = LaunchPetShopWindow();
            _window.Find <Tab>(FindBy.WpfText("History")).Select();
            var gridView = _window.Find <GridView>("lastPetsOutput");

            Assert.AreEqual(2, gridView.IndexOf("Name", FindBy.WpfText("Dancer")));
        }
Пример #12
0
        private void SelectInput(FindBy findBy, string input)
        {
            var element = _driver.FindElement(ThisBy).FindElement(findBy);

            element.FindElement(RadioBy).FindElement(ByMethod.XPath, "..").Click();
            element.FindElement(InputBy).Clear();
            element.FindElement(InputBy).SendKeys(input);
        }
Пример #13
0
        public void ShouldFindWindowByCondition()
        {
            Application application = new ApplicationLauncher().LaunchOrRecycle(EXAMPLE_APP_NAME, EXAMPLE_APP_PATH, Assert.Fail);
            Window      window      = application.FindWindow(new AndCondition(
                                                                 FindBy.WpfName("petShopWindow"), FindBy.ControlType(ControlType.Window)));

            Assert.IsNotNull(window.Element);
        }
Пример #14
0
        public void ShouldBeAbleToRetrieveTheElementReferencedByColumnAndRow()
        {
            _window = LaunchPetShopWindow();
            _window.Find <Tab>(FindBy.WpfText("History")).Select();
            var gridView = _window.Find <GridView>("lastPetsOutput");
            var cell     = gridView.ElementAt <Label>(0, 2);

            Assert.AreEqual("Dancer", cell.Text);
        }
Пример #15
0
        public void ShouldProvideAContextMenuIfItExists()
        {
            var window      = LaunchPetShopWindow();
            var label       = window.Find <Label>(FindBy.WpfText("(Right-click here to copy an existing pet's details)"));
            var contextMenu = label
                              .InvokeContextMenu(FindBy.WpfName("copyPetMenu"));

            contextMenu.Select(contextMenu.Items[0]);
        }
Пример #16
0
        public void ShouldBeAbleToRetrieveTheElementReferencedByARowWithHeaderMatchingAPropertyConditionFromSecondHeader()
        {
            _window = LaunchPetShopWindow();
            _window.Find <Tab>(FindBy.WpfText("History")).Select();
            var gridView = _window.Find <GridView>("lastPetsOutput");
            var cell     = gridView.FindReferencedElement <Label>("Name", FindBy.WpfText("Dancer"), "Price");

            Assert.AreEqual(54.00.ToString("0.00"), cell.Text);
        }
Пример #17
0
        public void ShouldAllowTextToBeRetrievedFromBlock()
        {
            Window window = LaunchPetShopWindow();

            window.Find <Tab>(FindBy.WpfText("History")).Select();
            var block = window.Find <TextBlock>("historyDescription");

            Assert.AreEqual("A short summary of what has already happened:", block.Text);
        }
Пример #18
0
        public void ShouldScrollUntilCheckIsTrue()
        {
            var tab = LaunchPetShopWindow().Find <Tab>(FindBy.WpfText("Accessories"));

            tab.Select();
            var scrollViewer = tab.Find <ScrollViewer>(new PropertyCondition(AutomationElement.IsScrollPatternAvailableProperty, true));

            scrollViewer.ScrollDown(s => s.Contains(FindBy.WpfText("Flea powder")), s => Assert.Fail("Should have found row"));
        }
Пример #19
0
        public void ShouldDetermineIfItContainsARow()
        {
            _window = LaunchPetShopWindow();
            _window.Find <Tab>(FindBy.WpfText("History")).Select();
            var gridView = _window.Find <GridView>("lastPetsOutput");

            Assert.IsTrue(gridView.ContainsRow("Dancer", "Rabbit", 54.00.ToString("0.00"), "False"));
            Assert.IsFalse(gridView.ContainsRow("Prancer", "Reindeer", 30.00.ToString("0.00"), "False"));
        }
Пример #20
0
        public void ShouldProvideAllAvailableText()
        {
            _window = LaunchPetShopWindow();
            _window.Find <Tab>(FindBy.WpfText("History")).Select();
            var gridView = _window.Find <GridView>("lastPetsOutput");

            Assert.AreEqual(3 * 4, gridView.AllText.Length);
            Assert.AreEqual("Dancer", gridView.AllText[2, 0]);
        }
Пример #21
0
        public void ShouldAllowTabToBeSelected()
        {
            var tab = LaunchPetShopWindow().Find <Tab>(FindBy.WpfText("History"));

            Assert.False(tab.HasFocus());

            tab.Select();
            Assert.True(tab.HasFocus());
        }
Пример #22
0
        public void ShouldAllowTextToBeEnteredIntoTheTextBox()
        {
            Window window = LaunchPetShopWindow();

            window.Find <Tab>(FindBy.WpfText("History")).Select();
            var box = window.Find <RichTextBox>("historyInput");

            box.Text = "Gooseberry Bear";
            Assert.AreEqual("Gooseberry Bear", box.Text);
        }
 public Upload(FindBy type, string locator) : base(type, locator)
 {
     try
     {
         Browser.Current.WaitForElementPresent(Locator);
         Browser.Current.ScrollToElement(Locator);
         Element = GetElement();
     }
     catch (NoSuchElementException) {}
 }
Пример #24
0
        public void ShouldHandleFailureToScroll()
        {
            var tab = LaunchPetShopWindow().Find <Tab>(FindBy.WpfText("Accessories"));

            tab.Select();
            var scrollViewer = tab.Find <ScrollViewer>(new PropertyCondition(AutomationElement.IsScrollPatternAvailableProperty, true));
            var complained   = false;

            scrollViewer.ScrollDown(s => false, s => complained = true);
            Assert.True(complained, "Should have handled failure to scroll");
        }
        private DateSelectPartial SendKeysToField(FindBy typeBy, int index, string input)
        {
            var element = _driver.FindElement(ThisBy)
                          .FindElement(typeBy)
                          .FindElements(SelectorsBy)[index];

            element.Click();
            element.Clear();
            element.SendKeys(input);
            return(this);
        }
Пример #26
0
 public PetRegistrySteps ByCopying(string name)
 {
     // Need to click *off* the current text box to save the details
     // This is a Microsoft WPF thing, not a WiPFlash thing.
     _universe.Window.Find <TextBox>("petPriceInput").Element.SetFocus();
     _universe.Window.Find <TextBox>("petNameInput").Element.SetFocus();
     _universe.Window.Find <Label>("copyPetContextTarget")
     .InvokeContextMenu(FindBy.WpfName("copyPetMenu"))
     .Select("Pet[" + name + "]");
     return(this);
 }
Пример #27
0
        public void ShouldFindAllMatchingItemsIfRequested()
        {
            var window    = LaunchPetShopWindow();
            var tabs      = window.FindAll <Tab>(FindBy.ControlType(ControlType.TabItem));
            var tabTitles = tabs.Select(t => t.Title).ToList();

            Assert.Contains("Registration", tabTitles);
            Assert.Contains("History", tabTitles);
            Assert.Contains("Basket", tabTitles);
            Assert.Contains("Accessories", tabTitles);
        }
Пример #28
0
        public void ShouldPassFailureHandlerToChildContainers()
        {
            var container  = LaunchPetShopWindow();
            var complained = true;

            container.HandlerForFailingToFind = s => complained = true;

            var childContainer = container.Find <Tab>(FindBy.WpfText("Basket"));

            childContainer.Find <ComboBox>("Unlikely!");
            Assert.True(complained, "Should have handled failure to find using the given handler");
        }
Пример #29
0
        public void ShouldWaitForTabToBeSelected()
        {
            var tab = LaunchPetShopWindow().Find <Tab>(FindBy.WpfText("History"));

            new Thread(o =>
            {
                Thread.Sleep(100);
                tab.Select();
            }).Start(null);

            Assert.True(tab.WaitFor(
                            (src, e) => tab.HasFocus(),
                            src => Assert.Fail()));
        }
Пример #30
0
        private List <XElement> FindElement(List <XElement> elements, FindBy findBy, string value)
        {
            switch (findBy)
            {
            case FindBy.Text:
                return(FilterElementsByInnerText(elements, null, value, false));

            case FindBy.Class:
                return(FilterElementsByAttributeNameToken(elements, "class", value, false));

            case FindBy.Id:
                return(FilterElementsByAttribute(elements, "id", value, false));

            case FindBy.Name:
                return(FilterElementsByAttribute(elements, "name", value, false));

            case FindBy.Value:
            {
                var newlist = FilterElementsByAttribute(elements, "value", value, false);
                newlist.AddRange(FilterElementsByInnerText(elements, "textarea", value, false));
                newlist.AddRange(FilterElementsByInnerText(elements, "button", value, false));
                return(newlist);
            }

            case FindBy.PartialText:
                return(FilterElementsByInnerText(elements, null, value, true));

            case FindBy.PartialClass:
                return(FilterElementsByAttributeNameToken(elements, "class", value, true));

            case FindBy.PartialId:
                return(FilterElementsByAttribute(elements, "id", value, true));

            case FindBy.PartialName:
                return(FilterElementsByAttribute(elements, "name", value, true));

            case FindBy.PartialValue:
            {
                var newlist = FilterElementsByAttribute(elements, "value", value, true);
                newlist.AddRange(FilterElementsByInnerText(elements, "textarea", value, true));
                newlist.AddRange(FilterElementsByInnerText(elements, "button", value, true));
                return(newlist);
            }

            default:
                return(null);
            }
        }
Пример #31
0
 private IWebElement FindElementBy(string query, FindBy findBy = FindBy.Name)
 {
     switch (findBy)
     {
         case FindBy.Id:
             return _driver.FindElement(By.Id(query));
         case FindBy.Name:
             return _driver.FindElement(By.Name(query));
         case FindBy.XPath:
             return _driver.FindElement(By.XPath(query));
         case FindBy.Href:
             return _driver.FindElement(By.XPath(string.Format("//*[@href='{0}']", query)));
         case FindBy.Value:
             return _driver.FindElement(By.XPath(string.Format("//*[@value='{0}']", query)));
         default:
             throw new NotSupportedException();
     }
 }
Пример #32
0
 public bool ClickElement(FindBy by, string identifier, bool throwExceptionIfNotFound = false)
 {
     bool result = false;
     var element = FindElement(by, identifier, throwExceptionIfNotFound);
     if (element != null)
     {
         element.Click();
         result = true;
     }
     return result;
 }
Пример #33
0
 public ReadOnlyCollection<IWebElement> GetWebElements(FindBy by, string value)
 {
     return GetWebElementsByString(by.ToString(), value);
 }
Пример #34
0
 public IWebElement GetWebElement(FindBy by, string value)
 {
     return GetWebElementByString(by.ToString(), value);
 }
Пример #35
0
 private IWebElement ParameterizedFindElementBy(string paramQuery, FindBy findBy, params string[] args)
 {
     string query = string.Format(paramQuery, args);
     return FindElementBy(query, findBy);
 }
Пример #36
0
 private List<XElement> FindElement(List<XElement> elements, FindBy findBy, string value)
 {
     switch(findBy)
     {
         case FindBy.Text: return FilterElementsByInnerText(elements, null, value, false);
         case FindBy.Class: return FilterElementsByAttribute(elements, "class", value, false);
         case FindBy.Id: return FilterElementsByAttribute(elements, "id", value, false);
         case FindBy.Name: return FilterElementsByAttribute(elements, "name", value, false);
         case FindBy.Value:
             {
                 var newlist = FilterElementsByAttribute(elements, "value", value, false);
                 newlist.AddRange(FilterElementsByInnerText(elements, "textarea", value, false));
                 newlist.AddRange(FilterElementsByInnerText(elements, "button", value, false));
                 return newlist;
             }
         case FindBy.PartialText: return FilterElementsByInnerText(elements, null, value, true);
         case FindBy.PartialClass: return FilterElementsByAttribute(elements, "class", value, true);
         case FindBy.PartialId: return FilterElementsByAttribute(elements, "id", value, true);
         case FindBy.PartialName: return FilterElementsByAttribute(elements, "name", value, true);
         case FindBy.PartialValue:
             {
                 var newlist = FilterElementsByAttribute(elements, "value", value, true);
                 newlist.AddRange(FilterElementsByInnerText(elements, "textarea", value, true));
                 newlist.AddRange(FilterElementsByInnerText(elements, "button", value, true));
                 return newlist;
             }
         default:
             return null;
     }
 }
Пример #37
0
        public ReadOnlyCollection<IWebElement> FindElements(FindBy by, string identifier, bool throwExceptionIfNotFound = false)
        {
            ReadOnlyCollection<IWebElement> result = null;
            if (_instance != null && !string.IsNullOrWhiteSpace(identifier))
            {
                try
                {
                    switch (by)
                    {
                        case FindBy.ClassName:
                            {
                                result = _instance.FindElements(By.ClassName(identifier));
                                break;
                            }
                        case FindBy.CssSelector:
                            {
                                result = _instance.FindElements(By.CssSelector(identifier));
                                break;
                            }
                        case FindBy.Id:
                            {
                                result = _instance.FindElements(By.Id(identifier));
                                break;
                            }
                        case FindBy.LinkText:
                            {
                                result = _instance.FindElements(By.LinkText(identifier));
                                break;
                            }
                        case FindBy.Name:
                            {
                                result = _instance.FindElements(By.Name(identifier));
                                break;
                            }
                        case FindBy.PartialLinkText:
                            {
                                result = _instance.FindElements(By.PartialLinkText(identifier));
                                break;
                            }
                        case FindBy.TagName:
                            {
                                result = _instance.FindElements(By.TagName(identifier));
                                break;
                            }
                        case FindBy.XPath:
                            {
                                result = _instance.FindElements(By.XPath(identifier));
                                break;
                            }
                    }

                }
                catch (NoSuchElementException ex1)
                {
                    if (throwExceptionIfNotFound == true)
                    {
                        throw ex1;
                    }
                    result = null;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            return result;
        }
Пример #38
0
 public WebList(FindBy by, string value)
 {
     this.Self = base.GetWebElement(by, value);
     selection = new SelectElement(Self);
 }
 public static IWebElement FindElement(this IWebElement element, FindBy by, string item, bool throwExceptionIfNotFound = false)
 {
     IWebElement result = null;
     if (element != null && !string.IsNullOrWhiteSpace(item))
     {
         try
         {
             switch (by)
             {
                 case FindBy.ClassName:
                     {
                         result = element.FindElement(By.ClassName(item));
                         break;
                     }
                 case FindBy.CssSelector:
                         {
                             result = element.FindElement(By.CssSelector(item));
                             break;
                         }
                 case FindBy.Id:
                         {
                             result = element.FindElement(By.Id(item));
                             break;
                         }
                 case FindBy.LinkText:
                         {
                             result = element.FindElement(By.LinkText(item));
                             break;
                         }
                 case FindBy.Name:
                         {
                             result = element.FindElement(By.Name(item));
                             break;
                         }
                 case FindBy.PartialLinkText:
                         {
                             result = element.FindElement(By.PartialLinkText(item));
                             break;
                         }
                 case FindBy.TagName:
                         {
                             result = element.FindElement(By.TagName(item));
                             break;
                         }
                 case FindBy.XPath:
                         {
                             result = element.FindElement(By.XPath(item));
                             break;
                         }
             }
             
         }
         catch (NoSuchElementException ex1)
         {
             if (throwExceptionIfNotFound == true)
             {
                 throw ex1;
             }
             result = null;
         }
         catch (Exception ex)
         {
             throw ex;
         }
     }
     return result;
 }
Пример #40
0
 public HtmlResult Find(ElementType elementType, FindBy findBy, string value)
 {
     return GetHtmlResult(FindElement(elementType, findBy, value));
 }
Пример #41
0
 public WebLink(FindBy by, string value)
 {
     self = self.ReturnElementTileEnable(() => base.GetWebElement(by, value));
 }
Пример #42
0
 public HtmlResult Find(string tagName, FindBy findBy, string value)
 {
     return GetHtmlResult(FindElement(FindElements(tagName), findBy, value));
 }
Пример #43
0
 private List<XElement> FindElement(ElementType elementType, FindBy findBy, string value)
 {
     return FindElement(FindElements(elementType), findBy, value);
 }
Пример #44
0
 public bool SelectElementByValue(FindBy by, string item, string valToSet, bool throwExceptionIfNotFound = false)
 {
     bool result = false;
     var element = FindElement(by, item, throwExceptionIfNotFound);
     if (element != null)
     {
         new SelectElement(element).SelectByValue(valToSet);
         result = true;
     }
     return result;
 }
Пример #45
0
 public bool SetText(FindBy by, string item, string textToSet, bool throwExceptionIfNotFound = false )
 {
     bool result = false;
     var element = FindElement(by, item,throwExceptionIfNotFound);
     if (element != null)
     {
         element.Clear();
         element.SendKeys(textToSet);
         result = true;
     }
     return result;
 }
Пример #46
0
        public static string[] FindUdis(Context ctx, FindBy findMethod, string key, string query)
        {
            IntPtr ptr;
            string [] deviceUdis;
            int device_count;

            if(ctx == null) {
                return new string[0];
            }

            switch(findMethod) {
                case FindBy.StringMatch:
                    ptr = Unmanaged.libhal_manager_find_device_string_match(
                        ctx.Raw, key, query, out device_count, IntPtr.Zero);
                    break;
                case FindBy.Capability:
                    ptr = Unmanaged.libhal_find_device_by_capability(ctx.Raw,
                        query, out device_count, IntPtr.Zero);
                    break;
                case FindBy.MatchAll:
                default:
                    ptr = Unmanaged.libhal_get_all_devices(ctx.Raw,
                        out device_count, IntPtr.Zero);
                    break;
            }

            deviceUdis = UnixMarshal.PtrToStringArray(device_count, ptr);
            Unmanaged.libhal_free_string_array(ptr);

            return deviceUdis;
        }
Пример #47
0
        private IWebElement FindElementBy(string query, FindBy findBy = FindBy.Name)
        {
            try
            {
                switch (findBy)
                {
                    case FindBy.Id:
                        return Driver.FindElement(By.Id(query));
                    case FindBy.Name:
                        return Driver.FindElement(By.Name(query));
                    case FindBy.XPath:
                        return Driver.FindElement(By.XPath(query));
                    case FindBy.Href:
                        return Driver.FindElement(By.XPath(string.Format("//*[@href='{0}']", query)));
                    case FindBy.Value:
                        return Driver.FindElement(By.XPath(string.Format("//*[@value='{0}']", query)));
                    case FindBy.LinkText:
                        return Driver.FindElement(By.LinkText(query));
                    case FindBy.PartialLinkText:
                        return Driver.FindElement(By.PartialLinkText(query));
                    case FindBy.ClassName:
                        return Driver.FindElement(By.ClassName(query));
                    default:
                        throw new NotSupportedException();
                }
            }
            catch (Exception exc)
            {
                Log.Info(string.Format("Could not find element with {0} = '{1}'", findBy, query));                
            }

            return null;
        }
Пример #48
0
 public WebCheckBox(FindBy by, string value)
 {
     self = base.GetWebElement(by, value);
 }
Пример #49
0
 public WebInputButton(FindBy by, string value)
 {
     self = base.GetWebElement(by, value);
 }
Пример #50
0
 public WebEdit(FindBy by, string value)
 {
     self = base.GetWebElement(by, value);
 }