public void ShouldNotThrowIfElementBecomesStale()
        {
            Mock <IAllDriver> driver = new Mock <IAllDriver>();

            Mock <IAllElement> elem1 = new Mock <IAllElement>();
            Mock <IAllElement> elem2 = new Mock <IAllElement>();
            Mock <IAllElement> elem3 = new Mock <IAllElement>();
            Mock <IAllElement> elem4 = new Mock <IAllElement>();
            var elems12 = new List <IWebElement>()
            {
                elem1.Object, elem2.Object
            }.AsReadOnly();
            var elems34 = new List <IWebElement>()
            {
                elem3.Object, elem4.Object
            }.AsReadOnly();

            driver.Setup(_ => _.FindElements(by.Mechanism, by.Criteria)).Returns(elems12);
            elem1.Setup(_ => _.FindElements(by2)).Throws(new StaleElementReferenceException());
            elem2.Setup(_ => _.FindElements(by2)).Returns(elems34);

            ByChained byChained = new ByChained(by, by2);

            Assert.That(byChained.FindElements(driver.Object), Is.EquivalentTo(elems34));
            driver.Verify(_ => _.FindElements(by.Mechanism, by.Criteria), Times.Once);
            elem1.Verify(_ => _.FindElements(by2), Times.Once);
            elem2.Verify(_ => _.FindElements(by2), Times.Once);
        }
        public void FindElementsZeroBy()
        {
            Mock <IAllDriver> driver = new Mock <IAllDriver>();

            ByChained byChained = new ByChained();

            Assert.That(byChained.FindElements(driver.Object), Is.EqualTo(new List <IWebElement>().AsReadOnly()));
        }
        public void FindElements_TwoBys_ShouldReturnZero()
        {
            driver.Url = nestedPage;
            driver.Navigate();

            var by = new ByChained(By.Name("classes"), By.CssSelector(".NotFound"));

            Assert.AreEqual(0, by.FindElements(driver).Count);
        }
        public void FindElements_ShouldReturnMultiple()
        {
            driver.Url = nestedPage;
            driver.Navigate();

            var by = new ByChained(By.Name("div1"));

            Assert.AreEqual(4, by.FindElements(driver).Count);
        }
        public void FindElementsNotFound_ShouldBeZero()
        {
            driver.Url = nestedPage;
            driver.Navigate();

            var by = new ByChained(By.Name("NotFoundAtAll"));

            Assert.AreEqual(0, by.FindElements(driver).Count);
        }
        public void FindElements_TwoBys_ShouldReturnMultiple()
        {
            driver.Url = nestedPage;
            driver.Navigate();

            var by = new ByChained(By.Name("classes"), By.CssSelector(".one"));

            Assert.That(by.FindElements(driver).Count, Is.EqualTo(2));
        }
        public void FindElementsOneByEmpty()
        {
            Mock <IAllDriver> driver = new Mock <IAllDriver>();
            var elems = new List <IWebElement>().AsReadOnly();

            driver.Setup(_ => _.FindElements(by.Mechanism, by.Criteria)).Returns(elems);

            ByChained byChained = new ByChained(by);

            Assert.That(byChained.FindElements(driver.Object), Is.EqualTo(elems));
        }
Beispiel #8
0
        public void FindElementsOneByEmpty()
        {
            Mock <IAllDriver> driver = new Mock <IAllDriver>();
            var elems = new List <IWebElement>().AsReadOnly();

            driver.Setup(_ => _.FindElementsByName(It.Is <string>(x => x == "cheese"))).Returns(elems);

            ByChained by = new ByChained(By.Name("cheese"));

            Assert.That(by.FindElements(driver.Object), Is.EqualTo(elems));
        }
        public void FindElementsOneBy()
        {
            Mock <IAllDriver>  driver = new Mock <IAllDriver>();
            Mock <IAllElement> elem1  = new Mock <IAllElement>();
            Mock <IAllElement> elem2  = new Mock <IAllElement>();
            var elems12 = new List <IWebElement>()
            {
                elem1.Object, elem2.Object
            }.AsReadOnly();

            driver.Setup(_ => _.FindElements(by.Mechanism, by.Criteria)).Returns(elems12);

            ByChained byChained = new ByChained(by);

            Assert.That(elems12, Is.EqualTo(byChained.FindElements(driver.Object)));
            driver.Verify(_ => _.FindElements(by.Mechanism, by.Criteria), Times.Once);
        }
