Exemplo n.º 1
0
        public void UpdateCustomer(IWebDriver driver, string id, Customer updatedCustomer)
        {
            IWebElement customerToUpdate = SearchById(driver, id); // row

            // fill out name
            customerToUpdate.FindElement(editButtonLocator).Click();
            // new client edit iframe
            IWebElement editCustomerIframe = driver.FindElement(editCustomerFrame);

            driver.SwitchTo().Frame(editCustomerIframe);
            ClearAndEnter(driver.FindElement(customerNameLocator), updatedCustomer.Name);
            // click editContactButtonLocator
            driver.FindElement(editContactButtonLocator).Click();
            // fill out contact first name and last name and phone number
            SynchronizationHelper.WaitForVisibility(driver, contactDetailFrame, 10);
            IWebElement editContactForm = driver.FindElement(contactDetailFrame);

            // switching to Edit Contact Form iframe
            driver.SwitchTo().Frame(editContactForm);
            ClearAndEnter(driver.FindElement(contactFirstNameLocator), updatedCustomer.CustomerContact.FirstName);
            ClearAndEnter(driver.FindElement(contactLastNameLocator), updatedCustomer.CustomerContact.LastName);
            ClearAndEnter(driver.FindElement(contactPhoneNumberLocator), updatedCustomer.CustomerContact.PhoneNumber);
            // click save contact button
            driver.FindElement(saveContactButtonLocator).Click();
            // switching iframe back
            driver.SwitchTo().ParentFrame();
            // have to wait for the contact detail iframe to be hidden before proceeding to clicking save button
            SynchronizationHelper.WaitForElementToBeHidden(driver, By.Id("contactDetailWindow"), 10);
            // cick save button
            SynchronizationHelper.WaitForClickability(driver, driver.FindElement(saveButtonLocator), 10);
            driver.FindElement(saveButtonLocator).Click();
        }
Exemplo n.º 2
0
        public void CreateNewCustomer(IWebDriver driver, Customer customer)
        {
            driver.FindElement(createNewCustomerButtonLocator).Click();
            // fill out name
            driver.FindElement(customerNameLocator).SendKeys(customer.Name);
            // check contact check box for simplicity
            driver.FindElement(isSameContactCheckBoxLocator).Click();
            // click editContactButtonLocator
            driver.FindElement(editContactButtonLocator).Click();
            // fill out contact first name and last name and phone number
            SynchronizationHelper.WaitForVisibility(driver, contactDetailFrame, 10);
            IWebElement contactDetailForm = driver.FindElement(contactDetailFrame);

            // switching to Edit Contact Form iframe
            driver.SwitchTo().Frame(contactDetailForm);
            ClearAndEnter(driver.FindElement(contactFirstNameLocator), customer.CustomerContact.FirstName);
            ClearAndEnter(driver.FindElement(contactLastNameLocator), customer.CustomerContact.LastName);
            ClearAndEnter(driver.FindElement(contactPhoneNumberLocator), customer.CustomerContact.PhoneNumber);
            // click save contact button
            driver.FindElement(saveContactButtonLocator).Click();
            // switching iframe back
            driver.SwitchTo().DefaultContent();
            // cick save button
            SynchronizationHelper.WaitForClickability(driver, saveButtonLocator, 10);
            driver.FindElement(saveButtonLocator).Click();
        }
Exemplo n.º 3
0
        public void DeleteCustomer(IWebDriver driver, string id)
        {
            SynchronizationHelper.WaitForVisibility(driver, customerRowsLocator, 10);
            IWebElement row = SearchById(driver, id);

            SynchronizationHelper.WaitForClickability(driver, row.FindElement(deleteButtonLocator), 10);
            row.FindElement(deleteButtonLocator).Click();
            ClickOkForPopUp(driver);
        }
Exemplo n.º 4
0
        public void DeleteTimeAndMaterial(IWebDriver driver, string code, string description, string price)
        {
            SynchronizationHelper.WaitForVisibility(driver, timeAndMaterialsRowsLocator, 10);
            IWebElement itemToDelete = Search(driver, code, description, price); // row

            SynchronizationHelper.WaitForClickability(driver, itemToDelete.FindElement(deleteButtonLocator), 10);
            itemToDelete.FindElement(deleteButtonLocator).Click();
            // click OK button
            ClickOkForPopUp(driver);
        }
