コード例 #1
0
        public void ExtractTableValuesSimpleTest()
        {
            _selenium.SetBrowser("chrome");
            _selenium.Open(EndToEndTest.CreateTestPageUri());
            // Tricky stuff happening here - attempts to logon behind the scenes
            _selenium.WaitUntilTitleMatches("SeleniumFixtureTestPage");
            TestTable("XPath://table[@id='normalTable']", 0, new[]
            {
                new[] { new[] { "header1", "value 1" }, new[] { "header2", "10" } },
                new[] { new[] { "header1", "value 2" }, new[] { "header2", "20" } },
                new[] { new[] { "header1", "value 3" }, new[] { "header2", "30" } }
            });

            TestTable("CssSelector: table#tableWithoutHeaders", 0, new[]
            {
                new[] { new[] { "Column 1", "value 4" }, new[] { "Column 2", "40" } },
                new[] { new[] { "Column 1", "value 5" }, new[] { "Column 2", "50" } }
            });

            TestTable("id:tableWithEmptyHeaders", 0, new[]
            {
                new[] { new[] { "Column 1", "value 6" }, new[] { "Column 2", "60" } },
                new[] { new[] { "Column 1", "value 7" }, new[] { "Column 2", "70" } }
            });
        }
コード例 #2
0
        public void KendoTableTest()
        {
            Selenium.SetProxyType("system");
            // Inspiration for this test was https://web.archive.org/web/20150713051625/http://demos.telerik.com/kendo-ui/grid/index
            // showing a demo of the Kendo UI Grid. This has a quite complex way of rendering tables using two table elements
            // for headers and content surrounded by divs, which the fixture is able to handle.
            // Since this page was often too slow to load, a simplified static version of the page was added to the test site.

            Assert.IsTrue(_selenium.SetBrowser("edge"));
            Assert.IsTrue(_selenium.Open(EndToEndTest.CreateUri("TableTestPage")));
            Assert.IsTrue(_selenium.WaitUntilElementIsVisible("XPath://table[@role=\"grid\"]"));

            TestTable("XPath://table[@role='grid']", 2, new[]
            {
                new[]
                {
                    new[] { "Contact Name", @"Maria Anders" }, new[] { "Contact Title", "Sales Representative" },
                    new[] { "Company Name", @"Alfreds Futterkiste" }, new[] { "Country", "Germany" }
                },
                new[]
                {
                    new[] { "Contact Name", "Ana Trujillo" }, new[] { "Contact Title", "Owner" },
                    new[] { "Company Name", @"Ana Trujillo Emparedados y helados" }, new[] { "Country", "Mexico" }
                }
            });
        }
コード例 #3
0
        public void DragDropAcrossWindowsTest()
        {
            var driverHandle1 = _selenium.NewBrowser("chrome");
            var url           = EndToEndTest.CreateTestPageUri();

            _selenium.Open(url);
            Assert.IsTrue(_selenium.WaitForElement("dragSource"), "Wait for DragSource in browser 1");
            Assert.IsFalse(_selenium.ElementExists("CssSelector: div#dropTarget > #dragSource"), "Source not dropped in target in driver 1");
            var driver1 = _selenium.Driver;
            var target  = driver1.FindElement(By.Id("dropTarget"));

            var driverHandle2 = _selenium.NewBrowser("chrome");

            _selenium.Open(url);
            Assert.IsTrue(_selenium.WaitForElement("dragSource"), "Wait for DragSource in browser 2");
            var driver2 = _selenium.Driver;
            var source  = driver2.FindElement(By.Id("dragSource"));

            Assert.AreNotEqual(driver1, driver2, "We have two different drivers");

            DragDrop.DragToWindow(driver2, source, driver1, target);
            Assert.IsFalse(_selenium.ElementExists("CssSelector: div#dropTarget > #dragSource"), "Source not dropped in target in driver 2");

            _selenium.SetDriver(driverHandle1);
            Assert.IsTrue(_selenium.ElementExists("CssSelector: div#dropTarget > #dragSource"), "Source was dropped in target in driver 1");
            _selenium.Close();

            _selenium.SetDriver(driverHandle2);
            _selenium.Close();
        }