Beispiel #10
0
        public void FindElementsOneBy()
        {
            Mock <IAllDriver>  driver = new Mock <IAllDriver>();
            Mock <IAllElement> elem1  = new Mock <IAllElement>();
            Mock <IAllElement> elem2  = new Mock <IAllElement>();
            var elems12 = new List <IWebElement>()
            {
                elem1.Object, elem2.Object
            }.AsReadOnly();

            driver.Setup(_ => _.FindElementsByName(It.Is <string>(x => x == "cheese"))).Returns(elems12);

            ByChained by = new ByChained(By.Name("cheese"));

            Assert.AreEqual(by.FindElements(driver.Object), elems12);
            driver.Verify(_ => _.FindElementsByName("cheese"), Times.Once);
        }
        public void FindElementsTwoByEmptyChild()
        {
            Mock <IAllDriver> driver = new Mock <IAllDriver>();

            Mock <IAllElement> elem1 = new Mock <IAllElement>();
            Mock <IAllElement> elem2 = new Mock <IAllElement>();
            Mock <IAllElement> elem3 = new Mock <IAllElement>();
            Mock <IAllElement> elem4 = new Mock <IAllElement>();
            Mock <IAllElement> elem5 = new Mock <IAllElement>();
            var elems   = new List <IWebElement>().AsReadOnly();
            var elems12 = new List <IWebElement>()
            {
                elem1.Object, elem2.Object
            }.AsReadOnly();
            var elems34 = new List <IWebElement>()
            {
                elem3.Object, elem4.Object
            }.AsReadOnly();
            var elems5 = new List <IWebElement>()
            {
                elem5.Object
            }.AsReadOnly();
            var elems345 = new List <IWebElement>()
            {
                elem3.Object, elem4.Object, elem5.Object
            }.AsReadOnly();

            driver.Setup(_ => _.FindElements(by.Mechanism, by.Criteria)).Returns(elems12);
            elem1.Setup(_ => _.FindElements(by2)).Returns(elems);
            elem2.Setup(_ => _.FindElements(by2)).Returns(elems5);

            ByChained byChained = new ByChained(by, by2);

            Assert.That(byChained.FindElements(driver.Object), Is.EqualTo(new[] { elem5.Object }));
            driver.Verify(_ => _.FindElements(by.Mechanism, by.Criteria), Times.Once);
            elem1.Verify(_ => _.FindElements(by2), Times.Once);
            elem2.Verify(_ => _.FindElements(by2), Times.Once);
        }
Beispiel #12
0
        public void FindElementsTwoByEmptyChild()
        {
            Mock <IAllDriver> driver = new Mock <IAllDriver>();

            Mock <IAllElement> elem1 = new Mock <IAllElement>();
            Mock <IAllElement> elem2 = new Mock <IAllElement>();
            Mock <IAllElement> elem3 = new Mock <IAllElement>();
            Mock <IAllElement> elem4 = new Mock <IAllElement>();
            Mock <IAllElement> elem5 = new Mock <IAllElement>();
            var elems   = new List <IWebElement>().AsReadOnly();
            var elems12 = new List <IWebElement>()
            {
                elem1.Object, elem2.Object
            }.AsReadOnly();
            var elems34 = new List <IWebElement>()
            {
                elem3.Object, elem4.Object
            }.AsReadOnly();
            var elems5 = new List <IWebElement>()
            {
                elem5.Object
            }.AsReadOnly();
            var elems345 = new List <IWebElement>()
            {
                elem3.Object, elem4.Object, elem5.Object
            }.AsReadOnly();

            driver.Setup(_ => _.FindElementsByName(It.Is <string>(x => x == "cheese"))).Returns(elems12);
            elem1.Setup(_ => _.FindElements(It.Is <By>(x => x.Equals(By.Name("photo"))))).Returns(elems);
            elem2.Setup(_ => _.FindElements(It.Is <By>(x => x.Equals(By.Name("photo"))))).Returns(elems5);

            ByChained by = new ByChained(By.Name("cheese"), By.Name("photo"));

            Assert.That(by.FindElements(driver.Object), Is.EqualTo(new[] { elem5.Object }));
            driver.Verify(_ => _.FindElementsByName("cheese"), Times.Once);
            elem1.Verify(_ => _.FindElements(By.Name("photo")), Times.Once);
            elem2.Verify(_ => _.FindElements(By.Name("photo")), Times.Once);
        }