Exemplo n.º 5
0
        public IWebElement Search(IWebDriver driver, Customer customer)
        {
            PageLast(driver);
            // note: just assuming that last row will always be the item that we are looking for
            SynchronizationHelper.WaitForVisibility(driver, By.XPath("//*[@id=\"clientsGrid\"]/div[2]/table/tbody/tr[@role='row'][last()]"), 10);
            IWebElement row = driver.FindElement(By.XPath("//*[@id=\"clientsGrid\"]/div[2]/table/tbody/tr[@role='row'][last()]"));

            if (row.FindElement(By.XPath("td[2]")).Text == customer.Name)
            {
                return(row);
            }
            Console.WriteLine("Unable to locate customer");
            return(null);
        }
Exemplo n.º 6
0
        public IWebElement SearchById(IWebDriver driver, string id)
        {
            SynchronizationHelper.WaitForElementToBeHidden(driver, By.Id("loader"), 10);
            PageLast(driver);
            // current page number
            int totalPageNumbers = int.Parse(driver.FindElement(By.ClassName("k-state-selected")).Text);
            int intId            = int.Parse(id);

            for (var i = 0; i < totalPageNumbers; i++)
            {
                SynchronizationHelper.WaitForVisibility(driver, By.XPath("//*[@id=\"clientsGrid\"]/div[2]/table/tbody/tr[@role='row']"), 10);
                var initialRows = driver.FindElements(By.XPath("//*[@id=\"clientsGrid\"]/div[2]/table/tbody/tr[@role='row']"));
                Console.WriteLine("rows : " + initialRows.Count);
                if (initialRows.Count == 0)
                {
                    PageDown(driver);
                    continue;
                }
                int firstRowId = int.Parse(initialRows[0].FindElement(By.XPath("td[1]")).Text);
                int lastRowId  = int.Parse(initialRows[initialRows.Count - 1].FindElement(By.XPath("td[1]")).Text);
                if (firstRowId > intId && lastRowId > intId)
                {
                    // hasn't reached the right page
                    // page down and iterate rows
                    PageDown(driver);
                    continue;
                }
                if (firstRowId < intId && lastRowId < intId)
                {
                    // already have gone past
                    // fail and return
                    return(null);
                }
                foreach (var possibleRow in initialRows)
                {
                    if (int.Parse(possibleRow.FindElement(By.XPath("td[1]")).Text) == intId)
                    {
                        return(possibleRow);
                    }
                }
                //var rows = driver.FindElements(By.XPath("//*[@id=\"clientsGrid\"]/div[2]/table/tbody/tr[@role='row']/td[1][text()='" + id + "']/parent::tr"));
                //if (rows.Count > 1)
                //{
                //    return rows[0];
                //}
                //PageDown(driver);
            }
            return(null);
        }
Exemplo n.º 7
0
        public IWebElement Search(IWebDriver driver, string code, string description, string price)
        {
            PageLast(driver);
            // note: just assuming that last row will always be the item that we are looking for... not bothering with row iterations
            if (driver.FindElements(By.XPath("//*[@id=\"tmsGrid\"]/div[3]/table/tbody/tr[@role='row']")).Count == 0)
            {
                PageDown(driver);
            }
            SynchronizationHelper.WaitForVisibility(driver, By.XPath("//*[@id=\"tmsGrid\"]/div[3]/table/tbody/tr[@role='row'][last()]"), 10);
            IWebElement row = driver.FindElement(By.XPath("//*[@id=\"tmsGrid\"]/div[3]/table/tbody/tr[@role='row'][last()]"));

            if (row.FindElement(By.XPath("td[1]")).Text == code && row.FindElement(By.XPath("td[3]")).Text == description)
            {
                return(row);
            }

            Console.WriteLine("Unable to locate the item");
            return(null);
        }
Exemplo n.º 8
0
 public void refreshTable(IWebDriver driver)
 {
     SynchronizationHelper.WaitForVisibility(driver, customerRowsLocator, 10);
     driver.FindElement(customerTableRefreshLocator).Click();
 }
Exemplo n.º 9
0
 public void refreshTable(IWebDriver driver)
 {
     SynchronizationHelper.WaitForVisibility(driver, timeAndMaterialsRowsLocator, 10);
     driver.FindElement(timeAndMaterialsRowsLocator).Click();
 }