コード例 #1
1
ファイル: WebdriverFactory.cs プロジェクト: jbijlsma/ToDo
        public static NgWebDriver GetWebDriver()
        {
            var driver = new NgWebDriver(CreateDriver());
            driver.Manage().Timeouts().SetScriptTimeout(TimeSpan.FromSeconds(20));

            return driver;
        }
コード例 #2
0
 public string ExecuteJavascriptWithReturn(NgWebDriver driver, string script)
 {
     IJavaScriptExecutor js = driver.WrappedDriver as IJavaScriptExecutor;
     string ret = (string)js.ExecuteScript(script);
     return ret;
     //return (string)js.ExecuteScript(script);
 }
コード例 #3
0
ファイル: LoginPage.cs プロジェクト: jbijlsma/ToDo
        public LoginPage(NgWebDriver driver, string url)
        {
            _ngDriver = driver;
            _ngDriver.Url = url;

            ClearLocalStorage();
        }
コード例 #4
0
ファイル: IndexTests.cs プロジェクト: hgirish/CustomerManager
        public void Customers_View_ByDefault()
        {
            IWebDriver ngDriver = new NgWebDriver(driver);
            ngDriver.Navigate().GoToUrl("http://localhost:58918/");

            Assert.IsTrue(ngDriver.Url.EndsWith("#/customers"));
        }