コード例 #4
0
 public void KeyConverterTestInSelenium()
 {
     try
     {
         _selenium.SetTimeoutSeconds(20);
         Assert.IsTrue(_selenium.SetBrowser("chrome"));
         Assert.IsTrue(_selenium.Open(EndToEndTest.CreateTestPageUri()));
         Assert.IsTrue(_selenium.WaitForElement("text1"));
         Assert.IsTrue(_selenium.SetElementTo("text1", new KeyConverter("^a").ToSeleniumFormat), "Text 1");
         Assert.IsTrue(_selenium.SetElementTo("text1", new KeyConverter("^c").ToSeleniumFormat), "Text 1");
         Assert.IsTrue(_selenium.SetElementTo("text1", new KeyConverter("{DEL}").ToSeleniumFormat), "Text 1");
         Assert.IsTrue(_selenium.SetElementTo("text1", new KeyConverter("My New Text").ToSeleniumFormat), "Text 1");
         Assert.IsTrue(_selenium.SetElementTo("text2", new KeyConverter("^a").ToSeleniumFormat), "Text 2");
         Assert.IsTrue(_selenium.SetElementTo("text2", new KeyConverter("{dEl}^v").ToSeleniumFormat), "Text 2");
     }
     finally
     {
         _selenium.Close();
     }
 }
コード例 #5
0
        public void JavaScriptFunctionTestWithFibonacci()
        {
            // protected mode must be off for this to work in IE
            var selenium = new Selenium();

            try
            {
                Assert.IsTrue(selenium.SetBrowser("firefox"));
                Assert.IsTrue(selenium.Open(EndToEndTest.CreateTestPageUri()));
                selenium.WaitForElement("id:sectionJavaScript");
                var javaScriptFunction = new JavaScriptFunction();
                javaScriptFunction.Reset();
                javaScriptFunction.Set("value", 10);
                Assert.AreEqual(Convert.ToInt64(55), javaScriptFunction.Get("Fibonacci"));
                javaScriptFunction.Reset();
                javaScriptFunction.Set("value", "aq");
                Assert.AreEqual("Input should be numerical", javaScriptFunction.Get("Fibonacci"));
            }
            finally
            {
                Assert.IsTrue(selenium.Close());
            }
        }
コード例 #6
0
        public void SeleniumShowChromeRightClickError()
        {
            var selenium = new Selenium();

            // Chrome cannot interact with context menus. Workaround is using native sendkeys, but we don't want to go there.
            // This test tries to select all in the context meny and then press delete. It just presses delete instead, so the
            // field doesn't get empty. If this test would fail, right click would work
            selenium.SetBrowser("chrome");
            selenium.SetTimeoutSeconds(20);
            const string textboxLocator = "id:text1";

            Assert.IsTrue(selenium.Open(EndToEndTest.CreateTestPageUri()), "Open page");
            Assert.IsTrue(selenium.WaitUntilTitleMatches("Selenium Fixture Test Page"));
            Assert.IsTrue(selenium.RightClickElement(textboxLocator), "Show context menu");
            Selenium.WaitSeconds(0.2); // allow dropdown to expand
            const string selectAllInContextMenuSequence = "{DOWN}a";

            selenium.SendKeysToElement(new KeyConverter(selectAllInContextMenuSequence).ToSeleniumFormat,
                                       textboxLocator);
            selenium.SendKeysToElement("{DELETE}", textboxLocator);
            Assert.IsFalse(string.IsNullOrEmpty(selenium.AttributeOfElement("value", textboxLocator)),
                           "text 1 is empty");
            selenium.Close();
        }
コード例 #7
0
 public void TestInitialize()
 {
     _driverHandle = BrowserDriverContainer.NewDriver("chrome headless", null);
     _driver       = BrowserDriverContainer.Current;
     _driver.Navigate().GoToUrl(EndToEndTest.CreateTestPageUri());
 }
コード例 #8
0
 public void SeleniumIeTimeoutTest()
 {
     Selenium.CommandTimeoutSeconds = 15;
     _selenium.SetBrowser("ie");
     _selenium.Open(EndToEndTest.CreateTestPageUri());
 }