コード例 #5
0
        public void DeleteCustomerOnCardView()
        {
            NgMockE2EModule mockModule = new NgMockE2EModule(@"
            $httpBackend.whenGET(/^\/app\/partials\//).passThrough();

            $httpBackend.whenGET(/^\/app\/views\//).passThrough();

            $httpBackend.whenGET('\/api/dataservice/customersSummary?$top=10&$skip=0').respond(
            // status
            200,
            // body
            [
            {
            id:1,
            firstName:'Marcus',
            lastName:'HighTower',
            city:'Phoenix',
            state: {
            id:1,
            abbreviation:'AZ',
            name:' Arizona'
            },
            orderCount:6,
            gender:'Male'
            },
            {
            id:2,
            firstName:'Dan',
            lastName:'Wahlin',
            city:'Chandler',
            state:{
            id:1,
            abbreviation:'AZ',
            name:' Arizona'
            },
            orderCount:5,
            gender:'Male'
            }
            ],
            // headers
            {
            'X-InlineCount': 2
            }
            );"
                );

            var ngDriver = new NgWebDriver(driver, mockModule);
            ngDriver.Navigate().GoToUrl("http://localhost:58000/#/customers");

            var customersPage = new CustomersPage(ngDriver);
            Assert.AreEqual(2, customersPage.GetCustomersCount());
            Assert.AreEqual("Showing 2 of 2 total customers", customersPage.GetFooterText());

            // Delete Dan (sorry...)
            customersPage.DeleteCustomer(2).ConfirmDelete();

            Assert.AreEqual(1, customersPage.GetCustomersCount());
            Assert.AreEqual("Showing 1 of 1 total customers", customersPage.GetFooterText()); // Fail!
        }
コード例 #6
0
        public void CustomersViewByDefault()
        {
            IWebDriver ngDriver = new NgWebDriver(driver);
            ngDriver.Navigate().GoToUrl("http://localhost:58000/");

            // Assert default view is 'customers'
            Assert.IsTrue(ngDriver.Url.EndsWith("#/customers"));
        }
コード例 #7
0
 public MainMenuPage(NgWebDriver driver)
     : base(driver, null)
 {
     // Uncomment this out if you want to clear the cache.
     //ClearCacheCmd.ClearCache(driver);
     _nav = _ngDriver.FindElement(By.CssSelector(".nav.navbar-nav"));
     _navbar = _ngDriver.FindElement(By.CssSelector(".nav.navbar-nav"));
 }
コード例 #8
0
        public void CardViewByDefault()
        {
            var ngDriver = new NgWebDriver(driver);
            ngDriver.Navigate().GoToUrl("http://localhost:58000/#/customers");

            var customersPage = new CustomersPage(ngDriver);

            Assert.IsTrue(customersPage.IsCardViewSelected());
        }
コード例 #9
0
        public void CardViewByDefault()
        {
            IWebDriver ngDriver = new NgWebDriver(driver);
            ngDriver.Navigate().GoToUrl("http://localhost:58000/#/customers");

            // Assert 'card view' is selected
            Assert.IsTrue(ngDriver.FindElement(By.ClassName("cardContainer")).Displayed);
            Assert.IsFalse(ngDriver.FindElement(By.ClassName("gridContainer")).Displayed);
        }
コード例 #10
0
        public CustomerOrdersPage(NgWebDriver driver)
        {
            ngDriver = driver;

            if (!ngDriver.Url.Contains("#/customerorders/"))
            {
                throw new InvalidOperationException("This is not the customer orders page");
            }
        }
コード例 #11
0
ファイル: NavTests.cs プロジェクト: inmWill/seleniumEnd2End
 public void PeopleTitle()
 {
     using (IWebDriver wdriver = new NgWebDriver(new ChromeDriver(@"dependencies")))
     {
         wdriver.Manage().Timeouts().SetScriptTimeout(TimeSpan.FromSeconds(5));
         wdriver.Navigate().GoToUrl(baseUrl + "people");
         Assert.AreEqual(wdriver.Title, "ui.core: people");
         wdriver.Quit();
     }
 }
コード例 #12
0
 private static IWebDriver SetAngularProctractorDriver(IWebDriver driver)
 {
     driver = new NgWebDriver(driver);
     driver.Manage()
         .Timeouts()
         .SetPageLoadTimeout(TimeSpan.FromSeconds(Configuration.Instance.Selenium.ProtractorTimeOut));
     driver.Manage()
         .Timeouts()
         .SetScriptTimeout(TimeSpan.FromSeconds(Configuration.Instance.Selenium.ProtractorTimeOut));
     return driver;
 }
コード例 #13
0
ファイル: NgEnvironment.cs プロジェクト: xcyroo/SpecFlowNgBb
 public IWebDriver CreateWebDriver()
 {
     var driver = new ChromeDriver();
     driver.Manage().Window.Maximize();
     driver.Manage().Timeouts().SetScriptTimeout(TimeSpan.FromSeconds(15));
     driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(15));
     driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5));
     var _ngDriver = new NgWebDriver(driver);
     //_ngDriver.IgnoreSynchronization = true;
     return _ngDriver;
 }
コード例 #14
0
        public void ShowTop10Customers()
        {
            IWebDriver ngDriver = new NgWebDriver(driver);
            ngDriver.Navigate().GoToUrl("http://localhost:58000/#/customers");

            IWebElement cardElement = ngDriver.FindElement(By.ClassName("cardContainer"));
            var customers = cardElement.FindElements(NgBy.Repeater("customer in filteredCustomers"));
            Assert.AreEqual(10, customers.Count);

            IWebElement footer = ngDriver.FindElement(NgBy.Binding("totalRecords"));
            Assert.AreEqual("Showing 10 of 23 total customers", footer.Text);
        }
コード例 #15
0
        public void Run()
        {
            ChromeOptions options = new ChromeOptions();
            //options.AddExtension();

            if (true)
            {
                _webDriver = new ChromeDriver( options);
                _webDriver.Manage().Timeouts().SetScriptTimeout(TimeSpan.FromSeconds(10));
            }
            NgWebDriver = new NgWebDriver(_webDriver);
        }
コード例 #16
0
        public void Switch_to_List_view()
        {
            IWebDriver ngDriver = new NgWebDriver(driver);

            ngDriver.Navigate().GoToUrl("http://localhost:58918/#/customers");
            IWebElement listViewMenu = ngDriver.FindElement(By.XPath("//ul//li[contains(.,'List View')]"));
            Assert.IsFalse(listViewMenu.GetAttribute("class").Contains("active"));
            listViewMenu.Click();

            Assert.IsFalse(ngDriver.FindElement(By.ClassName("cardContainer")).Displayed);
            Assert.IsTrue(ngDriver.FindElement(By.ClassName("gridContainer")).Displayed);
            Assert.IsTrue(listViewMenu.GetAttribute("class").Contains("active"));
        }
コード例 #17
0
        public CustomersPage(NgWebDriver driver)
        {
            ngDriver = driver;

            if (!ngDriver.Url.EndsWith("#/customers"))
            {
                throw new InvalidOperationException("This is not the customers page");
            }

            cardViewButtonElement = ngDriver.FindElement(By.XPath("//ul[@class='nav']//li[contains(.,'Card View')]"));
            cardViewElement = ngDriver.FindElement(By.ClassName("cardContainer"));
            listViewButtonElement = ngDriver.FindElement(By.XPath("//ul[@class='nav']//li[contains(.,'List View')]"));
            listViewElement = ngDriver.FindElement(By.ClassName("gridContainer"));
        }
コード例 #18
0
        public void ShowCustomerOrders()
        {
            var ngDriver = new NgWebDriver(driver);
            ngDriver.Navigate().GoToUrl("http://localhost:58000/#/customers");

            var customerOrdersPage = new CustomersPage(ngDriver).GoToCustomerOrders(2);

            Assert.AreEqual("Dan Wahlin", customerOrdersPage.GetCustomerName());
            Assert.AreEqual(5, customerOrdersPage.GetOrdersCount());
        }
コード例 #19
0
        public void ShouldFilter()
        {
            var ngDriver = new NgWebDriver(driver);
            ngDriver.Navigate().GoToUrl("http://localhost:58000/#/customers");

            var customersPage = new CustomersPage(ngDriver);

            Assert.AreEqual(4, customersPage.Filter("Wahlin").GetCustomersCount()); // Fail!
        }
コード例 #20
0
 //ngDriver setup
 public PackagesPageObjects(IWebDriver driver, string url)
 {
     ngDriver = new NgWebDriver(driver);
     ngDriver.Navigate().GoToUrl(url);
 }
コード例 #21
0
 /// <summary>
 /// Creates a new instance of <see cref="NgNavigation"/> by wrapping a <see cref="INavigation"/> instance.
 /// </summary>
 /// <param name="ngDriver">The <see cref="NgWebDriver"/> in use.</param>
 /// <param name="navigation">The existing <see cref="INavigation"/> instance.</param>
 public NgNavigation(NgWebDriver ngDriver, INavigation navigation)
 {
     this.ngDriver = ngDriver;
     this.navigation = navigation;
 }
コード例 #22
0
 /// <summary>
 /// Creates a new instance of <see cref="NgWebElement"/> by wrapping a <see cref="IWebElement"/> instance.
 /// </summary>
 /// <param name="ngDriver">The <see cref="NgWebDriver"/> in use.</param>
 /// <param name="element">The existing <see cref="IWebElement"/> instance.</param>
 public NgWebElement(NgWebDriver ngDriver, IWebElement element)
 {
     this.ngDriver = ngDriver;
     this.element  = element;
 }
コード例 #23
0
 public SuperCalculatorPage(IWebDriver driver, string url)
 {
     _ngDriver = new NgWebDriver(driver);
     _ngDriver.Url = url;
 }
コード例 #24
0
 /// <summary>
 /// Creates a new instance of <see cref="NgNavigation"/> by wrapping a <see cref="INavigation"/> instance.
 /// </summary>
 /// <param name="ngDriver">The <see cref="NgWebDriver"/> in use.</param>
 /// <param name="navigation">The existing <see cref="INavigation"/> instance.</param>
 public NgNavigation(NgWebDriver ngDriver, INavigation navigation)
 {
     this.ngDriver   = ngDriver;
     this.navigation = navigation;
 }
コード例 #25
0
 /// <summary>
 ///     Creates a new instance of <see cref="NgNavigation" /> by wrapping a <see cref="INavigation" /> instance.
 /// </summary>
 /// <param name="ngDriver">The <see cref="NgWebDriver" /> in use.</param>
 /// <param name="navigation">The existing <see cref="INavigation" /> instance.</param>
 public NgNavigation(NgWebDriver ngDriver, INavigation navigation)
 {
     NgDriver          = ngDriver;
     WrappedNavigation = navigation;
 }
コード例 #26
0
        public void DeleteCustomerOnCardView()
        {
            NgMockE2EModule mockModule = new NgMockE2EModule(@"
            $httpBackend.whenGET(/^\/app\/partials\//).passThrough();

            $httpBackend.whenGET(/^\/app\/views\//).passThrough();

            $httpBackend.whenGET('\/api/dataservice/customersSummary?$top=10&$skip=0').respond(
            // status
            200,
            // body
            [
            {
            id:1,
            firstName:'Marcus',
            lastName:'HighTower',
            city:'Phoenix',
            state: {
            id:1,
            abbreviation:'AZ',
            name:' Arizona'
            },
            orderCount:6,
            gender:'Male'
            },
            {
            id:2,
            firstName:'Dan',
            lastName:'Wahlin',
            city:'Chandler',
            state:{
            id:1,
            abbreviation:'AZ',
            name:' Arizona'
            },
            orderCount:5,
            gender:'Male'
            }
            ],
            // headers
            {
            'X-InlineCount': 2
            }
            );"
                );

            var ngDriver = new NgWebDriver(driver, mockModule);
            ngDriver.Navigate().GoToUrl("http://localhost:58000/#/customers");

            var cardElement = ngDriver.FindElement(By.ClassName("cardContainer"));

            var footer = ngDriver.FindElement(NgBy.Binding("totalRecords"));
            Assert.AreEqual("Showing 2 of 2 total customers", footer.Text);

            var customers = cardElement.FindElements(NgBy.Repeater("customer in filteredCustomers"));
            Assert.AreEqual(2, customers.Count);

            // Delete Dan (sorry...)
            foreach (var customer in customers)
            {
                if ((long)customer.Evaluate("customer.id") == 2)
                {
                    // Close card
                    customer.FindElement(By.ClassName("cardClose")).Click();

                    // Popup to confirm
                    ngDriver.FindElement(By.XPath("//button[contains(.,'Delete Customer')]")).Click();
                    break;
                }
            }

            Assert.AreEqual(1, cardElement.FindElements(NgBy.Repeater("customer in filteredCustomers")).Count);
            Assert.AreEqual("Showing 1 of 1 total customers", footer.Text); // Fail!
        }
コード例 #27
0
 public PageObjectBase(NgWebDriver driver, string url)
 {
     _ngDriver = driver;
     if (url != null)
     {
         _ngDriver.Url = url;
     }
 }
コード例 #28
0
 /// <summary>
 ///     Creates a new instance of <see cref="NgWebElement" /> by wrapping a <see cref="IWebElement" /> instance.
 /// </summary>
 /// <param name="ngDriver">The <see cref="NgWebDriver" /> in use.</param>
 /// <param name="element">The existing <see cref="IWebElement" /> instance.</param>
 public NgWebElement(NgWebDriver ngDriver, IWebElement element)
 {
     NgDriver       = ngDriver;
     WrappedElement = element;
 }
コード例 #29
0
        public void ShowTop10Customers()
        {
            var ngDriver = new NgWebDriver(driver);
            ngDriver.Navigate().GoToUrl("http://localhost:58000/#/customers");

            var customersPage = new CustomersPage(ngDriver);
            Assert.AreEqual(10, customersPage.GetCustomersCount());

            IWebElement footer = ngDriver.FindElement(NgBy.Binding("totalRecords"));
            Assert.AreEqual("Showing 10 of 23 total customers", footer.Text);
        }
コード例 #30
0
        public void SwitchToListView()
        {
            var ngDriver = new NgWebDriver(driver);
            ngDriver.Navigate().GoToUrl("http://localhost:58000/#/customers");

            var customersPage = new CustomersPage(ngDriver);
            customersPage.SwitchToListView();

            Assert.IsTrue(customersPage.IsListViewSelected());
        }
コード例 #31
0
 public void SelectAll(NgWebDriver driver)
 {
     Actions action = new Actions(driver.WrappedDriver);
     IAction chord = action.KeyDown(_ele.WrappedElement, OpenQA.Selenium.Keys.Control)
         .SendKeys("a")
         .KeyUp(_ele.WrappedElement, OpenQA.Selenium.Keys.Control)
         .Build();
     chord.Perform();
 }
コード例 #32
0
        public void NoCustomersOnCardView()
        {
            NgMockE2EModule mockModule = new NgMockE2EModule(@"
            $httpBackend.whenGET(/^\/app\/partials\//).passThrough();

            $httpBackend.whenGET(/^\/app\/views\//).passThrough();

            $httpBackend.whenGET('\/api/dataservice/customersSummary?$top=10&$skip=0').respond(
            // status
            200,
            // body
            [],
            // headers
            {
            'X-InlineCount': 0
            }
            );"
                );

            var ngDriver = new NgWebDriver(driver, mockModule);
            ngDriver.Navigate().GoToUrl("http://localhost:58000/#/customers");

            var customersPage = new CustomersPage(ngDriver);
            Assert.AreEqual(0, customersPage.GetCustomersCount());
            Assert.AreEqual("No customers found", customersPage.GetFooterText());
        }
コード例 #33
0
        public void NoCustomersOnCardView()
        {
            NgMockE2EModule mockModule = new NgMockE2EModule(@"
            $httpBackend.whenGET(/^\/app\/partials\//).passThrough();

            $httpBackend.whenGET(/^\/app\/views\//).passThrough();

            $httpBackend.whenGET('\/api/dataservice/customersSummary?$top=10&$skip=0').respond(
            // status
            200,
            // body
            [],
            // headers
            {
            'X-InlineCount': 0
            }
            );"
                );

            var ngDriver = new NgWebDriver(driver, mockModule);
            ngDriver.Navigate().GoToUrl("http://localhost:58000/#/customers");

            var cardElement = ngDriver.FindElement(By.ClassName("cardContainer"));
            Assert.AreEqual(0, cardElement.FindElements(NgBy.Repeater("customer in filteredCustomers")).Count);

            Assert.IsTrue(ngDriver.FindElement(By.XPath("//h4[contains(.,'No customers found')]")).Displayed);
        }
コード例 #34
-1
        private IWebDriver GetDriver(DriverTypes type)
        {
            IWebDriver driver = null;
            switch (type)
            {
                case DriverTypes.IE:
                    driver = new InternetExplorerDriver(
                        new InternetExplorerOptions
                        {
                            UnexpectedAlertBehavior = InternetExplorerUnexpectedAlertBehavior.Default,
                            EnableNativeEvents = true,
                            //ForceCreateProcessApi = true,
                            //BrowserCommandLineArguments = "-private",
                            EnsureCleanSession = true
                        });
                    driver = new NgWebDriver(driver);
                    break;

                case DriverTypes.Chrome:
                    ChromeOptions options = new ChromeOptions();
                    options.AddArgument("--disable-plugins");
                    driver = new ChromeDriver(options);
                    driver = new NgWebDriver(driver);
                    break;
            }
            ((NgWebDriver)driver).IgnoreSynchronization = true;
            return driver;
        }