public void Dsecure(IWebDriver driver)
        {
            if (IsElementPresent(driver, By.TagName("iframe")))
            {
                var frameElement = driver.FindElement(By.TagName("iframe"));
                driver.SwitchTo().Frame(frameElement);
                driver.FindElement(By.CssSelector("input[type=\"submit\"]")).Click();
                Thread.Sleep(0x1388);
                driver.SwitchTo().Alert().Accept();

                var location = driver.Url;
                if (location.Contains("3DSecureState=Success"))
                {
                    _datarow.Newrow("3D secure", location, "3DSecureState=Success", "PASS", driver);
                    driver.FindElement(By.LinkText("start again")).Click();
                }
                else if (location.Contains("State=Declined"))
                {
                    _datarow.Newrow("3D secure", location, "3D secure Declined", "FAIL", driver);
                    driver.FindElement(By.LinkText("start again")).Click();
                }
            }
            else
            {
                var actual = driver.Url;
                _datarow.Newrow("Checkout", "Server Error", actual, "FAIL", driver);
                new Screenshot().Screenshotfailed(driver);
                driver.Navigate().GoToUrl("http://devpaytest.mobankdev.com/");
            }
        }
Example #2
0
        /**
         * Selects the only <code>_blank</code> window. A window open with
         * <code>target='_blank'</code> will have a <code>window.name = null</code>.
         * <p/>
         * <p>This method assumes that there will only be one single
         * <code>_blank</code> window and selects the first one with no name.
         * Therefore if for any reasons there are multiple windows with
         * <code>window.name = null</code> the first found one will be selected.
         * <p/>
         * <p>If none of the windows have <code>window.name = null</code> the last
         * selected one will be re-selected and a {@link SeleniumException} will
         * be thrown.
         *
         * @throws NoSuchWindowException if no window with
         *                               <code>window.name = null</code> is found.
         */
        public void SelectBlankWindow(IWebDriver driver)
        {
            string current = driver.GetWindowHandle();

            // Find the first window without a "name" attribute
            ReadOnlyCollection<string> handles = driver.GetWindowHandles();
            foreach (string handle in handles)
            {
                // the original window will never be a _blank window, so don't even look at it
                // this is also important to skip, because the original/root window won't have
                // a name either, so if we didn't know better we might think it's a _blank popup!
                if (handle == originalWindowHandle)
                {
                    continue;
                }

                driver.SwitchTo().Window(handle);
                string value = ((IJavaScriptExecutor)driver).ExecuteScript("return window.name;").ToString();
                if (string.IsNullOrEmpty(value))
                {
                    // We found it!
                    return;
                }
            }

            // We couldn't find it
            driver.SwitchTo().Window(current);
            throw new SeleniumException("Unable to select window _blank");
        }
        public void WhereIsMyCheese(string url)
        {
            try
            {
                _driver = Browser.GetFirefoxDriver();

                _driver.Navigate().GoToUrl(url);

                _driver.FindElement(By.Id("windowOpener")).Click();

                _driver.SwitchTo().Window("windowName");
                _driver.FindElement(By.Id("CheesyButton")).Click();

                _driver.SwitchTo().Alert().Accept();
            }
            catch (System.Exception ex)
            {
                Console.WriteLine("An exception occured: " + ex.Message);
                Debug.WriteLine("An exception occured: " + ex.Message);
            }
            finally
            {
                _driver.Quit();
            }
        }
Example #4
0
        public void ChromeTest()
        {
            driver = new ChromeDriver();
            driver.Navigate().GoToUrl("");

            Func<string, IWebDriver> selectChildFrame = (x) => driver.SwitchTo().Frame(driver.FindElement(By.XPath(x)));
            Action<string> click = (string x) => driver.FindElement(By.XPath(x)).Click();
            Action<string> fElement = (string x) => driver.FindElement(By.XPath(x));
            driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(3));

            //Step into Main Frame

            selectChildFrame.Invoke("//frame[contains(@name, 'mainWindow')]");

            //Click into parts tab

            click.Invoke("//td[contains(@id, 'Tab1')]");

            //step into search part frame and search for a part containing '2008'

            selectChildFrame.Invoke("//iframe[contains(@name, 'iframeSearchPart')]");
            click.Invoke("//input[contains(@name, 'partName')]");
            driver.FindElement(By.XPath("//input[contains(@name, 'partName')]")).SendKeys("2008");
            click.Invoke("//input[contains(@value, 'Search')]");

            //step into iframePTSrchResults and click part of 777D12008

            selectChildFrame.Invoke("//iframe[contains(@id, 'iframePTSrchResults')]");
            selectChildFrame.Invoke("//frame[contains(@name, 'PartSearchResults')]");
            click.Invoke("//td[contains(text(), '777D12008')]");
            driver.SwitchTo().ParentFrame();
            selectChildFrame.Invoke("//frame[contains(@name, 'PartSearchDetails')]");
            click.Invoke("//span[contains(text(), '11A-544B004 (2009)-->Label Map MTD Gold')]");

            //view super session and add to pick list

            driver.SwitchTo().DefaultContent();
            selectChildFrame.Invoke("//frame[contains(@name, 'mainWindow')]");
            selectChildFrame.Invoke("//iframe[contains(@id, 'iframeSearchModel')]");
            selectChildFrame.Invoke("//iframe[contains(@id, 'iframeMDSrchResults')]");
            selectChildFrame.Invoke("//frame[contains(@name, 'ModelSearchDetails')]");
            selectChildFrame.Invoke("//frame[contains(@name, 'IPL1361227DATA')]");
            driver.FindElement(By.XPath("//tr[contains(@id, '777S30145')]")).FindElement(By.XPath("//tr/td/a")).Click();
            driver.FindElement(By.XPath("//tr[contains(@id, '777S30145')]")).FindElement(By.XPath("//a[contains(@href, 'addToPicklist')]")).Click();

            //navigate to model
            driver.SwitchTo().DefaultContent();
            selectChildFrame.Invoke("//frame[contains(@name, 'mainWindow')]");
            click.Invoke("//td[contains(@id, 'Tab0')]");

            //search a model of 2007 in MTD2014

            selectChildFrame.Invoke("//iframe[contains(@id, 'iframeSearchModel')]");
            driver.FindElement(By.XPath("//td[contains(@class, 'oemDropDownContainer')]")).FindElement(By.XPath("//td/select")).Click();
            driver.FindElement(By.XPath("//option[contains(@value, '5010')]")).Click();
            click.Invoke("//input[contains(@name, 'modelName')]");
            driver.FindElement(By.XPath("//input[contains(@name, 'modelName')]")).SendKeys("2007");
            click.Invoke("//input[contains(@value, 'Search')]");
        }
Example #5
0
        public static bool WaitForPageToLoad(IWebDriver driver, int timeOutInSeconds)
        {
            string state = string.Empty;
            try
            {
                WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeOutInSeconds));

                //Checks every 500 ms whether predicate returns true if returns exit otherwise keep trying till it returns ture
                wait.Until(d =>
                {

                    try
                    {
                        state = ((IJavaScriptExecutor)driver).ExecuteScript(@"return document.readyState").ToString();
                    }
                    catch (InvalidOperationException)
                    {
                        //Ignore
                    }
                    catch (NoSuchWindowException)
                    {
                        //when popup is closed, switch to last windows
                        driver.SwitchTo().Window(driver.WindowHandles.Last());
                    }
                    //In IE7 there are chances we may get state as loaded instead of complete
                    return (state.Equals("complete", StringComparison.InvariantCultureIgnoreCase) ||
                            state.Equals("loaded", StringComparison.InvariantCultureIgnoreCase));

                });
            }
            catch (TimeoutException)
            {
                //sometimes Page remains in Interactive mode and never becomes Complete, then we can still try to access the controls
                if (!state.Equals("interactive", StringComparison.InvariantCultureIgnoreCase))
                    throw;
            }
            catch (NullReferenceException)
            {
                //sometimes Page remains in Interactive mode and never becomes Complete, then we can still try to access the controls
                if (!state.Equals("interactive", StringComparison.InvariantCultureIgnoreCase))
                    throw;
            }
            catch (WebDriverException)
            {
                if (driver.WindowHandles.Count == 1)
                {
                    driver.SwitchTo().Window(driver.WindowHandles[0]);
                }
                state = ((IJavaScriptExecutor)driver).ExecuteScript(@"return document.readyState").ToString();
                if (
                    !(state.Equals("complete", StringComparison.InvariantCultureIgnoreCase) ||
                      state.Equals("loaded", StringComparison.InvariantCultureIgnoreCase)))
                    throw;
            }
            return true;
        }
Example #6
0
        private static void CheckboxTest(IWebDriver driver)
        {
            driver.Url = "http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_checkbox_get";
            IWebElement rightFrame = driver.FindElement(By.Id("iframeResult"));
            driver.SwitchTo().Frame(rightFrame);

            var checkbox = driver.FindElement(By.Id("myCheck"));
            if (!checkbox.Selected)
                checkbox.Click();
            driver.SwitchTo().DefaultContent();
        }
        public TenancySearchPage(IWebDriver driver)
            : base(driver, TenancySearchPage.FRAME)
        {
            WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
            wait.Until((d) => { return d.Title.Contains(pageTitle); });

            //Switch to main frame when it is visible
            driver.SwitchTo().DefaultContent();
            wait = new WebDriverWait(driver, TimeSpan.FromSeconds(waitsec));
            IWebElement f1 = wait.Until(ExpectedConditions.ElementIsVisible(By.Id(FRAME)));
            driver.SwitchTo().Frame(f1);
        }
        public static bool HasFocus(this IWebElement element, IWebDriver driver)
        {
            if (element.GetType() == typeof (RemoteWebElement))
            {
                return driver.SwitchTo().ActiveElement().Equals(element);
            }

            if (element.GetType() == typeof (WebElement))
            {
                WebElement wElement = element as WebElement;
                return wElement != null && driver.SwitchTo().ActiveElement().Equals(wElement.InnerElement);
            }
            return false;
        }
        /// <summary>
        /// Handles the command.
        /// </summary>
        /// <param name="driver">The driver used to execute the command.</param>
        /// <param name="locator">The first parameter to the command.</param>
        /// <param name="value">The second parameter to the command.</param>
        /// <returns>The result of the command.</returns>
        protected override object HandleSeleneseCommand(IWebDriver driver, string locator, string value)
        {
            string current = driver.CurrentWindowHandle;

            List<string> attributes = new List<string>();
            foreach (string handle in driver.WindowHandles)
            {
                driver.SwitchTo().Window(handle);
                attributes.Add(driver.Title);
            }

            driver.SwitchTo().Window(current);

            return attributes.ToArray();
        }
Example #10
0
        public static void DeleteFirstUser(IWebDriver driver)
        {
            Login.AsHost(driver);

            driver.Navigate().GoToUrl(UserAccountsPage);

            driver.WaitClick(AccountManagerDeleteButton);

            driver.SwitchTo().Alert().Accept();
            driver.SwitchTo().DefaultContent();

            driver.WaitClick(AccountManagerRemoveButton);

            driver.SwitchTo().Alert().Accept();
            driver.SwitchTo().DefaultContent();
        }
 public static void RefreshPage(IWebDriver driver, string frame, string childFrame = null)
 {
     //Switch to main frame when it is visible
     driver.SwitchTo().DefaultContent();
     WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(waitsec));
     IWebElement f1 = wait.Until(ExpectedConditions.ElementIsVisible(By.Id(frame)));
     if (childFrame != null)
     {
         driver.SwitchTo().Frame(f1);
         driver.SwitchTo().Frame(childFrame);
     }
     else
     {
         driver.SwitchTo().Frame(f1);
     }
 }
Example #12
0
 private void AcceptAlert(IWebDriver browser)
 {
     var alertText = "";
     int loop = 2;
     IAlert alert = null;
     while (alertText.Equals("") && loop > 0)
     {
         if (alert == null)
         {
             try
             {
                 alert = browser.SwitchTo().Alert();
             }
             catch
             { System.Threading.Thread.Sleep(50); }
         }
         else
         {
             try
             {
                 alert.Accept();
                 alertText = alert.Text;
             }
             catch (Exception ex)
             {
                 if (ex.Message.Equals("No alert is present")) alertText = "Already Accepted";
                 else System.Threading.Thread.Sleep(50);
             }
         }
         loop--;
     }
 }
 public void Dsecure(IWebDriver driver)
 {
     var frameElement = driver.FindElement(By.TagName("iframe"));
     driver.SwitchTo().Frame(frameElement);
     driver.FindElement(By.CssSelector("input[type=\"submit\"]")).Click();
     Thread.Sleep(0x1388);
     Thread.Sleep(0x1f40);
     var location = driver.Url;
     if (location.Contains("3DSecureState=Success"))
     {
         _datarow.Newrow("3D secure", location, "3DSecureState=Success", "PASS", driver);
         if (IsElementPresent(driver, By.LinkText("start again")))
         {
             driver.FindElement(By.LinkText("start again")).Click();
         }
         else
         {
             driver.Navigate().GoToUrl("http://devpaytest.mobankdev.com/");
         }
     }
     else
     {
         _datarow.Newrow("3D secure", location, "3D secure Declined", "FAIL", driver);
         if (IsElementPresent(driver, By.LinkText("start again")))
         {
             driver.FindElement(By.LinkText("start again")).Click();
         }
         else
         {
             driver.Navigate().GoToUrl("http://devpaytest.mobankdev.com/");
         }
     }
 }
 public void Socialmediashare(IWebDriver driver, Datarow datarow)
 {
     driver.FindElement(By.XPath("//div[@id='social-media-sharing']/a[1]/img")).Click();
     driver.FindElement(By.XPath("//div[@id='social-media-sharing']/a[2]/img")).Click();
     driver.FindElement(By.XPath("//div[@id='social-media-sharing']/a[3]/img")).Click();
     var str = driver.WindowHandles.GetEnumerator();
     var parentwindow = driver.CurrentWindowHandle;
     while (str.MoveNext())
     {
         var window = Convert.ToString(str.Current);
         driver.SwitchTo().Window(window);
         var url = driver.Url;
         datarow.Newrow("Social Share URL", "", url, "PASS");
     }
     driver.SwitchTo().Window(parentwindow);
 }
        /// <summary>
        /// Handles the command.
        /// </summary>
        /// <param name="driver">The driver used to execute the command.</param>
        /// <param name="locator">The first parameter to the command.</param>
        /// <param name="value">The second parameter to the command.</param>
        /// <returns>The result of the command.</returns>
        protected override object HandleSeleneseCommand(IWebDriver driver, string locator, string value)
        {
            string current = driver.CurrentWindowHandle;

            List<string> attributes = new List<string>();
            foreach (string handle in driver.WindowHandles)
            {
                driver.SwitchTo().Window(handle);
                string attributeValue = (string)((IJavaScriptExecutor)driver).ExecuteScript("return '' + window[arguments[0]];", value);
                attributes.Add(attributeValue);
            }

            driver.SwitchTo().Window(current);

            return attributes.ToArray();
        }
Example #16
0
 public CredentialElement(IWebDriver driver, IWebElement labelElement)
 {
     Match match = NatwestDriver.PasswordRegex.Match(labelElement.Text);
     labelElement.Click();
     _element = driver.SwitchTo().ActiveElement();
     IsPin = "number".Equals(match.Groups[2].Captures[0].Value);
     _credentialCharIndex = Int32.Parse(match.Groups[1].Captures[0].Value) - 1;
 }
Example #17
0
        /// <summary>
        /// Selects a window.
        /// </summary>
        /// <param name="driver">The <see cref="IWebDriver"/> used in selecting the windows.</param>
        /// <param name="windowId">The window ID to select.</param>
        public void SelectWindow(IWebDriver driver, string windowId)
        {
            if (windowId == "null")
            {
                driver.SwitchTo().Window(this.originalWindowHandle);
            }
            else if (windowId == "_blank")
            {
                this.SelectBlankWindow(driver);
            }
            else
            {
                if (windowId.StartsWith("title=", StringComparison.Ordinal))
                {
                    SelectWindowWithTitle(driver, windowId.Substring("title=".Length));
                    return;
                }

                if (windowId.StartsWith("name=", StringComparison.Ordinal))
                {
                    windowId = windowId.Substring("name=".Length);
                }

                try
                {
                    driver.SwitchTo().Window(windowId);
                }
                catch (NoSuchWindowException)
                {
                    SelectWindowWithTitle(driver, windowId);
                }
            }

            if (this.lastFrame.ContainsKey(driver.CurrentWindowHandle))
            {
                // If the frame has gone, fall back
                try
                {
                    this.SelectFrame(driver, this.lastFrame[driver.CurrentWindowHandle]);
                }
                catch (SeleniumException)
                {
                    this.lastFrame.Remove(driver.CurrentWindowHandle);
                }
            }
        }
Example #18
0
        private void HandleElement(IWebElement el, IWebDriver browser, string[] parameters)
        {
            var keystroke = KeywordUtility.ReadParameterValue(_variables, parameters[2]);

            el.SendKeys(keystroke);
            //switch to default content
            browser.SwitchTo().DefaultContent();
        }
Example #19
0
        private static void AjaxTest(IWebDriver driver)
        {
            driver.Url = "http://www.w3schools.com/xml/tryit.asp?filename=tryajax_first";
            IWebElement rightFrame = driver.FindElement(By.Id("iframeResult"));
            driver.SwitchTo().Frame(rightFrame);
            IWebElement demo = driver.FindElement(By.Id("demo"));
            Debug.WriteLine("Before:");
            Debug.WriteLine(demo.Text);
            IWebElement changeContentButton = demo.FindElement(By.TagName("button"));
            changeContentButton.Click();

            demo = driver.FindElement(By.Id("demo"));
            var ajaxResult = demo.FindElement(By.TagName("p"));
            Debug.WriteLine("After:");
            Debug.WriteLine(demo.Text);
            driver.SwitchTo().DefaultContent();
        }
Example #20
0
        public void SetUp()
        {
            driver = new ChromeDriver();
            driver.Manage().Window.Maximize();

            driver.Navigate().GoToUrl(HighchartsPage.PageUrl);

            driver.SwitchTo().Frame(driver.FindElement(By.XPath(HighchartsPage.IframeXPath)));
        }
Example #21
0
        public static void closeWindows(IWebDriver driver, string[] titles)
        {
            try
            {
                System.Collections.ObjectModel.ReadOnlyCollection<string> windowHandles = driver.WindowHandles;

                foreach (String window in windowHandles)
                {
                    Console.WriteLine(driver.Title.ToString());
                    try
                    {
                        driver.SwitchTo().Window(window);
                    }
                    catch
                    {
                        Console.WriteLine("Hang Up");
                        break;
                    }
                    try
                    {
                        bool found = false;
                        foreach (string title in titles)
                        {
                            if (driver.Title.Contains(title))
                            {
                                found = true;
                                break;

                            }
                        }

                        if (!found)
                        {
                            driver.SwitchTo().Window(window);
                            driver.Close();
                        }
                    }
                    catch { }
                }
            }
            catch { }
        }
        public override void SpecifyForBrowser(IWebDriver browser)
        {
            ignoreIfInternetExplorer("For some reason Internet Explorer won't open a new window from this test.");

            given("a webpage that opens another window", delegate()
            {
                var server = beforeAll(() => new StaticServer()
                {
                    {"first.html", "<html>original window here<a href='/second.html' target='_blank'>hi</a></html>"},
                    {"second.html", "<html>new window here</html>"}
                }.Start());

                beforeAll(() => server.Start());

                arrange(() => browser.Navigate().GoToUrl(server.UrlFor("first.html")));

                var existingWindows = arrange(() => new WhichWindowContext(browser));

                when("the new window link is clicked", delegate()
                {
                    arrange(() => browser.FindElement(By.TagName("a")).Click());

                    arrange(delegate()
                    {
                        browser.SwitchTo().Window(existingWindows.GetNewWindowName());

                        expect(() => browser.ContainsText("new window here"));
                    });

                    then("the new window can be switch to", delegate()
                    {
                    });

                    then("the original window can be switched back to", delegate()
                    {
                        browser.SwitchTo().Window(existingWindows.GetOriginalWindowName());

                        expect(() => browser.ContainsText("original window here"));
                    });
                });
            });
        }
Example #23
0
        /// <summary>
        /// Finds all matching elements, searching child iframes if no matches were found. Only returns results from the first finder that returns results. Does not throw exceptions; an empty enumeration is returned if any errors occur.
        /// </summary>
        /// <param name="this">The finders.</param>
        /// <param name="webDriver">The web driver, representing the top-level context of this search.</param>
        /// <param name="context">The context of the search. All results should be within this context.</param>
        /// <param name="searchText">The search string used to match the elements.</param>
        public static IReadOnlyCollection<IWebElement> TryFind(this IReadOnlyCollection<IFind> @this, IWebDriver webDriver, ISearchContext context, string searchText)
        {
            // First, return all the normal matches.
            webDriver.SwitchTo().DefaultContent();
            var result = @this.TryFind(context, searchText);
            if (result.Count != 0)
                return result;

            // If more results are required, then search the iframes.
            foreach (var iframe in context.FindElements(By.TagName("iframe")))
            {
                webDriver.SwitchTo().Frame(iframe);
                var html = webDriver.FindElement(By.TagName("html"));
                result = @this.TryFind(webDriver, html, searchText);
                if (result.Count != 0)
                    return result;
            }

            return result;
        }
Example #24
0
 public static void SwitchHandleToNewWindow(IWebDriver driver, string windowTitle)
 {
     ReadOnlyCollection<string> handles = driver.WindowHandles;
     foreach (string handle in handles)
     {
         driver.SwitchTo().Window(handle);
         if (driver.Title.Contains(windowTitle))
         {
             return;
         }
     }
 }
 private bool WaitForNoConnectionAndDismiss(IWebDriver d)
 {
     try
     {
         d.SwitchTo().Alert().Dismiss();
         return true;
     }
     catch (NoAlertPresentException)
     {
         return false;
     }
 }
Example #26
0
        // alert 클릭
        public string ClickAlert(out string alertText)
        {
            try
            {
                alertText = Driver.SwitchTo().Alert().Text;
                Driver?.SwitchTo()?.Alert()?.Accept();

                return(string.Empty);
            }
            catch (Exception e)
            {
                alertText = string.Empty;
                return(e.Message);
            }
        }
        public static IAlert AlertIsPresent(IWebDriver drv)
        {
            try
            {
                // Attempt to switch to an alert
                return drv.SwitchTo().Alert();
            }
            catch (OpenQA.Selenium.NoAlertPresentException)
            {
                // We ignore this execption, as it means there is no alert present...yet.
                return null;
            }

            // Other exceptions will be ignored and up the stack
        }
Example #28
0
 //快捷通道购买经验
 public static void buyExp(string userName, string num, IWebDriver driver)
 {
     driver.FindElement(By.Id("quickNav_2")).Click();
     driver.FindElement(By.CssSelector("div#quickCon_2.quickCon>p>input.inp1")).SendKeys(num);
     driver.FindElement(By.CssSelector("div#quickCon_2.quickCon>p>input.inp2")).SendKeys(userName);
     driver.FindElement(By.CssSelector("div#quickCon_2.quickCon>p>input.inp2.indexDq")).Click();
     Thread.Sleep(500);
     driver.FindElement(By.LinkText("特别体验区")).Click();
     Thread.Sleep(500);
     driver.FindElement(By.CssSelector("div#quickCon_2.quickCon>a.qdBtn2")).Click();
     Thread.Sleep(500);
     SwitchToFrame(driver, "//iframe[contains(@class,'fancybox-iframe')]");
     driver.FindElement(By.Id("bt1")).Click();
     driver.SwitchTo().DefaultContent();
     driver.FindElement(By.CssSelector("a.fancybox-item.fancybox-close")).Click();
 }
        /// <summary>
        ///     Switch WebDriver context to frame wrapped by given element
        /// </summary>
        /// <param name="webDriver">Target WebDriver</param>
        /// <param name="frameElement">Frame which will became active</param>
        public FrameContextOverride(IWebDriver webDriver, IWebElement frameElement)
        {
            if (webDriver == null)
            {
                throw new ArgumentNullException("webDriver");
            }

            if (frameElement == null)
            {
                throw new ArgumentNullException("frameElement");
            }

            _wrappedDriver = webDriver;
                
            webDriver.SwitchTo().Frame(frameElement);
        }
Example #30
0
        public void TestMethod1()
        {
            //write actual test
            driver = new FirefoxDriver();
            driver.Navigate().GoToUrl("");

            Func<string, IWebDriver> selectChildFrame = (x) => driver.SwitchTo().Frame(driver.FindElement(By.XPath(x)));
            Action<string> click = (string x) => driver.FindElement(By.XPath(x)).Click();
            Action<string> fElement = (string x) => driver.FindElement(By.XPath(x));
            driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(3));

            //Step into Main Frame

            selectChildFrame.Invoke("//frame[contains(@name, 'mainWindow')]");
            selectChildFrame.Invoke("//frame/frame");
            selectChildFrame.Invoke("//div[contains(@id, 'tab_sheets_container']/iframe[contains(@id, 'iframeSearchPart']");
        }
Example #31
0
        public void SetupTest()
        {
            driver = new FirefoxDriver();
            baseURL = "http://www.trirand.net/";
            verificationErrors = new StringBuilder();
            this.GlobaWait = new WebDriverWait(this.driver, TimeSpan.FromSeconds(20));

            driver.Navigate().GoToUrl(baseURL + "/demoaspnet.aspx");
            driver.FindElement(By.LinkText("Hierarchy")).Click();

            string subGrid2Locator = "Sub Grid (2 nested levels)";
            GlobaWait.Until(d => d.FindElements(By.LinkText(subGrid2Locator)).Any());
            driver.FindElement(By.LinkText(subGrid2Locator)).Click();

            string demoFrameLocator = "demoFrame";
            GlobaWait.Until(d => d.FindElements(By.Id(demoFrameLocator)).Any());
            driver.SwitchTo().Frame(demoFrameLocator);
        }
Example #32
0
 public void SwitchToWindow()
 {
     WebDriver.WindowHandles.Count.Should().Be(2);
     WebDriver.SwitchTo().Window(WebDriver.WindowHandles[1]);
 }
        public string FTP_STLouis(string houseno, string sname, string sttype, string parcelNumber, string searchType, string orderNumber, string ownername, string directParcel)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            IWebElement iframeElement1;
            var         driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            using (driver = new PhantomJSDriver())
            {
                string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";
                string locator_no = "-", owner_name = "-", taxing_address = "-", city_name = "-", subdivison_name = "-", legal_description = "-", year_built = "-";
                string locator_num = "-", prop_location = "-", tax_authority = "St. Louis County Government,41 South Central, Clayton, Missouri 63105", dele_status = "-";


                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");

                    if (searchType == "titleflex")
                    {
                        string address = houseno + " " + sname;
                        gc.TitleFlexSearch(orderNumber, parcelNumber, "", address, "SC", "Charleston");
                        if (HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes")
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_WilliamsonTX"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }

                    if (searchType == "address")
                    {
                        driver.Navigate().GoToUrl("http://revenue.stlouisco.com/IAS/");

                        //find ifram using xpath

                        IWebElement iframeElement = driver.FindElement(By.XPath("/html/frameset/frameset/frame[1]"));
                        //now use the switch command
                        driver.SwitchTo().Frame(iframeElement);
                        Thread.Sleep(3000);
                        driver.FindElement(By.XPath("/html/body/form/table/tbody/tr[2]/td[1]/div[3]/span/label")).Click();
                        Thread.Sleep(3000);
                        driver.FindElement(By.XPath("//*[@id='tboxAddrNum']")).SendKeys(houseno);
                        driver.FindElement(By.XPath("//*[@id='tboxStreet']")).SendKeys(sname);
                        driver.FindElement(By.XPath("//*[@id='butFind']")).SendKeys(Keys.Enter);

                        gc.CreatePdf_WOP(orderNumber, "Address Search", driver, "MO", "Saint Louis");

                        //multi parecl
                        driver.SwitchTo().DefaultContent();
                        iframeElement1 = driver.FindElement(By.XPath("/html/frameset/frameset/frame[2]"));
                        driver.SwitchTo().Frame(iframeElement1);
                        Thread.Sleep(3000);
                        string count = driver.FindElement(By.XPath("//*[@id='labelTotalRows']")).Text.Trim();
                        if (count != "1 Record Found")
                        {
                            Multi_Parcel_Search(orderNumber);
                            driver.Quit();
                            return("MultiParcel");
                        }

                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.XPath("//*[@id='panelData']")).Text;
                            if (nodata.Contains("No records were found"))
                            {
                                HttpContext.Current.Session["Nodata_StLouis"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    else if (searchType == "parcel")
                    {
                        driver.Navigate().GoToUrl("http://revenue.stlouisco.com/IAS/");
                        //find ifram using xpath
                        IWebElement iframeElement = driver.FindElement(By.XPath("/html/frameset/frameset/frame[1]"));
                        //now use the switch command
                        driver.SwitchTo().Frame(iframeElement);
                        Thread.Sleep(3000);
                        driver.FindElement(By.XPath("//*[@id='tboxLocatorNum']")).SendKeys(parcelNumber);
                        driver.FindElement(By.XPath("//*[@id='butFind']")).SendKeys(Keys.Enter);

                        gc.CreatePdf(orderNumber, parcelNumber, "Parcel search", driver, "MO", "Saint Louis");

                        driver.SwitchTo().DefaultContent();
                        iframeElement1 = driver.FindElement(By.XPath("/html/frameset/frameset/frame[2]"));
                        driver.SwitchTo().Frame(iframeElement1);
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.XPath("//*[@id='panelData']")).Text;
                            if (nodata.Contains("No records were found"))
                            {
                                HttpContext.Current.Session["Nodata_StLouis"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }

                    else if (searchType == "ownername")
                    {
                        driver.Navigate().GoToUrl("http://revenue.stlouisco.com/IAS/");
                        //find ifram using xpath
                        IWebElement iframeElement = driver.FindElement(By.Name("SearchInput"));
                        //now use the switch command
                        driver.SwitchTo().Frame(iframeElement);
                        Thread.Sleep(3000);
                        driver.FindElement(By.Id("rbutName")).Click();
                        Thread.Sleep(3000);
                        string firstname = "", lastname = "";
                        if (ownername.Contains(" "))
                        {
                            string[] name = ownername.Split(' ');
                            firstname = name[0];
                            lastname  = name[1];
                            driver.FindElement(By.XPath("//*[@id='tboxLastName']")).SendKeys(firstname);
                            driver.FindElement(By.XPath("//*[@id='tboxFirstName']")).SendKeys(lastname);
                            driver.FindElement(By.XPath("//*[@id='butFind']")).SendKeys(Keys.Enter);
                        }
                        else
                        {
                            driver.FindElement(By.XPath("//*[@id='tboxLastName']")).SendKeys(ownername);
                            driver.FindElement(By.XPath("//*[@id='butFind']")).SendKeys(Keys.Enter);
                        }
                        gc.CreatePdf_WOP(orderNumber, "Owner Search", driver, "MO", "Saint Louis");

                        driver.SwitchTo().DefaultContent();
                        iframeElement1 = driver.FindElement(By.XPath("/html/frameset/frameset/frame[2]"));
                        driver.SwitchTo().Frame(iframeElement1);
                        Thread.Sleep(3000);
                        try
                        {
                            string count     = driver.FindElement(By.XPath("//*[@id='labelTotalRows']")).Text.Trim();
                            string getcount  = WebDriverTest.Before(count, "Record Found").Trim();
                            int    igetcount = Convert.ToInt16(getcount);
                            if (igetcount <= 10)
                            {
                                if (count != "1 Record Found")
                                {
                                    Multi_Parcel_Search(orderNumber);
                                    driver.Quit();
                                    return("MultiParcel");
                                }
                            }
                            else
                            {
                                HttpContext.Current.Session["multiparcel_StLouis_count"] = "Maximum";
                                return("Maximum");
                            }
                        }
                        catch
                        { }

                        try
                        {
                            string count     = driver.FindElement(By.XPath("//*[@id='labelTotalRows']")).Text.Trim();
                            string getcount  = WebDriverTest.Before(count, "Records Found").Trim();
                            int    igetcount = Convert.ToInt16(getcount);
                            if (igetcount <= 10)
                            {
                                if (count != "1 Records Found")
                                {
                                    Multi_Parcel_Search(orderNumber);
                                    driver.Quit();
                                    return("MultiParcel");
                                }
                            }
                            else
                            {
                                HttpContext.Current.Session["multiparcel_StLouis_count"] = "Maximum";
                                return("Maximum");
                            }
                        }
                        catch
                        { }


                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.XPath("//*[@id='panelData']")).Text;
                            if (nodata.Contains("No records were found"))
                            {
                                HttpContext.Current.Session["Nodata_StLouis"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }

                    //Thread.Sleep(3000);
                    //driver.SwitchTo().DefaultContent();
                    //iframeElement1 = driver.FindElement(By.XPath("/html/frameset/frameset/frame[2]"));
                    //driver.SwitchTo().Frame(iframeElement1);
                    driver.FindElement(By.XPath("/html/body/form/div[3]/center/table/tbody/tr[3]/td/table/tbody/tr[2]/td[3]/img")).Click();
                    driver.SwitchTo().DefaultContent();
                    Thread.Sleep(1000);

                    //owner ship and legal information
                    // Property Details Table.
                    IWebElement iframeElement2 = driver.FindElement(By.XPath("/html/frameset/frame"));
                    driver.SwitchTo().Frame(iframeElement2);

                    Thread.Sleep(3000);
                    //assessment details
                    locator_no = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_OwnLeg_labLocatorNum']")).Text;
                    int                 k = 0, j = 0;
                    IWebElement         TBAssessment = driver.FindElement(By.XPath("/html/body/table/tbody/tr[2]/td/table/tbody/tr[3]/td/form/table/tbody/tr/td[2]/div[3]/div[4]/div[2]/div[1]/div[2]/table/tbody"));
                    IList <IWebElement> TRAssessment = TBAssessment.FindElements(By.TagName("tr"));
                    IList <IWebElement> TDAssessment;
                    foreach (IWebElement row1 in TRAssessment)
                    {
                        TDAssessment = row1.FindElements(By.TagName("td"));
                        if (TDAssessment.Count != 0 && !row1.Text.Contains("Appraised Values") && !row1.Text.Contains("Year"))
                        {
                            try
                            {
                                //click expnad the year
                                IList <IWebElement> expand = TBAssessment.FindElements(By.XPath("//tr[contains(@id,'trAsmt')]/td[1]/img"));

                                foreach (IWebElement exe in expand)
                                {
                                    if (j > 0 && j < 3)
                                    {
                                        IJavaScriptExecutor js = driver as IJavaScriptExecutor;
                                        js.ExecuteScript("arguments[0].click();", exe);
                                        Thread.Sleep(1000);
                                    }
                                    j++;
                                }
                            }
                            catch { }

                            //store the values
                            IList <IWebElement> residential_values = TBAssessment.FindElements(By.XPath("//tr[contains(@id,'trAsmt')]"));
                            foreach (IWebElement rv in residential_values)
                            {
                                try
                                {
                                    if (k > 0 && k < 4)
                                    {
                                        //insert details
                                        TDAssessment = rv.FindElements(By.TagName("td"));
                                        string assessment_details = TDAssessment[1].Text.Trim() + "~" + TDAssessment[3].Text.Trim() + "~" + TDAssessment[4].Text.Trim() + "~" + TDAssessment[5].Text.Trim() + "~" + TDAssessment[7].Text.Trim() + "~" + TDAssessment[8].Text.Trim() + "~" + TDAssessment[9].Text.Trim();
                                        gc.insert_date(orderNumber, locator_no, 23, assessment_details, 1, DateTime.Now);
                                    }
                                    k++;
                                }
                                catch (Exception e)
                                { }
                            }

                            gc.CreatePdf(orderNumber, locator_no, "Assessment Details", driver, "MO", "Saint Louis");
                        }
                    }



                    // Property Details Table.

                    owner_name        = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_OwnLeg_labOwnerName']")).Text;
                    taxing_address    = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_OwnLeg_labTaxAddr']")).Text;
                    city_name         = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_OwnLeg_labCityName']")).Text;
                    subdivison_name   = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_OwnLeg_labSubdivisionName']")).Text;
                    legal_description = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_OwnLeg_labLegalDesc']")).Text;

                    driver.FindElement(By.ClassName("RevDeptContentLink")).SendKeys(Keys.Enter);
                    Thread.Sleep(3000);
                    gc.CreatePdf(orderNumber, locator_no, "PropertyDetails", driver, "MO", "Saint Louis");
                    Thread.Sleep(2000);
                    try
                    {
                        year_built = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_DwellingDataRes_labYearBuilt']")).Text;
                    }
                    catch { }

                    string property_details = owner_name + "~" + taxing_address + "~" + city_name + "~" + subdivison_name + "~" + legal_description + "~" + year_built;
                    if (property_details.Contains("\r\n"))
                    {
                        property_details = property_details.Replace("\r\n", "");
                        gc.insert_date(orderNumber, locator_no, 22, property_details, 1, DateTime.Now);
                        //db.ExecuteQuery("insert into data_value_master (Order_no,parcel_no,Data_Field_Text_Id,Data_Field_value,Is_Table) values ('" + orderNumber + "','" + multirowTD[0].Text.Trim() + "',19 ,'" + multi + "',1)");
                    }
                    AssessmentTime = DateTime.Now.ToString("HH:mm:ss");


                    Thread.Sleep(2000);
                    //Tax amount due
                    driver.FindElement(By.XPath("//*[@id='ctl00_LeftMargin_MarginLinks_aTaxDue']")).SendKeys(Keys.Enter);
                    Thread.Sleep(3000);
                    //need to add tax authority
                    try
                    {
                        IWebElement         TBTaxDue = driver.FindElement(By.XPath("/html/body/table/tbody/tr[2]/td/table/tbody/tr[3]/td/form/table/tbody/tr/td[2]/div[5]/div[2]/div[1]/table/tbody/tr[2]/td/table/tbody"));
                        IList <IWebElement> TRTaxDue = TBTaxDue.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDTaxDue;
                        int i     = 0;
                        int count = TRTaxDue.Count;


                        //if condition used for display two tables

                        foreach (IWebElement row1 in TRTaxDue)
                        {
                            if (!row1.Text.Contains("Locator Number") && !row1.Text.Contains("Tax Year"))
                            {
                                TDTaxDue = row1.FindElements(By.TagName("td"));
                                int TDcount = TDTaxDue.Count();
                                if (TDcount == 8)
                                {
                                    //insert details
                                    string Tax_details = TDTaxDue[0].Text.Trim() + "~" + TDTaxDue[1].Text.Trim() + "~" + TDTaxDue[2].Text.Trim() + "~" + TDTaxDue[3].Text.Trim() + "~" + TDTaxDue[4].Text.Trim() + "~" + TDTaxDue[5].Text.Trim() + "~" + TDTaxDue[6].Text.Trim() + "~" + TDTaxDue[7].Text.Trim() + "~" + "-" + "~" + "-";
                                    gc.insert_date(orderNumber, locator_no, 24, Tax_details, 1, DateTime.Now);
                                }

                                if (TDcount == 6 || TDcount == 2)
                                {
                                    if (i < count - 3)
                                    {
                                        //insert details
                                        string Tax_details = TDTaxDue[0].Text.Trim() + "~" + TDTaxDue[1].Text.Trim() + "~" + TDTaxDue[2].Text.Trim() + "~" + TDTaxDue[3].Text.Trim() + "~" + "-" + "~" + "-" + "~" + "-" + "~" + "-" + "~" + TDTaxDue[4].Text.Trim() + "~" + TDTaxDue[5].Text.Trim();
                                        gc.insert_date(orderNumber, locator_no, 24, Tax_details, 1, DateTime.Now);
                                    }
                                    if (i == count - 3)
                                    {
                                        //insert details
                                        string Tax_details = TDTaxDue[0].Text.Trim() + "~" + "-" + "~" + "-" + "~" + "-" + "~" + "-" + "~" + "-" + "~" + "-" + "~" + "-" + "~" + "-" + "~" + TDTaxDue[1].Text.Trim();
                                        gc.insert_date(orderNumber, locator_no, 24, Tax_details, 1, DateTime.Now);
                                    }

                                    i++;
                                }
                            }
                        }

                        gc.CreatePdf(orderNumber, locator_no, "tax Details", driver, "MO", "Saint Louis");
                    }
                    catch (Exception e) { }

                    driver.Navigate().Back();
                    Thread.Sleep(3000);
                    //Tax History
                    driver.SwitchTo().DefaultContent();
                    Thread.Sleep(3000);
                    IWebElement iframeElement21 = driver.FindElement(By.XPath("/html/frameset/frame"));
                    driver.SwitchTo().Frame(iframeElement21);
                    Thread.Sleep(3000);
                    driver.FindElement(By.Id("ctl00_LeftMargin_MarginLinks_aTaxHistory")).SendKeys(Keys.Enter);
                    Thread.Sleep(3000);
                    locator_num   = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_RealEstateHistoryData1_labelLocatorNum']")).Text;
                    owner_name    = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_RealEstateHistoryData1_labelOwner']")).Text;
                    prop_location = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_RealEstateHistoryData1_labelLocation']")).Text;

                    IWebElement         TBTax_History = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_RealEstateHistoryData1_tableTaxHistory']/tbody"));
                    IList <IWebElement> TRTax_History = TBTax_History.FindElements(By.TagName("tr"));
                    IList <IWebElement> TDTax_History;
                    int a = 0;
                    foreach (IWebElement row1 in TRTax_History)
                    {
                        if (!row1.Text.Contains("Tax Year"))
                        {
                            if (a < 3)
                            {
                                TDTax_History = row1.FindElements(By.TagName("td"));
                                //insert details
                                string TaxHistory_details = owner_name + "~" + prop_location + "~" + TDTax_History[0].Text.Trim() + "~" + TDTax_History[2].Text.Trim() + "~" + TDTax_History[3].Text.Trim() + "~" + TDTax_History[4].Text.Trim() + "~" + TDTax_History[5].Text.Trim() + "~" + TDTax_History[6].Text.Trim() + "~" + TDTax_History[7].Text.Trim() + "~" + tax_authority + "~" + "-";
                                gc.insert_date(orderNumber, locator_num, 25, TaxHistory_details, 1, DateTime.Now);
                            }

                            a++;
                        }
                    }

                    gc.CreatePdf(orderNumber, locator_no, "Tax_History", driver, "MO", "Saint Louis");

                    TaxTime = DateTime.Now.ToString("HH:mm:ss");

                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");

                    gc.insert_TakenTime(orderNumber, "MO", "Saint Louis", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);


                    driver.Quit();
                    gc.mergpdf(orderNumber, "MO", "Saint Louis");
                    return("Data Inserted Successfully");
                }

                catch (Exception ex)
                {
                    driver.Quit();
                    GlobalClass.LogError(ex, orderNumber);
                    throw ex;
                }
            }
        }
Example #34
0
 public void switchTo(By selector)
 {
     driver.SwitchTo().Frame(driver.FindElement(selector));
 }
Example #35
0
 public static IWebDriver LastWindow(this IWebDriver driver)
 => driver.SwitchTo().Window(driver.WindowHandles.Last());
Example #36
0
 /// <summary>
 /// Instructs the driver to send future commands to a different frame or window.
 /// </summary>
 /// <returns>
 /// An <see cref="ITargetLocator"/> object which can be used to select a frame or window.
 /// </returns>
 public ITargetLocator SwitchTo()
 {
     return(_driver.SwitchTo());
 }
Example #37
0
        public string FTP_Cowlitz(string streetno, string direction, string streetname, string streettype, string parcelNumber, string ownername, string searchType, string orderNumber, string directParcel, string unitnumber)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            List <string> mcheck = new List <string>();

            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";

            //driver = new c();
            //driver = new PhantomJSDriver();

            //var option = new ChromeOptions();
            //option.AddArgument("No-Sandbox");

            var driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            //  using (driver = new ChromeDriver())
            using (driver = new PhantomJSDriver())
            {
                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");

                    driver.Navigate().GoToUrl("http://www.cowlitzinfo.net/applications/cowlitzassessorparcelsearch/Default.aspx");
                    Thread.Sleep(3000);


                    if (searchType == "titleflex")
                    {
                        string address = "";
                        if (direction != "")
                        {
                            address = streetno + " " + streetname + " " + direction;
                        }
                        else
                        {
                            address = streetno + " " + streetname;
                        }
                        gc.TitleFlexSearch(orderNumber, parcelNumber, ownername, address.Trim(), "WA", "Cowlitz");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Cowlitz_Zero"] = "Zero";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString().Replace("-", "");
                        searchType   = "parcel";
                    }


                    if (searchType == "address")
                    {
                        driver.FindElement(By.XPath("//*[@id='address_input_street_number']")).Click();
                        driver.FindElement(By.XPath("//*[@id='address_input_street_number']")).SendKeys(streetno);

                        driver.FindElement(By.XPath("//*[@id='address_input_street_name']")).Click();
                        driver.FindElement(By.XPath("//*[@id='address_input_street_name']")).SendKeys(streetname);

                        try
                        {
                            driver.FindElement(By.XPath("//*[@id='address_input_street_direction']")).SendKeys(direction);
                        }
                        catch
                        { }

                        gc.CreatePdf_WOP(orderNumber, "Address Search", driver, "WA", "Cowlitz");
                        driver.FindElement(By.Id("submit_input")).SendKeys(Keys.Enter);
                        Thread.Sleep(12000);
                        gc.CreatePdf_WOP(orderNumber, "Address Search Result", driver, "WA", "Cowlitz");

                        ChkMultiParcel = driver.FindElement(By.XPath("//*[@id='search-filter']/figure")).Text.Replace("\r\n", "");

                        if (ChkMultiParcel == "Search Results:1Sort By ")
                        {
                            driver.FindElement(By.XPath("//*[@id='properties_section']/div/a/div/div/div[2]/div/div[2]")).Click();
                            Thread.Sleep(10000);
                        }
                        else
                        {
                            try
                            {
                                int AddressmaxCheck = 0;

                                IWebElement         add_search   = driver.FindElement(By.XPath("//*[@id='properties_section']/div"));
                                IList <IWebElement> TRadd_search = add_search.FindElements(By.TagName("div"));
                                IList <IWebElement> TDadd_search;

                                foreach (IWebElement row in TRadd_search)
                                {
                                    if (AddressmaxCheck <= 25)
                                    {
                                        string addrerss1 = row.GetAttribute("class");
                                        if (addrerss1 == "info")
                                        {
                                            TDadd_search = row.FindElements(By.TagName("div"));
                                            if (TDadd_search.Count != 0)
                                            {
                                                parcelno = TDadd_search[0].Text;
                                                Pro_Id1  = TDadd_search[1].Text;
                                                Pro_Id1  = WebDriverTest.After(Pro_Id1, "Prop ID: ");
                                            }

                                            TDadd_search = row.FindElements(By.TagName("h3"));
                                            if (TDadd_search.Count != 0)
                                            {
                                                fulladdress = TDadd_search[0].Text;
                                            }

                                            multi_details = Pro_Id1 + "~" + fulladdress;
                                            gc.insert_date(orderNumber, parcelno, 815, multi_details, 1, DateTime.Now);
                                        }
                                        AddressmaxCheck++;
                                    }
                                }

                                if (TRadd_search.Count < 27)
                                {
                                    gc.CreatePdf_WOP(orderNumber, "Multi Address search result", driver, "WA", "Cowlitz");
                                    HttpContext.Current.Session["multiparcel_CowlitzWA"] = "Yes";
                                    driver.Quit();
                                    return("MultiParcel");
                                }
                                if (TRadd_search.Count >= 27)
                                {
                                    HttpContext.Current.Session["multiParcel_CowlitzWA_Multicount"] = "Maximum";
                                    driver.Quit();
                                    return("Maximum");
                                }
                            }
                            catch
                            { }
                        }

                        try
                        {
                            string Nodata = driver.FindElement(By.XPath("//*[@id='search-filter']/figure/h3")).Text;
                            if (Nodata.Contains("Search Results:"))
                            {
                                HttpContext.Current.Session["Cowlitz_Zero"] = "Zero";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }

                        //IWebElement add_search = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_gvSearchResults']/tbody"));
                        //IList<IWebElement> TRadd_search = add_search.FindElements(By.TagName("tr"));

                        //IList<IWebElement> TDadd_search;
                        //foreach (IWebElement row in TRadd_search)
                        //{
                        //    TDadd_search = row.FindElements(By.TagName("td"));
                        //    if (TRadd_search.Count > 2 && TDadd_search.Count != 0)
                        //    {
                        //        string straccount_no = TDadd_search[1].Text;
                        //        string parcel_no = TDadd_search[9].Text;
                        //        string Address_Details = TDadd_search[2].Text + " " + TDadd_search[3].Text + " " + TDadd_search[4].Text + " " + TDadd_search[5].Text + " " + TDadd_search[6].Text + " " + TDadd_search[7].Text;

                        //        gc.insert_date(orderNumber, parcel_no, 815, straccount_no + "~" + Address_Details, 1, DateTime.Now);
                        //    }
                        //    if (TRadd_search.Count == 2)
                        //    {
                        //        driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_gvSearchResults']/tbody/tr[2]/td[1]/a")).SendKeys(Keys.Enter);
                        //        Thread.Sleep(5000);
                        //        break;
                        //    }
                        //}
                        //if (TRadd_search.Count < 27 && TRadd_search.Count > 2)
                        //{
                        //    gc.CreatePdf_WOP(orderNumber, "Multi Address search result", driver, "WA", "Cowlitz");
                        //    HttpContext.Current.Session["multiparcel_CowlitzWA"] = "Yes";
                        //    driver.Quit();
                        //    return "MultiParcel";
                        //}
                        //if (TRadd_search.Count >= 27 && TRadd_search.Count > 2)
                        //{
                        //    HttpContext.Current.Session["multiParcel_CowlitzWA_Multicount"] = "Maximum";
                        //    driver.Quit();
                        //    return "Maximum";
                        //}
                    }

                    if (searchType == "parcel")
                    {
                        driver.FindElement(By.Id("radSearchType_1")).Click();
                        Thread.Sleep(2000);

                        driver.FindElement(By.XPath("//*[@id='parcel_input']")).Click();
                        driver.FindElement(By.XPath("//*[@id='parcel_input']")).SendKeys(parcelNumber);
                        gc.CreatePdf(orderNumber, parcelNumber, "Parcel search", driver, "WA", "Cowlitz");
                        driver.FindElement(By.XPath("//*[@id='submit_input']")).SendKeys(Keys.Enter);
                        gc.CreatePdf(orderNumber, parcelNumber, "Parcel search result", driver, "WA", "Cowlitz");
                        Thread.Sleep(2000);

                        driver.FindElement(By.XPath("//*[@id='properties_section']/div/div/div/div[1]/a")).SendKeys(Keys.Enter);
                        Thread.Sleep(12000);

                        try
                        {
                            string Nodata = driver.FindElement(By.XPath("//*[@id='search-filter']/figure/h3")).Text;
                            if (Nodata.Contains("Search Results:"))
                            {
                                HttpContext.Current.Session["Cowlitz_Zero"] = "Zero";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }

                    try
                    {
                        // Property Details
                        Parcel_Id     = driver.FindElement(By.XPath("//*[@id='general_property_info']/dl/dd[1]")).Text;
                        Pro_Id        = driver.FindElement(By.XPath("//*[@id='general_property_info']/dl/dd[2]")).Text;
                        Jurisdiction  = driver.FindElement(By.XPath("//*[@id='general_property_info']/dl/dd[3]")).Text;
                        Acres         = driver.FindElement(By.XPath("//*[@id='general_property_info']/dl/dd[4]")).Text;
                        Township      = driver.FindElement(By.XPath("//*[@id='general_property_info']/dl/dd[7]")).Text;
                        Pro_Use       = driver.FindElement(By.XPath("//*[@id='general_property_info']/dl/dd[8]")).Text;
                        Neighberhood  = driver.FindElement(By.XPath("//*[@id='general_property_info']/dl/dd[9]")).Text;
                        Tax_Code      = driver.FindElement(By.XPath("//*[@id='general_property_info']/dl/dd[10]")).Text;
                        Exemptions    = driver.FindElement(By.XPath("//*[@id='general_property_info']/dl/dd[11]")).Text;
                        Leavy_Rate    = driver.FindElement(By.XPath("//*[@id='general_property_info']/dl/dt[12]")).Text;
                        Leavy_Rate    = WebDriverTest.Between(Leavy_Rate, "Rate = ", ")");
                        Primary_Owner = driver.FindElement(By.XPath("//*[@id='owner_info']/dl/dd[1]")).Text;
                        Address1      = driver.FindElement(By.XPath("//*[@id='owner_info']/dl/dd[2]")).Text;
                        Address2      = driver.FindElement(By.XPath("//*[@id='owner_info']/dl/dd[3]")).Text;

                        Address    = Address1 + " " + Address2;
                        Year_Built = driver.FindElement(By.XPath("//*[@id='property_detail_info']/dl/dd[1]")).Text;

                        gc.CreatePdf(orderNumber, parcelNumber, "Property Details", driver, "WA", "Cowlitz");
                        propertydetails = Primary_Owner + "~" + Address + "~" + Pro_Id + "~" + Jurisdiction + "~" + Acres + "~" + Township + "~" + Pro_Use + "~" + Neighberhood + "~" + Tax_Code + "~" + Exemptions + "~" + Leavy_Rate + "~" + Year_Built;
                        gc.insert_date(orderNumber, Parcel_Id, 763, propertydetails, 1, DateTime.Now);

                        //Assessment Details

                        IWebElement         AssessmentTB = driver.FindElement(By.XPath("//*[@id='assess_value_table']/table/tbody"));
                        IList <IWebElement> AssessmentTR = AssessmentTB.FindElements(By.TagName("tr"));
                        IList <IWebElement> AssessmentTD;

                        foreach (IWebElement Assessment in AssessmentTR)
                        {
                            AssessmentTD = Assessment.FindElements(By.TagName("td"));
                            if (AssessmentTD.Count != 0)
                            {
                                Asse_Year      = AssessmentTD[0].Text;
                                TaxPay_year    = AssessmentTD[1].Text;
                                Land_Value     = AssessmentTD[2].Text;
                                Impr_Value     = AssessmentTD[3].Text;
                                Totl_AsseValue = AssessmentTD[4].Text;
                                Notice_Value   = AssessmentTD[5].Text;

                                Assessment_details = Asse_Year + "~" + TaxPay_year + "~" + Land_Value + "~" + Impr_Value + "~" + Totl_AsseValue + "~" + Notice_Value;
                                gc.insert_date(orderNumber, Parcel_Id, 765, Assessment_details, 1, DateTime.Now);
                            }
                        }

                        gc.CreatePdf(orderNumber, parcelNumber, "Assessment Details", driver, "WA", "Cowlitz");

                        //Tax Payment Details

                        IWebElement         TaxPaymentTB = driver.FindElement(By.XPath("//*[@id='tax_value_table']/table/tbody"));
                        IList <IWebElement> TaxPaymentTR = TaxPaymentTB.FindElements(By.TagName("tr"));
                        IList <IWebElement> TaxPaymentTD;

                        foreach (IWebElement TaxPayment in TaxPaymentTR)
                        {
                            TaxPaymentTD = TaxPayment.FindElements(By.TagName("td"));
                            if (TaxPaymentTD.Count != 0)
                            {
                                Tax_Year     = TaxPaymentTD[0].Text;
                                Stmt_Id      = TaxPaymentTD[1].Text;
                                Taxes        = TaxPaymentTD[2].Text;
                                Assesments   = TaxPaymentTD[3].Text;
                                Totl_Charges = TaxPaymentTD[4].Text;
                                Totl_Paid    = TaxPaymentTD[5].Text;
                                Totl_Due     = TaxPaymentTD[6].Text;

                                TaxPayment_details = Tax_Year + "~" + Stmt_Id + "~" + Taxes + "~" + Assesments + "~" + Totl_Charges + "~" + Totl_Paid + "~" + Totl_Due;
                                gc.insert_date(orderNumber, Parcel_Id, 773, TaxPayment_details, 1, DateTime.Now);
                            }
                        }

                        //Pdf download
                        IWebElement         Receipttable    = driver.FindElement(By.XPath("//*[@id='tax_value_table']/table/tbody"));
                        IList <IWebElement> ReceipttableRow = Receipttable.FindElements(By.TagName("tr"));
                        int rowcount = ReceipttableRow.Count;

                        for (int p = 1; p <= rowcount; p++)
                        {
                            if (p < 4)
                            {
                                string Parent_Window1 = driver.CurrentWindowHandle;

                                driver.FindElement(By.XPath("//*[@id='tax_value_table']/table/tbody/tr[" + p + "]/td[10]/a")).Click();
                                Thread.Sleep(10000);


                                System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
                                driver.SwitchTo().Window(driver.WindowHandles.Last());
                                Thread.Sleep(4000);



                                try
                                {
                                    var chromeOptions     = new ChromeOptions();
                                    var downloadDirectory = ConfigurationManager.AppSettings["AutoPdf"];
                                    chromeOptions.AddUserProfilePreference("download.default_directory", downloadDirectory);
                                    chromeOptions.AddUserProfilePreference("download.prompt_for_download", false);
                                    chromeOptions.AddUserProfilePreference("disable-popup-blocking", true);
                                    chromeOptions.AddUserProfilePreference("plugins.always_open_pdf_externally", true);
                                    var chDriver = new ChromeDriver(chromeOptions);
                                    Array.ForEach(Directory.GetFiles(@downloadDirectory), File.Delete);
                                    chDriver.Navigate().GoToUrl(driver.Url);
                                    Thread.Sleep(8000);

                                    //PopUp
                                    try
                                    {
                                        chDriver.SwitchTo().Alert().Accept();
                                        Thread.Sleep(1000);
                                    }
                                    catch
                                    { }
                                    IWebElement         ISpan12 = chDriver.FindElement(By.Id("PdfDialog_PdfDownloadLink"));
                                    IJavaScriptExecutor js12    = chDriver as IJavaScriptExecutor;
                                    js12.ExecuteScript("arguments[0].click();", ISpan12);
                                    Thread.Sleep(5000);

                                    chDriver.FindElement(By.Id("PdfDialog_download")).Click();
                                    Thread.Sleep(20000);

                                    string fileName1 = latestfilename();
                                    Thread.Sleep(2000);
                                    gc.AutoDownloadFile(orderNumber, Parcel_Id, "Cowlitz", "WA", fileName1);
                                    chDriver.Quit();
                                }
                                catch { }

                                driver.SwitchTo().Window(Parent_Window1);
                                Thread.Sleep(2000);
                            }
                        }

                        //Tax Authority
                        driver.FindElement(By.XPath("//*[@id='top']/nav/ul/li[2]/a")).Click();
                        Thread.Sleep(2000);

                        //driver.SwitchTo().Window(driver.WindowHandles.Last());
                        //Thread.Sleep(2000);

                        Tax_Authority = driver.FindElement(By.XPath("//*[@id='address']")).Text;
                        Tax_Authority = WebDriverTest.Between(Tax_Authority, "Address", "Option 1").Replace("\r\n", "");

                        Taxauthority_Details = Tax_Authority;
                        gc.insert_date(orderNumber, Parcel_Id, 780, Taxauthority_Details, 1, DateTime.Now);
                    }
                    catch
                    { }

                    //IWebElement parcel_id = driver.FindElement(By.Id("ctl00_cphParcelSearch_txtParcel"));
                    //string Parcel_Id = parcel_id.GetAttribute("value");
                    //gc.CreatePdf(orderNumber, Parcel_Id, "Property Details", driver, "WA", "Cowlitz");
                    //IWebElement account_no = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_lnkAccount']"));
                    //string Account_No = account_no.Text;
                    //IWebElement jurisdiction = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_txtJurisdiction']"));
                    //string Jurisdiction = jurisdiction.GetAttribute("value");
                    //IWebElement owner_name = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_txtOwner']"));
                    //string Owner_Name = owner_name.GetAttribute("value");
                    //IWebElement mailing_address1 = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_txtAddress1']"));
                    //string Mailing_Address1 = mailing_address1.GetAttribute("value");
                    //IWebElement mailing_address2 = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_txtAddress2']"));
                    //string Mailing_Address2 = mailing_address2.GetAttribute("value");
                    //IWebElement tax_district = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_lnkTaxDistrict']"));
                    //string Tax_District = tax_district.Text;
                    //IWebElement neighbor_hood = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_txtNeighborhood']"));
                    //string Neighbor_Hood = neighbor_hood.GetAttribute("value");
                    //IWebElement levy_rate = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_txtLevyRate']"));
                    //string Levy_Rate = levy_rate.GetAttribute("value");
                    //IWebElement legal_desc = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_txtLegalDescr']"));
                    //string Legal_Desc = legal_desc.GetAttribute("value");
                    //IWebElement property_address = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_txtSitus']"));
                    //string Property_Address = property_address.GetAttribute("value");
                    //string propertydetails = Account_No + "~" + Jurisdiction + "~" + Owner_Name + "~" + Mailing_Address1 + Mailing_Address2 + "~" + Legal_Desc + "~" + Property_Address + "~" + Tax_District + "~" + Neighbor_Hood + "~" + Levy_Rate;
                    //gc.insert_date(orderNumber, Parcel_Id, 763, propertydetails, 1, DateTime.Now);

                    // Assessment Details table

                    //IWebElement tbmulti = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_tblAssessmentInformation']/tbody"));
                    //IList<IWebElement> TRmulti = tbmulti.FindElements(By.TagName("tr"));

                    //IList<IWebElement> TDmulti;
                    //foreach (IWebElement row in TRmulti)
                    //{

                    //    TDmulti = row.FindElements(By.TagName("td"));
                    //    if (TDmulti.Count == 7 && !row.Text.Contains("Assessment\r\nYear"))
                    //    {
                    //        string multi1 = TDmulti[0].Text + "~" + TDmulti[1].Text + "~" + TDmulti[2].Text + "~" + TDmulti[3].Text + "~" + TDmulti[4].Text + "~" + TDmulti[5].Text;
                    //        gc.insert_date(orderNumber, Parcel_Id, 765, multi1, 1, DateTime.Now);
                    //    }
                    //}

                    //  Payment History Table
                    //string currenturl = "";
                    //driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_lnkbtnTransactionHistoricalValues']")).SendKeys(Keys.Enter);
                    //Thread.Sleep(5000);
                    //gc.CreatePdf(orderNumber, Parcel_Id, "TaxPaymentHistory", driver, "WA", "Cowlitz");
                    //try
                    //{
                    //    currenturl = driver.CurrentWindowHandle;
                    //    driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_tblTransactionValues']/tbody/tr[3]/td[9]/a")).SendKeys(Keys.Enter);
                    //    Thread.Sleep(5000);

                    //    driver.SwitchTo().Window(driver.WindowHandles.Last());

                    //    IWebElement tbDelinq = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_tblTrxDetail']/tbody"));
                    //    IList<IWebElement> TRDelinq = tbDelinq.FindElements(By.TagName("tr"));

                    //    IList<IWebElement> TDDelinq;
                    //    foreach (IWebElement row in TRDelinq)
                    //    {

                    //        TDDelinq = row.FindElements(By.TagName("td"));
                    //        if (TDDelinq.Count == 5 && !row.Text.Contains("Assess\r\nYear") && !row.Text.Contains("Total Tax"))
                    //        {
                    //            string Delinq = TDDelinq[0].Text + "~" + TDDelinq[1].Text + "~" + TDDelinq[2].Text + "~" + TDDelinq[3].Text + "~" + TDDelinq[4].Text;
                    //            gc.insert_date(orderNumber, Parcel_Id, 817, Delinq, 1, DateTime.Now);
                    //        }

                    //        if (TDDelinq.Count == 5 && row.Text.Contains("Total Tax") && !row.Text.Contains("Assess\r\nYear"))
                    //        {
                    //            string Delinq = TDDelinq[3].Text + "~" + "~" + "~" + "~" + TDDelinq[4].Text;
                    //            gc.insert_date(orderNumber, Parcel_Id, 817, Delinq, 1, DateTime.Now);
                    //        }
                    //    }


                    //}
                    //catch (Exception ex)
                    //{

                    //}
                    //driver.SwitchTo().Window(currenturl);
                    //List<string> TaxYearDetails = new List<string>();
                    //List<string> TaxBillDetails = new List<string>();
                    //IWebElement tbmulti1 = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_tblTransactionValues']/tbody"));
                    //IList<IWebElement> TRmulti1 = tbmulti1.FindElements(By.TagName("tr"));
                    //IList<IWebElement> TDmulti1;
                    //foreach (IWebElement row in TRmulti1)
                    //{
                    //    TDmulti1 = row.FindElements(By.TagName("td"));
                    //    if ((TDmulti1.Count == 9 || TDmulti1.Count == 8) && !(row.Text.Contains("Assessment\r\nYear")))
                    //    {
                    //        string multi2 = TDmulti1[0].Text + "~" + TDmulti1[1].Text + "~" + TDmulti1[2].Text + "~" + TDmulti1[3].Text + "~" + TDmulti1[4].Text + "~" + TDmulti1[5].Text + "~" + TDmulti1[6].Text;

                    //        gc.insert_date(orderNumber, Parcel_Id, 773, multi2, 1, DateTime.Now);

                    //        if (TDmulti1.Count != 0 && TaxYearDetails.Count < 3)
                    //        {
                    //            IWebElement IYear = TDmulti1[1].FindElement(By.TagName("a"));
                    //            string strYear = IYear.GetAttribute("href");
                    //            TaxYearDetails.Add(strYear);
                    //        }
                    //        if (TDmulti1.Count != 0 && TaxBillDetails.Count < 3)
                    //        {
                    //            IWebElement ITaxBill = TDmulti1[7].FindElement(By.TagName("a"));
                    //            string strTaxBill = ITaxBill.GetAttribute("href");
                    //            TaxBillDetails.Add(strTaxBill);
                    //        }

                    //    }
                    //}

                    //int k = 0, l = 0;
                    //foreach (string yearURL in TaxYearDetails)
                    //{
                    //    driver.Navigate().GoToUrl(yearURL);

                    //    gc.CreatePdf(orderNumber, Parcel_Id, "Tax Detail" + k, driver, "WA", "Cowlitz");
                    //    k++;
                    //    try
                    //    {
                    //        IWebElement tbmulti2 = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_tblTrxDetail']/tbody"));
                    //        IList<IWebElement> TRmulti2 = tbmulti2.FindElements(By.TagName("tr"));
                    //        IList<IWebElement> TDmulti2;
                    //        foreach (IWebElement Tax in TRmulti2)
                    //        {
                    //            TDmulti2 = Tax.FindElements(By.TagName("td"));
                    //            if ((TDmulti2.Count == 6) && !Tax.Text.Contains("Tax Detail") && !Tax.Text.Contains("Account"))
                    //            {
                    //                string taxing_authority = "Cowlitz County Treasurer 207 4th Ave. N.Kelso, WA 98626";
                    //                string multi3 = TDmulti2[0].Text + "~" + TDmulti2[1].Text + "~" + TDmulti2[2].Text + "~" + TDmulti2[3].Text + "~" + TDmulti2[4].Text + "~" + TDmulti2[5].Text;
                    //                string multi4 = multi3 + "~" + taxing_authority;
                    //                gc.insert_date(orderNumber, Parcel_Id, 780, multi4, 1, DateTime.Now);
                    //            }
                    //        }
                    //    }
                    //    catch { }
                    //}
                    //int j = 0;
                    //foreach (string billURL in TaxBillDetails)
                    //{
                    //    driver.Navigate().GoToUrl(billURL);
                    //    IWebElement Ibill = driver.FindElement(By.XPath("//*[@id='PageToolbar']"));
                    //    IList<IWebElement> TRmulti5 = Ibill.FindElements(By.TagName("a"));
                    //    IList<IWebElement> TDmulti5;
                    //    foreach (IWebElement Tax in TRmulti5)
                    //    {
                    //        TDmulti5 = Tax.FindElements(By.TagName("img"));
                    //        if (TDmulti5.Count != 0)
                    //        {
                    //            IWebElement itaxbill = TDmulti5[0];
                    //            string strtaxbill = itaxbill.GetAttribute("id");
                    //            if (strtaxbill.Contains("FullScreenButton"))
                    //            {

                    //                IJavaScriptExecutor js = driver as IJavaScriptExecutor;
                    //                js.ExecuteScript("arguments[0].click();", itaxbill);
                    //                Thread.Sleep(6000);
                    //            }

                    //        }
                    //    }
                    //    gc.CreatePdf(orderNumber, Parcel_Id, "TaxBill Download" + j, driver, "WA", "Cowlitz");
                    //    try
                    //    {
                    //        //gc.downloadfile(billURL, orderNumber, Parcel_Id, "Paid Bill" + j, "WA", "Cowlitz");
                    //    }
                    //    catch { }
                    //    j++;
                    //}

                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "WA", "Cowlitz", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);

                    driver.Quit();
                    gc.mergpdf(orderNumber, "WA", "Cowlitz");
                    return("Data Inserted Successfully");
                }
                catch (Exception ex)
                {
                    driver.Quit();
                    GlobalClass.LogError(ex, orderNumber);
                    throw ex;
                }
            }
        }
        public void VisitTicketLinksTab(TimeTask task)
        {
            var url = string.Format(ConfigurationManager.AppSettings["ResourcePage"], this.TicketId);

            //driver.Navigate().Refresh();
            //driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(60);
            driver.Navigate().GoToUrl(url);



            //driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);
            //Console.WriteLine("source");
            //Console.WriteLine(driver.PageSource);
            var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(60));

            wait.Until(d => d.FindElement(By.ClassName("TitleText")).GetAttribute("innerHTML").Contains(this.TicketId.ToString()));
            Console.WriteLine("working id {0}", driver.FindElement(By.ClassName("TitleText")).GetAttribute("innerHTML"));



            var labelHolders = driver.FindElements(By.ClassName("ValueLabelHolder"));


            string TMString = "";

            string cycle = "";
            //0 es Ticket Falla para ticket de fallas
            var ticketType = labelHolders[1].Text;

            Console.WriteLine("Ticket type {0}", ticketType);
            if (ticketType == "Falla") //falla
            {
                TMString = labelHolders[9].Text;
            }
            else  //solicitud
            {
                TMString = labelHolders[10].Text;
            }
            Console.WriteLine("TM is {0}", TMString);

            driver.FindElement(By.LinkText("Enlaces")).Click();

            //relationship dropdown index is 1
            var spans = driver.FindElements(By.CssSelector("span.DropdownArrow")); //DropdownArrowElement

            var dropDown = driver.FindElements(By.CssSelector("span.DropdownArrow"))[1];


            dropDown.Click();

            DelayHelper.Delay(driver, 10);


            // mouseover dijit_MenuItem_23_text id y 6 down
            Actions action = new Actions(driver);

            action.MoveToElement(driver.FindElement(By.Id("dijit_MenuItem_4_text"))).Perform();
            driver.SwitchTo().ActiveElement().SendKeys(Keys.Down);
            driver.SwitchTo().ActiveElement().SendKeys(Keys.Down);
            driver.SwitchTo().ActiveElement().SendKeys(Keys.Down);
            driver.SwitchTo().ActiveElement().SendKeys(Keys.Down);
            driver.SwitchTo().ActiveElement().SendKeys(Keys.Down);
            driver.SwitchTo().ActiveElement().SendKeys(Keys.Down);


            wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
            wait.Until(ExpectedConditions.ElementToBeClickable(driver.FindElement(By.Id("dijit_MenuItem_9_text"))));

            var addchildren = driver.FindElement(By.Id("dijit_MenuItem_9_text"));

            addchildren.Click();
            DelayHelper.Delay(driver, 20);



            //#com_ibm_team_workitem_web_ui_internal_view_layout_NameValueLayout_0 > table > tbody > tr:nth-child(3) > td.com-ibm-team-workitem-namevalue-value-td > span > select
            var selections = driver.FindElements(By.ClassName("selectSelect"));

            Console.WriteLine("nro:{0}", selections.Count);
            Console.WriteLine("nro:{0}", selections[0].Text);
            var selector = selections[0];

            var selectElement = new SelectElement(selector);



            wait.Until(d => d.FindElements(By.ClassName("selectSelect")).Count == 2);
            Console.WriteLine(driver.FindElements(By.ClassName("selectSelect"))[1].GetAttribute("innerHTML"));
            wait.Until(d => new SelectElement(d.FindElements(By.ClassName("selectSelect"))[1]).Options.Count == 13);
            Console.WriteLine("done waiting for 13 options");

            Console.WriteLine("*****Selecting tarea option******");
            Console.WriteLine(driver.FindElements(By.ClassName("selectSelect"))[1].GetAttribute("innerHTML"));

            var selectOptions = new SelectElement(driver.FindElements(By.ClassName("selectSelect"))[1]);

            selectOptions.SelectByText("Tarea");

            var wait2 = new WebDriverWait(driver, TimeSpan.FromSeconds(20));

            wait2.Until(d => d.FindElement(By.ClassName("createItemLink")).Text == "Create Linked Tarea...");


            driver.FindElement(By.ClassName("createItemLink")).Click();


            var taskPage = new TaskPage(driver, TMString, task);

            taskPage.CreateTask2();
            taskPage.UpdateTask();
        }
Example #39
0
        private void PreCheckCurrentWindowHandle()
        {
            string found = null;

            try
            {
                found = webDriver.WindowHandles.Where(x => x == webDriver.CurrentWindowHandle).FirstOrDefault();
            }
            catch
            { }
            if (found == null)
            {
                webDriver.SwitchTo().Window(webDriver.WindowHandles.Last());
            }
        }
Example #40
0
    static void Main()
    {
        // select by Name
        //string url1 = "http://testing.todvachev.com/selectors/name/";
        //open page with driver to select by Name
        //driver.Navigate().GoToUrl(url1);
        //IWebElement element = driver.FindElement(By.Name("myName"));

        //or to select by ID
        //string url2 = "http://testing.todvachev.com/selectors/id/";
        //string ID = "testImage";
        //driver.Navigate().GoToUrl(url2);
        //IWebElement element = driver.FindElement(By.Id(ID));

        //or select by class name
        //string url3 = "http://testing.todvachev.com/selectors/class-name/";
        //string className = "testClass"; //here we have selected a paragraph with text
        //driver.Navigate().GoToUrl(url3);
        //IWebElement element = driver.FindElement(By.ClassName(className));
        //Console.WriteLine(element.Text);

        /*or select by CSS Path or XPath; CSS works faster than XPath, IE has poor support for XPath
         * string url4 = "http://testing.todvachev.com/selectors/css-path";
         * //string cssPath = "#post-108 > div > figure > img"; //shows Selenium the path of HTML code
         * //If cssPath is not correct, NoSuchElementException
         * string cssPath = "#post-108 > div > fig > img";
         * string xPath = "//*[@id=\"post-108\"]/div/figure/img";
         * IWebDriver driver = new ChromeDriver();
         * driver.Navigate().GoToUrl(url4);
         * //IWebElement cssPathElement = driver.FindElement(By.CssSelector(cssPath));
         * IWebElement cssPathElement;
         * IWebElement xPathElement = driver.FindElement(By.XPath(xPath));
         * try
         * {
         *  cssPathElement = driver.FindElement(By.CssSelector(cssPath));
         *  if (cssPathElement.Displayed)
         *  {         GreenMessage("I can see the CSS Path element");     }         }
         * catch (NoSuchElementException)
         * {             RedMessage("Something went wrong");         } */

        /* if (element.Displayed)
         *  if (cssPathElement.Displayed)
         * {
         *  //System.Console.WriteLine("Yes I can see the element"); or you can create methods to print message in different colors.
         *  GreenMessage("Yes I can see the element");
         * } else {
         *  //System.Console.WriteLine("Something went wrong");
         *  RedMessage("Something went wrong");
         * }
         * if (xPathElement.Displayed)
         * {
         *  GreenMessage("Yes I can see the element");
         * } else {
         *  //System.Console.WriteLine("Something went wrong");
         *  RedMessage("Something went wrong");
         * }
         * Thread.Sleep(3000); // create a pause of 3 seconds */

        /*string url5 = "http://testing.todvachev.com/special-elements/text-input-field/";
         * driver.Navigate().GoToUrl(url5);
         * textBox = driver.FindElement(By.Name("username"));
         * textBox.SendKeys("Test text");
         * Thread.Sleep(3000);
         * textBox.Clear();
         * Thread.Sleep(3000); */

        /*string url6 = "http://testing.todvachev.com/special-elements/check-button-test-3/";
         * string option = "1";
         * driver.Navigate().GoToUrl(url6);
         * // if you are selecting the first checkbox
         * //checkBox = driver.FindElement(By.CssSelector("#post-33 > div > p:nth-child(8) > input[type=\"checkbox\"]:nth-child(1)"));
         * // if you are selecting the second checkbox
         * //checkBox = driver.FindElement(By.CssSelector("#post-33 > div > p:nth-child(8) > input[type=\"checkbox\"]:nth-child(3)"));
         * //if you have more than one selector, create a string called option with a number 1 and then the below code
         * checkBox = driver.FindElement(By.CssSelector("#post-33 > div > p:nth-child(8) > input[type=\"checkbox\"]:nth-child(" + option + ")"));
         *
         * //to check if the checkmark is placed on the checkbox use the value "checked" in GetAttribute method in if..else statement
         * if (checkBox.GetAttribute("checked") == "true")
         * {
         *  Console.WriteLine("Checkbox is checked!");
         * } else {     Console.WriteLine("Not Checked!"); }
         * //to get the values of the checkbox
         * Console.WriteLine(checkBox.GetAttribute("value")); //will get value of first checkbox
         * option = "3"; //then reinitialise checkBox
         * checkBox = driver.FindElement(By.CssSelector("#post-33 > div > p:nth-child(8) > input[type=\"checkbox\"]:nth-child(" + option + ")"));
         * Console.WriteLine(checkBox.GetAttribute("value")); //will get value of second checkbox */

        /*to place a check mark on a checkbox, need to investigate more.....
         * option = "1";
         * checkBox.Click();
         * Thread.Sleep(3000);*/

        /*string url7 = "http://testing.todvachev.com/special-elements/radio-button-test/";
         * string[] option = {"1", "3", "5"};
         * driver.Navigate().GoToUrl(url7);
         * // if you are selecting the first checkbox
         * //radioButton = driver.FindElement(By.CssSelector("#post-10 > div > form > p:nth-child(6) > input[type=\"radio\"]:nth-child(1)"));
         * // if you have more than one selector, create a string called option with a number 1 and then the below code
         * for (int i = 0; i < option.Length; i++)
         * {
         *  radioButton = driver.FindElement(By.CssSelector("#post-10 > div > form > p:nth-child(6) > input[type=\"radio\"]:nth-child(1)"));
         *  if (radioButton.GetAttribute("checked") == "true")
         *  {
         *      Console.WriteLine("The " + (i+1) + " Radiobutton is checked!");
         *  }   else {
         *      Console.WriteLine("Radiobutton Not Checked!");
         *  }     }*/

        /* string url8 = "http://testing.todvachev.com/special-elements/drop-down-menu-test/";
         * // string dropDownMenuElements = "#post-6 > div > p:nth-child(6) > select > option:nth-child(1)"; // This is the first element. You can change the child(1) number to select the next element
         * string dropDownMenuElements = "#post-6 > div > p:nth-child(6) > select > option:nth-child(3)";
         * driver.Navigate().GoToUrl(url8);
         *
         * dropDownMenu = driver.FindElement(By.Name("DropDownTest"));
         * // Console.WriteLine(dropDownMenu.GetAttribute("value")); // check the value of the current selection of the dropdown menu
         * Console.WriteLine("The selected value is: " + dropDownMenu.GetAttribute("value")); //
         *
         * elementFromDropDownMenu = driver.FindElement(By.CssSelector(dropDownMenuElements));
         * Console.WriteLine("The Third option in dropdown menu is: " + elementFromDropDownMenu.GetAttribute("value"));
         * elementFromDropDownMenu.Click(); //select the value and make it the new value
         * Console.WriteLine("The selected value is: " + dropDownMenu.GetAttribute("value"));
         *
         * for (int i = 1; i <=4; i++) //check all elements in dropdown menu
         * {
         *   dropDownMenuElements = "#post-6 > div > p:nth-child(6) > select > option:nth-child(" + i + ")";
         *   elementFromDropDownMenu = driver.FindElement(By.CssSelector(dropDownMenuElements));
         *   Console.WriteLine("The " + i + " Third option in dropdown menu is: " + elementFromDropDownMenu.GetAttribute("value"));
         * }
         * Thread.Sleep(3000); */

        string url9 = "http://testing.todvachev.com/special-elements/alert-box/";

        driver.Navigate().GoToUrl(url9);
        Console.WriteLine(alert.Text);                                                //to display the text in the alert on the screen
        alert = driver.SwitchTo().Alert();                                            //initialise alert
        alert.Accept();                                                               //to click OK to accept the alert
        image = driver.FindElement(By.CssSelector("#post-119 > div > figure > img")); //to view the instance after the alert was accepted, create an image and find it
        try
        { if (image.Displayed)
          {
              Console.WriteLine("I can see the image after the alert was accepted");
          }
        }
        catch (NoSuchElementException)
        {
            Console.WriteLine("Something went wrong!");
        }
        Thread.Sleep(3000);

        driver.Quit();
    }
Example #41
0
        public void ContextMenutest()

        {
            IWebElement contextMenulink = driver.FindElement(By.LinkText("Context Menu"));

            contextMenulink.Click();

            IWebElement contextMenu = driver.FindElement(By.XPath("//div[@id='hot-spot']"));

            actions = new Actions(driver);
            actions.ContextClick(contextMenu).Perform();

            wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
            wait.Until(ExpectedConditions.AlertIsPresent());
            IAlert alert = driver.SwitchTo().Alert();

            try
            {
                Assert.IsTrue(alert != null);
            }
            catch (NoAlertPresentException)
            {
            }
            alert.Accept();
            try
            {
                driver.SwitchTo().Alert();
            }
            catch (NoAlertPresentException)
            {
                Assert.Pass("Alert is not present on the page");
            }
        }
Example #42
0
 public void SwitchToActiveTab()
 {
     driver.SwitchTo().Window(driver.WindowHandles.Last());
 }
Example #43
0
 public void verificarAlerta()
 {
     Thread.Sleep(2000);
     driver.SwitchTo().Alert().Accept();
 }
        static List <Company> GetData(IWebDriver driver, string Query)
        {
            List <Company> listCompany = new List <Company>();

            driver.Navigate().GoToUrl("https://www.ytj.fi/");
            driver.FindElement(By.XPath("//*[@id='search-term']")).SendKeys(Query);

            driver.FindElement(By.XPath("//*[@class='btn btn-lg'][text()='Etsi']")).Click();

            try
            {
                IAlert alert = driver.SwitchTo().Alert();
                alert.Accept();
            }
            catch (NoAlertPresentException e)
            {
                //Console.WriteLine("Алерта нет. Все ок");
            }

            WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));

            wait.Until(_driver => ((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").Equals("complete"));

            //Тут переходим на результат поиска и подучаем все ссылки
            //IReadOnlyCollection<IWebElement> listLink = driver.FindElements(By.XPath("//*[@id='search-result']/table/tbody/tr/td/a"));

            Dictionary <string, string> listOneTableValue = GetOneTableValue(driver);

            foreach (var itemLink in listOneTableValue)
            {
                Company company = new Company();
                company.Name = itemLink.Value;

                driver.Navigate().GoToUrl(itemLink.Key);

                wait.Until(_driver => ((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").Equals("complete"));

                //С этой карточки собираем все данные и записываем в CSV
                //Получаем все таблицы, потом исходя из индекса будем сканировать их
                IReadOnlyCollection <IWebElement> listTableDom = driver.FindElements(By.XPath("//*[@id='detail-result']/table/tbody"));
                int countTable = 0;
                foreach (IWebElement table in listTableDom)
                {
                    //Тут разбираем нужные таблицы на нужные значение
                    if (countTable == 0)
                    {
                        company.Url   = GetSite(table);
                        company.Phone = GetPhone(table);
                    }

                    //В этой таблице берем данные из регистра
                    if (countTable == 1)
                    {
                        company.DataRegistry = GetRegistryData(table);
                    }

                    countTable++;
                }

                listCompany.Add(company);
            }

            return(listCompany);
        }
Example #45
0
        public void ResetPasswordAttempts(string emailaddress, log4net.ILog log)
        {
            //instantiate new Adduserdetailspage

            USERS_link.Click();
            try
            {
                Email_Address_Text.SendKeys(emailaddress);
            }
            catch (StaleElementReferenceException ex)
            {
                log.Info("Staleblock" + ex.ToString());
                PageFactory.InitElements(driver, this);
                Email_Address_Text.SendKeys(emailaddress);
            }

            Search_link.Click();
            try
            {
                SEARCH_RESULTS_links.Click();
            }
            catch (Exception)
            {
                PageFactory.InitElements(driver, this);
                SEARCH_RESULTS_links.Click();
            }

            //Check that it is visible (i.e. USer needs to have attempts reset)
            Assert.IsTrue(isElementPresent(Reset_password_attempts_link));

            Reset_password_attempts_link.Click();

            driver.SwitchTo().ActiveElement().SendKeys("test");
            driver.SwitchTo().ActiveElement().SendKeys(Keys.Return);

            //Ensure that it has been clicked
            Assert.IsFalse(isElementPresent(Reset_password_attempts_link));



            try
            {
                USERS_link.Click();
            }
            catch (Exception)
            {
                PageFactory.InitElements(driver, this);
                USERS_link.Click();
            }


            log.Info("User '" + emailaddress + "' password reset  successfully.");

            /**
             * try
             * {
             *  Assert.IsFalse(isElementPresent((SEARCH_RESULTS_links)));
             *
             * }
             * catch
             * {
             *
             *  Thread.Sleep(1000);
             *  usersPage = new LAFAdminManageusersPage(driver);
             *  Assert.IsFalse(isElementPresent((SEARCH_RESULTS_links)));
             *
             * }
             *
             **/
        }
Example #46
0
        public void SwitchToLastTab()
        {
            List <String> browserTabs = new List <string>(_driver.WindowHandles);

            _driver.SwitchTo().Window(browserTabs.Last());
        }
Example #47
0
 public void SwitchToNewTab()
 {
     driver.SwitchTo().ActiveElement();
 }
Example #48
0
        public void Validatate_ManagerFund_InvestmentsMonitor_Report()
        {
            try
            {
                QAReportsDriver = objbase.Initializedriver();
                QAReportsDriver.Navigate().GoToUrl(ConfigurationSettings.AppSettings["QAT"]);
                QAReportsDriver.Manage().Window.Maximize();
                objbase.WaitforPageload();

                IWebElement         elelnkreport     = QAReportsDriver.FindElement(By.Id("btnReports"));
                IJavaScriptExecutor QAReportexecutor = (IJavaScriptExecutor)QAReportsDriver;
                QAReportexecutor.ExecuteScript("arguments[0].click();", elelnkreport);
                objbase.WaitforPageload();

                IWebElement tableqareportsmenu = QAReportsDriver.FindElement(By.Id("reportsMenu"));
                objbase.WaitforPageload();

                IWebElement lnkqareports = QAReportsDriver.FindElement(By.LinkText("Hermes QA Reports"));
                QAReportexecutor.ExecuteScript("arguments[0].click();", lnkqareports);
                objbase.WaitforPageload();


                QAReportsDriver.SwitchTo().Window(QAReportsDriver.WindowHandles.Last());
                objbase.WaitforPageload();

                // QAReportsDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);

                IWebElement eletabedindex = QAReportsDriver.FindElement(By.Name("tabedindex"));
                objbase.WaitForFrameload();
                var wdwaittabedindex = new WebDriverWait(QAReportsDriver, TimeSpan.FromSeconds(30));
                wdwaittabedindex.Until(ExpectedConditions.FrameToBeAvailableAndSwitchToIt("tabedindex"));
                objbase.WaitForFrameload();


                // QAReportsDriver.SwitchTo().Frame("tabedindex");
                // QAReportsDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(30);
                //objbase.WaitforPageload();

                IWebElement eleInvestorFund = QAReportsDriver.FindElement(By.Id("tabid8"));
                objbase.WaitforPageRefresh();
                QAReportexecutor.ExecuteScript("arguments[0].click();", eleInvestorFund);
                objbase.WaitforPortfolioload();
                QAReportsDriver.SwitchTo().DefaultContent();


                IWebElement frmtabview       = QAReportsDriver.FindElement(By.Name("tabview"));
                var         framewaittabview = new WebDriverWait(QAReportsDriver, TimeSpan.FromSeconds(30));
                framewaittabview.Until(ExpectedConditions.FrameToBeAvailableAndSwitchToIt("tabview"));
                objbase.WaitforPageload();

                // QAReportsDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);


                //  QAReportsDriver.SwitchTo().Frame(frmtabview).SwitchTo().Frame("frametree1");
                //  QAReportsDriver.SwitchTo().Frame("tabview");

                QAReportsDriver.FindElement(By.Name("frametree1"));
                objbase.WaitforPageload();
                var wdwaitfrmframetree1 = new WebDriverWait(QAReportsDriver, TimeSpan.FromSeconds(30));
                wdwaitfrmframetree1.Until(ExpectedConditions.FrameToBeAvailableAndSwitchToIt("frametree1"));
                objbase.WaitforPageload();

                //   QAReportsDriver.SwitchTo().Frame("frametree1");

                /* break into two switch statements*/

                IWebElement eleporfolio = QAReportsDriver.FindElement(By.LinkText(ConfigurationSettings.AppSettings["selectfund"]));
                QAReportexecutor.ExecuteScript("arguments[0].click();", eleporfolio);
                objbase.WaitforPageload();
                QAReportsDriver.SwitchTo().DefaultContent();

                IWebElement frmtabview1     = QAReportsDriver.FindElement(By.Name("tabview"));
                var         waitfortabview1 = new WebDriverWait(QAReportsDriver, TimeSpan.FromSeconds(30));
                waitfortabview1.Until(ExpectedConditions.FrameToBeAvailableAndSwitchToIt("tabview"));
                objbase.WaitforPageload();


                IWebElement frmFrametree4    = QAReportsDriver.FindElement(By.Id("frametree4"));
                var         wdwaitframetree4 = new WebDriverWait(QAReportsDriver, TimeSpan.FromSeconds(30));
                wdwaitframetree4.Until(ExpectedConditions.FrameToBeAvailableAndSwitchToIt("frametree4"));
                objbase.WaitforPageload();

                /****/


                //    QAReportsDriver.SwitchTo().Frame(frmtabview1).SwitchTo().Frame("frametree4");
                IWebElement treetable = QAReportsDriver.FindElement(By.Id("tree1table"));
                objbase.WaitforPageRefresh();

                IWebElement eleaccfeereport = treetable.FindElement(By.Id("i04"));
                eleaccfeereport.Click();
                objbase.WaitforAlert();

                try
                {
                    var potfolioloadwait = new WebDriverWait(QAReportsDriver, TimeSpan.FromSeconds(60));
                    potfolioloadwait.Until(ExpectedConditions.AlertIsPresent());
                    QAReportsDriver.SwitchTo().Alert().Accept();
                    objbase.WaitforPageRefresh();
                }
                catch (Exception ex)
                {}
                // QAReportsDriver.SwitchTo().DefaultContent();

                QAReportsDriver.SwitchTo().Window(QAReportsDriver.WindowHandles.Last());
                QAReportsDriver.Manage().Window.Maximize();
                objbase.WaitforPageRefresh();

                // QAReportsDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);

                QAReportsDriver.FindElement(By.Name("frametree1"));
                objbase.WaitforPageload();
                var waitforframetree1 = new WebDriverWait(QAReportsDriver, TimeSpan.FromSeconds(30));
                waitforframetree1.Until(ExpectedConditions.FrameToBeAvailableAndSwitchToIt("frametree1"));
                objbase.WaitforPageload();

                IWebElement tbltreet       = QAReportsDriver.FindElement(By.Id("tree1table"));
                IWebElement eleportfolioid = tbltreet.FindElement(By.Id("portfolioid"));
                QAReportsDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
                //objbase.WaitforPageRefresh();

                SelectElement seleportfolioid = new SelectElement(eleportfolioid);
                seleportfolioid.SelectByValue(ConfigurationSettings.AppSettings["ManagerPortfolioid"]);
                objbase.WaitforReportPage();
                //  Assert.IsTrue(QAReportsDriver.PageSource.Contains("GROSVENOR"));
                QAReportsDriver.Quit();
            }
            catch (Exception exInvestor)
            {
                Console.WriteLine(" QA Manager Fund Exception :" + exInvestor.Message.ToString());
                QAReportsDriver.Quit();
            }
        }
Example #49
0
        public static bool WaitForPageToLoad(this IWebDriver driver, TimeSpan?timeout = null)
        {
            string state = string.Empty;

            try
            {
                WebDriverWait wait = new WebDriverWait(driver, timeout ?? Constants.DefaultTimeout);

                //Checks every 500 ms whether predicate returns true if returns exit otherwise keep trying till it returns ture
                wait.Until(d =>
                {
                    try
                    {
                        state = ((IJavaScriptExecutor)driver).ExecuteScript(@"return document.readyState").ToString();
                    }
                    catch (InvalidOperationException)
                    {
                        //Ignore
                    }
                    catch (NoSuchWindowException)
                    {
                        //when popup is closed, switch to last windows
                        driver.LastWindow();
                    }

                    //In IE7 there are chances we may get state as loaded instead of complete
                    return(state.Equals("complete", StringComparison.InvariantCultureIgnoreCase));
                });
            }
            catch (TimeoutException)
            {
                //sometimes Page remains in Interactive mode and never becomes Complete, then we can still try to access the controls
                if (!state.Equals("interactive", StringComparison.InvariantCultureIgnoreCase))
                {
                    throw;
                }
            }
            catch (NullReferenceException)
            {
                //sometimes Page remains in Interactive mode and never becomes Complete, then we can still try to access the controls
                if (!state.Equals("interactive", StringComparison.InvariantCultureIgnoreCase))
                {
                    throw;
                }
            }
            catch (WebDriverException)
            {
                if (driver.WindowHandles.Count == 1)
                {
                    driver.SwitchTo().Window(driver.WindowHandles[0]);
                }

                state = ((IJavaScriptExecutor)driver).ExecuteScript(@"return document.readyState").ToString();
                if (!(state.Equals("complete", StringComparison.InvariantCultureIgnoreCase) || state.Equals("loaded", StringComparison.InvariantCultureIgnoreCase)))
                {
                    throw;
                }
            }

            return(true);
        }
Example #50
0
        /// <summary>
        ///     This is the main method called by VoxCommando when performing plugin actions. All actions go through here.
        /// </summary>
        /// <param name="actionNameArray">
        ///     An array of strings representing action name. Example action: xbmc.send >>>
        ///     actionNameArray[0] is the plugin name (xbmc), actionNameArray[1] is "send".
        /// </param>
        /// <param name="actionParameters">An array of strings representing our action parameters.</param>
        /// <returns>an actionResult</returns>
        public actionResult doAction(string[] actionNameArray, string[] actionParameters)
        {
            var          ar            = new actionResult();
            const string unknownAction = "Unknown " + nameof(Browser) + " plugin action.";

            if (actionNameArray.Length < 2)
            {
                ar.setError(unknownAction);
                return(ar);
            }
            string actionName1 = actionNameArray[1].ToUpper();

            if (webDriver == null &&
                actionName1 != "START")
            {
                ar.setError("No web browser opened or selected.");
                return(ar);
            }
            try {
                switch (actionName1)
                {
                // TODO: check for updates for all web driver executables.
                // ReSharper disable PossibleNullReferenceException
                case "GOTOURL": {
                    if (actionParameters.Length == 0)
                    {
                        ar.setError("'Url' parameter missing.");
                    }
                    else
                    {
                        if (!actionParameters[0].StartsWith("http://") ||
                            !actionParameters[0].StartsWith("https://"))
                        {
                            actionParameters[0] = "https://" + actionParameters[0];
                        }
                        try {
                            isPageLoaded = false;
                            Task.Run(
                                () => {
                                    webDriver.Navigate().GoToUrl(actionParameters[0]);
                                    isPageLoaded = true;
                                    HostInstance.triggerEvent("Browser.PageLoaded", new List <string>(0));
                                }
                                );
                        }
                        catch (Exception ex) {
                            ar.setError("Failed to open specified URL:\n" + ex);
                            break;
                        }
                        ar.setInfo("Page loading started.");
                    }
                    break;
                }

                case "WAIT": {
                    while (!isPageLoaded)
                    {
                        Thread.Sleep(10);
                    }
                    ar.setInfo("Page loaded.");
                    break;
                }

                case "ELEMENT": {
                    if (actionNameArray.Length < 3)
                    {
                        ar.setError(unknownAction);
                        break;
                    }
                    switch (actionNameArray[2].ToUpper())
                    {
                    case "FINDROOT": {
                        // selector parameter
                        By selector = CreateElementSelector(ref ar, actionParameters);
                        ReadOnlyCollection <IWebElement> elements = webDriver.FindElements(selector);
                        if (elements.Count == 0)
                        {
                            ar.setError("Cannot find element with specified value. Check your 'Selector value' parameter.");
                        }
                        else
                        {
                            foundWebElements = elements;
                            currentElement   = elements[0];
                            ar.setSuccess(foundWebElements.Count.ToString());
                        }
                        break;
                    }

                    case "FIND": {
                        if (currentElement == null)
                        {
                            ar.setError("No element selected.");
                            return(ar);
                        }
                        // selector parameter
                        By selector = CreateElementSelector(ref ar, actionParameters);
                        ReadOnlyCollection <IWebElement> elements = currentElement.FindElements(selector);
                        if (elements.Count == 0)
                        {
                            ar.setError("Cannot find element with specified value. Check your 'Selector value' parameter.");
                        }
                        else
                        {
                            foundWebElements = elements;
                            currentElement   = elements[0];
                            ar.setSuccess(foundWebElements.Count.ToString());
                        }
                        break;
                    }

                    case "SELECT": {
                        // sets currentElement to one from found elements.
                        int selectIndex;
                        if (foundWebElements.Count == 0)
                        {
                            ar.setError("No elements found to select one of them.");
                        }
                        else if (foundWebElements.Count == 1)
                        {
                            ar.setError("First element selected.");
                        }
                        else if (actionParameters.Length == 0)
                        {
                            ar.setError("<Index> of element to select not specified.");
                        }
                        else if (!int.TryParse(actionParameters[0], out selectIndex))
                        {
                            ar.setError("Invalid <Index> parameter.");
                        }
                        else if (selectIndex < 1 || selectIndex > foundWebElements.Count)
                        {
                            ar.setError("Index parameter is out of range of found elements count.");
                        }
                        else
                        {
                            currentElement = foundWebElements[selectIndex - 1];
                            ar.setSuccess("Element selected.");
                        }
                        break;
                    }

                    case "INPUT": {
                        if (currentElement == null)
                        {
                            ar.setError("No element selected.");
                            return(ar);
                        }
                        if (actionParameters.Length == 0)
                        {
                            ar.setError("'Text to write' parameter missing.");
                            return(ar);
                        }
                        currentElement.SendKeys(actionParameters[0]);
                        ar.setInfo("OK.");
                        break;
                    }

                    case "CLICK": {
                        if (currentElement == null)
                        {
                            ar.setError("No element selected.");
                            return(ar);
                        }
                        currentElement.Click();
                        ar.setInfo("OK.");
                        break;
                    }

                    case "GETVISIBLETEXT": {
                        if (currentElement == null)
                        {
                            ar.setError("No element selected.");
                            return(ar);
                        }
                        ar.setSuccess(currentElement.Text);
                        break;
                    }

                    case "GETATTR": {
                        // value of specified attribute for this element.
                        if (currentElement == null)
                        {
                            ar.setError("No element selected.");
                            return(ar);
                        }
                        if (actionParameters.Length == 1)
                        {
                            ar.setError("'Attribute name' parameter missing.");
                            return(ar);
                        }
                        string attrValue;
                        try {
                            attrValue = currentElement.GetAttribute(actionParameters[0]);
                        }
                        catch (StaleElementReferenceException) {
                            ar.setError("Reference to current element is no longer valid.\nRe-find your element.");
                            return(ar);
                        }
                        ar.setSuccess(attrValue);
                        break;
                    }

                    case "GETPROP": {
                        // JavaScript property of the element.
                        if (currentElement == null)
                        {
                            ar.setError("No element selected.");
                            return(ar);
                        }
                        if (actionParameters.Length == 1)
                        {
                            ar.setError("'JS property name' parameter missing.");
                            return(ar);
                        }
                        string attrValue;
                        try {
                            attrValue = currentElement.GetProperty(actionParameters[0]);
                        }
                        catch (StaleElementReferenceException) {
                            ar.setError("Reference to current element is no longer valid.\nRe-find your element.");
                            return(ar);
                        }
                        ar.setSuccess(attrValue);
                        break;
                    }

                    case "GETCSS": {
                        // value of CSS property of current element.
                        if (currentElement == null)
                        {
                            ar.setError("No element selected.");
                            return(ar);
                        }
                        if (actionParameters.Length == 1)
                        {
                            ar.setError("'CSS property name' parameter missing.");
                            return(ar);
                        }
                        string attrValue;
                        try {
                            attrValue = currentElement.GetCssValue(actionParameters[0]);
                        }
                        catch (StaleElementReferenceException) {
                            ar.setError("Reference to current element is no longer valid.\nRe-find your element.");
                            return(ar);
                        }
                        ar.setSuccess(attrValue);
                        break;
                    }

                    case "GETPARENT": {
                        if (currentElement == null)
                        {
                            ar.setError("No element selected.");
                            return(ar);
                        }
                        try {
                            currentElement.FindElement(By.XPath("//span/parent::*"));
                        }
                        catch (NoSuchElementException) {
                            ar.setError("Cannot find parent of current element.");
                        }
                        break;
                    }

                    default: {
                        ar.setError(unknownAction);
                        break;
                    }
                    }
                    break;
                }

                    #region Browser window

                case "GETSIZE": {
                    // get
                    if (actionParameters.Length == 0)
                    {
                        Size size = webDriver.Manage().Window.Size;
                        ar.setSuccess($"{size.Width},{size.Height}");
                    }
                    // set
                    else if (actionParameters.Length == 2)
                    {
                        int width;
                        if (!int.TryParse(actionParameters[0], out width))
                        {
                            ar.setError("Invalid window width.");
                        }
                        int height;
                        if (!int.TryParse(actionParameters[1], out height))
                        {
                            ar.setError("Invalid window height.");
                        }
                        webDriver.Manage().Window.Size = new Size(width, height);
                    }
                    else
                    {
                        ar.setError("Invalid parameters count.");
                    }
                    break;
                }

                case "GETPOSITION": {
                    // get
                    if (actionParameters.Length == 0)
                    {
                        Point position = webDriver.Manage().Window.Position;
                        ar.setSuccess($"{position.X},{position.Y}");
                    }
                    // set
                    else if (actionParameters.Length == 2)
                    {
                        int x;
                        if (!int.TryParse(actionParameters[0], out x))
                        {
                            ar.setError("Invalid X position.");
                        }
                        int y;
                        if (!int.TryParse(actionParameters[1], out y))
                        {
                            ar.setError("Invalid Y position.");
                        }
                        webDriver.Manage().Window.Position = new Point(x, y);
                    }
                    else
                    {
                        ar.setError("Invalid parameters count.");
                    }
                    break;
                }

                // change window state
                case "NORMALIZE": {
                    webDriver.Manage().Window.Size = savedNormalSize;
                    ar.setInfo("OK.");
                    break;
                }

                case "MAXIMIZE": {
                    savedNormalSize = webDriver.Manage().Window.Size;
                    webDriver.Manage().Window.Maximize();
                    ar.setInfo("OK.");
                    break;
                }

                case "MINIMIZE": {
                    savedNormalSize = webDriver.Manage().Window.Size;
                    webDriver.Manage().Window.Minimize();
                    ar.setInfo("OK.");
                    break;
                }

                case "FULLSCREEN": {
                    savedNormalSize = webDriver.Manage().Window.Size;
                    webDriver.Manage().Window.FullScreen();
                    ar.setInfo("OK.");
                    break;
                }

                    #endregion

                    #region Working with tabs

                case "TAB": {
                    if (actionNameArray.Length < 3)
                    {
                        ar.setError(unknownAction);
                        break;
                    }
                    switch (actionNameArray[2].ToUpper())
                    {
                    case "NEW": {
                        webDriver.ExecuteJavaScript("window.open('','_blank');");
                        webDriver.SwitchTo().Window(webDriver.WindowHandles.Last());
                        break;
                    }

                    case "SELECT": {
                        if (actionParameters.Length == 0)
                        {
                            ar.setError("'Tab name' parameter missing.");
                        }
                        else if (SelectWindow(actionParameters[0]))
                        {
                            ar.setInfo("OK.");
                        }
                        else
                        {
                            ar.setError("Cannot find tab with specified name.");
                        }
                        break;
                    }

                    case "SELECTBYNUM": {
                        int tabNumber;
                        if (actionParameters.Length == 0)
                        {
                            ar.setError("'Tab index' parameter missing.");
                        }
                        else if (int.TryParse(actionParameters[0], out tabNumber) ||
                                 tabNumber - 1 > webDriver.WindowHandles.Count)
                        {
                            webDriver.SwitchTo().Window(webDriver.WindowHandles[tabNumber - 1]);
                            ar.setInfo("OK.");
                        }
                        else
                        {
                            ar.setError("Cannot find tab with specified name.");
                        }
                        break;
                    }

                    case "CLOSE": {
                        webDriver.Close();
                        webDriver?.SwitchTo().Window(webDriver.WindowHandles.Last());
                        break;
                    }

                    case "TITLE": {
                        ar.setSuccess(webDriver.Title);
                        break;
                    }

                    case "URL": {
                        ar.setSuccess(webDriver.Url);
                        break;
                    }

                    case "GETTABS": {
                        ar.setSuccess(string.Join("\n", webDriver.WindowHandles));
                        break;
                    }

                    default: {
                        ar.setError(unknownAction);
                        break;
                    }
                    }
                    break;
                }

                    #endregion

                    #region Browser start/stop

                case "START": {
                    bool headless = PluginOptions.LaunchHidden;
                    if (actionParameters.Length > 0 &&
                        !bool.TryParse(actionParameters[0], out headless))
                    {
                        ar.setError("Invalid value for 'hidden' parameter.");
                        break;
                    }

                    try {
                        StartWebDriver(headless);
                    }
                    catch (Exception ex) {
                        ar.setError("Failed to start browser:\n" + ex);
                        break;
                    }
                    ar.setInfo("OK.");
                    break;
                }

                case "STOP": {
                    webDriver.Quit();
                    ar.setInfo("Web driver stopped working.");
                    break;
                }

                case "SWITCH": {
                    if (actionParameters.Length == 0)
                    {
                        ar.setError("'Browser type' parameter missing.");
                    }
                    else
                    {
                        BrowserType browserType;
                        if (Enum.TryParse(actionParameters[0], true, out browserType))
                        {
                            try {
                                webDriver.Quit();
                                webDriver.Dispose();
                                PluginOptions.BrowserType = browserType;
                                StartWebDriver(isHidden);
                            }
                            catch (Exception ex) {
                                ar.setError($"Failed to switch to {browserType:G}:\n" + ex);
                                break;
                            }
                            ar.setInfo("OK.");
                        }
                        else
                        {
                            ar.setError("Invalid browser type.");
                        }
                    }
                    break;
                }

                    #endregion

                default: {
                    ar.setError(unknownAction);
                    break;
                }
                    // ReSharper restore PossibleNullReferenceException
                }
            }
            catch (Exception ex) {
                ar.setError(ex.ToString());
            }

            return(ar);
        }
Example #51
0
        public void CheckHomeNewsAddAndDeleteEn()
        {
            driver.Navigate().GoToUrl((ConfigurationManager.AppSettings["ServerName"]) + "english/news/Pages/Forms/AllItems.aspx");

            if (CheckTestItem() == -0)
            {
                ClickFilesOnRibbon();
                DeleteItem();
            }

            ClickFilesOnRibbon();

            String newDocumentSelector = "[id^='Ribbon.Documents.New.NewDocument']";

            try
            {
                wait.Until(ExpectedConditions.ElementExists(By.CssSelector(newDocumentSelector)));
                wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector(newDocumentSelector)));
                wait.Until(ExpectedConditions.ElementToBeClickable(By.CssSelector(newDocumentSelector)));
                IWebElement newDocument = driver.FindElement(By.CssSelector(newDocumentSelector));
                newDocument.FindElement(By.XPath("./a[1]/span")).Click();
            }
            catch
            {
                Assert.Fail("Couldn't find New Document on Ribbon!");
            }
            try
            {
                String titleSelector = "[name$='titleTextBox']";
                wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector(titleSelector)));
                IWebElement Title = driver.FindElement(By.CssSelector(titleSelector));
                Title.SendKeys("Test");
            }
            catch
            {
                Assert.Fail("Couldn't find Title input box!");
            }
            try
            {
                String      createSelector = "[id$='buttonCreatePage']";
                IWebElement Create         = driver.FindElement(By.CssSelector(createSelector));
                Create.Click();
            }
            catch
            {
                Assert.Fail("Couldn't find Create button!");
            }

            CheckTestItem();

            ClickFilesOnRibbon();

            try
            {
                String CheckInSelector = "[id^='Ribbon.Documents.EditCheckout.CheckIn']";
                wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector(CheckInSelector)));
                wait.Until(ExpectedConditions.ElementToBeClickable(By.CssSelector(CheckInSelector)));
                IWebElement CheckIn = driver.FindElement(By.CssSelector(CheckInSelector));
                CheckIn.Click();
            }
            catch
            {
                Assert.Fail("Couldn't Find Check In Button!");
            }

            IWebDriver    CheckinDialog = driver.SwitchTo().Frame(driver.FindElement(By.ClassName("ms-dlgFrame")));
            WebDriverWait CheckinWait   = new WebDriverWait(CheckinDialog, TimeSpan.FromSeconds(40));

            try
            {
                String publishSelector = "ActionCheckinPublish";
                CheckinWait.Until(ExpectedConditions.ElementIsVisible(By.Id(publishSelector)));  //wait for dialog to appear
                CheckinWait.Until(ExpectedConditions.ElementToBeClickable(By.Id(publishSelector)));
                IWebElement publish = CheckinDialog.FindElement(By.Id(publishSelector));
                publish.Click();
            }
            catch
            {
                Assert.Fail("Couldn't find Publish Major Version Radio Button");
            }

            try
            {
                string      OKSelector = "//*[@id='CheckinOk']";
                IWebElement OK         = CheckinDialog.FindElement(By.XPath(OKSelector));
                OK.Click();
            }
            catch
            {
                Assert.Fail("Couldn't find OK button!");
            }

            CheckTestItem();

            ClickFilesOnRibbon();

            try
            {
                String approve_rejectSelector = "[id^='Ribbon.Documents.Workflow.Moderate']";
                wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector(approve_rejectSelector)));
                wait.Until(ExpectedConditions.ElementToBeClickable(By.CssSelector(approve_rejectSelector)));
                IWebElement approve_reject = driver.FindElement(By.CssSelector(approve_rejectSelector));
                approve_reject.Click();
            }
            catch
            {
                Assert.Fail("Couldn't find Approve-Reject button on Ribbon");
            }

            IWebDriver    ApproveDialog = driver.SwitchTo().Frame(driver.FindElement(By.ClassName("ms-dlgFrame")));
            WebDriverWait ApproveWait   = new WebDriverWait(ApproveDialog, TimeSpan.FromSeconds(40));

            try
            {
                String approveSelector = "[id$='RadioBtnApprovalStatus_0']";
                ApproveWait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector(approveSelector)));  //wait for dialog window to appear
                ApproveWait.Until(ExpectedConditions.ElementToBeClickable(By.CssSelector(approveSelector)));
                IWebElement approve = ApproveDialog.FindElement(By.CssSelector(approveSelector));
                approve.Click();
            }
            catch
            {
                Assert.Fail("Couldn't find Approve Radio Button!");
            }

            try
            {
                String      OKSelector = "[id$='RptControls_BtnSubmit']";
                IWebElement OK         = ApproveDialog.FindElement(By.CssSelector(OKSelector));
                OK.Click();
            }
            catch
            {
                Assert.Fail("Couldn't find OK button!");
            }

            wait.Until(ExpectedConditions.AlertIsPresent());
            driver.SwitchTo().Alert().Accept();
            Thread.Sleep(1000);

            CheckHomeNewsWebPartNodeCountEn();

            driver.Navigate().GoToUrl((ConfigurationManager.AppSettings["ServerName"]) + "english/news/Pages/Forms/AllItems.aspx");

            CheckTestItem();

            ClickFilesOnRibbon();

            DeleteItem();

            CheckHomeNewsWebPartNodeCountEn();
        }
        public void TheSaveClauseandDraftTest()
        {
            driver.Navigate().GoToUrl(baseURL + "CS/");
            driver.FindElement(By.LinkText("Log In")).Click();
            Thread.Sleep(3000);
            driver.FindElement(By.Id("UserName")).Clear();
            driver.FindElement(By.Id("UserName")).SendKeys("*****@*****.**");
            driver.FindElement(By.Id("Password")).Clear();
            driver.FindElement(By.Id("Password")).SendKeys("Admin1234!");
            driver.FindElement(By.Id("SubmitLogin")).Click();
            Thread.Sleep(3000);
            Assert.AreEqual("You logged in successfully.", driver.FindElement(By.XPath("//body/div[2]/div")).Text);
            driver.FindElement(By.LinkText("rafael")).Click();
            Thread.Sleep(3000);
            driver.FindElement(By.LinkText("view-link")).Click();
            driver.FindElement(By.XPath("(//a[contains(text(),'Clauses')])[2]")).Click();
            Thread.Sleep(3000);
            driver.FindElement(By.XPath("(//button[@type='button'])[4]")).Click();
            Thread.Sleep(1000);
            driver.FindElement(By.LinkText("Add New Clause")).Click();
            Thread.Sleep(3000);
            driver.FindElement(By.Id("Heading")).Clear();
            driver.FindElement(By.Id("Heading")).SendKeys("Test Agreement ClauseSaveDraft");
            driver.FindElement(By.Id("CreateClauseFilename")).Click();
            driver.FindElement(By.XPath("//div[@class='panel-body']/fieldset/div/div/div[5]")).Click();
            Thread.Sleep(5000);
            driver.FindElement(By.Id("ContractTaxonomyButton")).Click();
            Thread.Sleep(3000);
            //driver.FindElement(By.CssSelector("#62 > i.jstree-icon.jstree-ocl")).Click();
            //driver.FindElement(By.CssSelector("#63 > i.jstree-icon.jstree-ocl")).Click();
            //driver.FindElement(By.Id("64_anchor")).Click();
            driver.FindElement(By.XPath("//li[@id='62']/i")).Click();
            Thread.Sleep(5000);
            driver.FindElement(By.XPath("//li[@id='63']/i")).Click();
            Thread.Sleep(5000);
            driver.FindElement(By.Id("64_anchor")).Click();
            Thread.Sleep(5000);
            driver.FindElement(By.XPath("//div[4]/div[2]/button")).Click();
            driver.FindElement(By.Id("ClauseTaxonomyButton")).Click();
            Thread.Sleep(3000);
            //driver.FindElement(By.CssSelector("#307 > i.jstree-icon.jstree-ocl")).Click();
            //driver.FindElement(By.CssSelector("#308 > i.jstree-icon.jstree-ocl")).Click();
            //driver.FindElement(By.XPath("//a[@id='309_anchor']/i")).Click();
            driver.FindElement(By.XPath("//li[@id='307']/i")).Click();
            Thread.Sleep(5000);
            driver.FindElement(By.XPath("//li[@id='308']/i")).Click();
            Thread.Sleep(5000);
            driver.FindElement(By.Id("309_anchor")).Click();
            Thread.Sleep(5000);
            driver.FindElement(By.XPath("//div[4]/div[2]/button")).Click();
            Thread.Sleep(3000);
            //Console.WriteLine("Clause taxonomy choosen");
            //driver.FindElement(By.XPath("//a[@id='AddClauseAlt']/i")).Click();
            //Thread.Sleep(6000);
            //driver.SwitchTo().Frame("Description_ifr");
            //IWebElement body = driver.FindElement(By.CssSelector("#tinymce"));
            //body.Clear();
            //body.SendKeys("This Executive Employment Agreement (this \"Agreement\") is made as of [EFFECTIVE DATE] (the \"Effective Date\") by and between [EXECUTIVE NAME], with principal place of residence at [EXECUTIVE ADDRESS] (\"Executive\"), and [COMPANY NAME], with its principal place of business at [COMPANY ADDRESS] (\"Company\"), (sometimes collectively referred to as the \"Parties\").");
            Console.WriteLine("Switching to Description frame...");
            try
            {
                driver.SwitchTo().Frame("Description_ifr");
                Console.Write("Switch to Description frame successful");
            }
            catch (AssertionException e)
            {
                verificationErrors.Append(e.Message);
            }

            IWebElement body = driver.FindElement(By.CssSelector("#tinymce"));

            body.Clear();
            Thread.Sleep(2000);
            try
            {
                body.SendKeys("This Executive Employment Agreement");
            }
            catch (AssertionException e)
            {
                verificationErrors.Append(e.Message);
            }
            Console.WriteLine("Switching to Default Content...");
            Thread.Sleep(3000);
            try
            {
                driver.SwitchTo().DefaultContent();
                Console.Write("Switching to default page");
            }
            catch (AssertionException e)
            {
                verificationErrors.Append(e.Message);
            }
            driver.FindElement(By.LinkText("Standard *")).Click();
            try
            {
                driver.SwitchTo().Frame("StandardClause_ifr");
                Console.Write("Switch to Standard Clause frame successful");
            }
            catch (AssertionException e)
            {
                verificationErrors.Append(e.Message);
            }
            IWebElement body2 = driver.FindElement(By.CssSelector("#tinymce"));

            body2.Clear();
            Thread.Sleep(2000);
            try
            {
                body2.SendKeys("1.1 \"Affiliate\":");
            }
            catch (AssertionException e)
            {
                verificationErrors.Append(e.Message);
            }
            //driver.SwitchTo().DefaultContent();
            Console.WriteLine("Switching to Default Content...");//SWITCHING TO DEFAULT CONTENT
            Thread.Sleep(3000);
            try
            {
                driver.SwitchTo().DefaultContent();
                Console.Write("Switching to default page");
            }
            catch (AssertionException e)
            {
                verificationErrors.Append(e.Message);
            }
            driver.FindElement(By.Id("ClauseCaption")).Clear();
            driver.FindElement(By.Id("ClauseCaption")).SendKeys("Standard");   //INSERTING CAPTION FOR STANDARD
            driver.FindElement(By.XPath("//a[@id='AddClauseAlt']/i")).Click(); // INSERTING IN CLAUSE STANDARD ALTERNATIVE FOR STANDARD
            try
            {
                driver.SwitchTo().Frame("ClauseAltContent1_ifr");
                Console.Write("Switch to Alt Clause frame successful");
            }
            catch (AssertionException e)
            {
                verificationErrors.Append(e.Message);
            }
            IWebElement body3 = driver.FindElement(By.CssSelector("#tinymce"));

            body3.Clear();
            Thread.Sleep(2000);
            try
            {
                body3.SendKeys("1.1 Affiliate definition");
            }
            catch (AssertionException e)
            {
                verificationErrors.Append(e.Message);
            }                                                /////END OF THE REQUIRED FIELDS OF FORM
            //driver.FindElement(By.LinkText("Alt 1")).Click();
            //driver.FindElement(By.LinkText("Standard *")).Click();
            Console.WriteLine("Switching to Default Content...");///SWITCHING TO DEFAULT CONTENT
            Thread.Sleep(3000);
            try
            {
                driver.SwitchTo().DefaultContent();
                Console.Write("Switching to default page");
            }
            catch (AssertionException e)
            {
                verificationErrors.Append(e.Message);
            }
            driver.FindElement(By.Id("ClausePrimaryButton")).Click();
            //driver.FindElement(By.CssSelector("#ClausePrimaryButton > span.button-status")).Click();
            Thread.Sleep(4000);
            Assert.AreEqual("Clause added successfully.", driver.FindElement(By.XPath("//body/div[2]/div")).Text);
            Thread.Sleep(6000);
            driver.FindElement(By.CssSelector("span.button-status")).Click();
            driver.FindElement(By.LinkText("Draft")).Click();
            driver.FindElement(By.Id("ContractTaxonomyButton")).Click();
            Thread.Sleep(5000);
            //driver.FindElement(By.XPath("//li[@id='24']/i")).Click();
            //Thread.Sleep(2000);
            //driver.FindElement(By.Id("5_anchor")).Click();
            //Thread.Sleep(5000);
            //driver.FindElement(By.Id("25_anchor")).Click();
            //Thread.Sleep(5000);
            driver.FindElement(By.CssSelector("i.jstree-icon.jstree-ocl")).Click();
            driver.FindElement(By.Id("5_anchor")).Click();

            driver.FindElement(By.XPath("//div[4]/div[2]/button")).Click();
            driver.FindElement(By.Id("ClauseTaxonomyButton")).Click();
            driver.FindElement(By.XPath("//div[2]/button[2]")).Click();
            Thread.Sleep(6000);
            driver.FindElement(By.Id("ClauseCaption")).Clear();
            driver.FindElement(By.Id("ClauseCaption")).SendKeys("Executive's Standard");
            driver.FindElement(By.LinkText("Alt 1")).Click();
            Thread.Sleep(6000);
            driver.FindElement(By.Id("ClauseAltTab1")).Clear();
            driver.FindElement(By.Id("ClauseAltTab1")).SendKeys("Affiliates");
            driver.FindElement(By.CssSelector("span.button-status")).Click();/////////save draft or entering draft mode
            Thread.Sleep(4000);
            Assert.AreEqual("Draft Clause edited successfully.", driver.FindElement(By.XPath("//body/div[2]/div")).Text);
            driver.FindElement(By.LinkText("Draft")).Click();
            Thread.Sleep(2000);
            driver.FindElement(By.CssSelector("#ClausePrimaryButton > span.button-status")).Click();///PUBLISH draft
            Thread.Sleep(5000);
            Assert.AreEqual("Draft Clause approved and published successfully.", driver.FindElement(By.XPath("//body/div[2]/div")).Text);
            driver.FindElement(By.Id("DeleteClauseButton")).Click();
            Thread.Sleep(2000);
            driver.FindElement(By.XPath("//div[4]/div[2]/button")).Click();
            Thread.Sleep(4000);
            Assert.AreEqual("Original Clause deleted successfully.", driver.FindElement(By.XPath("//body/div[2]/div")).Text);
            driver.FindElement(By.LinkText("rafael")).Click();
            driver.FindElement(By.LinkText("Log Out")).Click();
        }
Example #53
0
        public bool BaixarDocumento_FluxoProtesto(string doc, bool birigui)
        {
            bool documentoOk   = false;
            bool documentoBase = false;

            try
            {
                var elTable = _driver.FindElement(By.TagName("table"));

                var count = elTable.FindElements(By.TagName("tr")).Count();

                int c = Convert.ToInt32(count);


                var eltr   = elTable.FindElements(By.TagName("tr")).ToList()[c - 1];
                var celula = eltr.FindElements(By.TagName("td"));

                if (celula.Count > 5)
                {
                    if (celula[1].Text == doc)
                    {
                        string motivo = celula[7].Text;
                        string status = celula[8].Text;

                        if (status.Length > 0 && status.ToUpper() == "NEG")
                        {
                            if (birigui)
                            {
                                if (motivo.Length > 0 && motivo.ToUpper() != "AUSENTE" && motivo.ToUpper() != "NÃO PROCURADO" && motivo.ToUpper() != "SEM ENTREGA DOMICILIAR")
                                {
                                    // abrir notificação realizar download
                                    var lnk = celula[9].FindElement(By.TagName("a"));
                                    lnk.SendKeys(Keys.Return);
                                    try
                                    {
                                        lnk.Click();
                                    }
                                    catch { }


                                    Thread.Sleep(2000);

                                    TakeScreenshot();


                                    int  tentativas        = 3;
                                    int  tentativaCorrente = 0;
                                    bool continuar         = true;

                                    while (continuar)
                                    {
                                        // Validar Endereõ com Copia Contrato- Se OK => Salvar
                                        var lnkSalvar = celula[10].FindElement(By.TagName("a"));
                                        Thread.Sleep(1000);
                                        lnkSalvar.SendKeys(Keys.Return);
                                        try { lnkSalvar.Click(); } catch { }
                                        documentoOk = true;



                                        // verificar se já esta na base
                                        try
                                        {  // Check the presence of alert
                                            Thread.Sleep(2000);
                                            _driver.SwitchTo().Alert().Accept();
                                            Thread.Sleep(1000);

                                            documentoBase = true;

                                            continuar = false;
                                        }
                                        catch (NoAlertPresentException ex)
                                        {
                                            documentoBase = false;
                                            tentativaCorrente++;
                                            Thread.Sleep(500);
                                        }

                                        if (tentativaCorrente > tentativas)
                                        {
                                            continuar = false;
                                        }
                                    }
                                }
                            }
                            else
                            {
                                // abrir notificação realizar download
                                var lnk = celula[9].FindElement(By.TagName("a"));
                                lnk.SendKeys(Keys.Return);
                                try
                                {
                                    lnk.Click();
                                }
                                catch { }


                                Thread.Sleep(2000);

                                TakeScreenshot();


                                int  tentativas        = 3;
                                int  tentativaCorrente = 0;
                                bool continuar         = true;

                                while (continuar)
                                {
                                    // Validar Endereõ com Copia Contrato- Se OK => Salvar
                                    var lnkSalvar = celula[10].FindElement(By.TagName("a"));
                                    Thread.Sleep(1000);
                                    lnkSalvar.SendKeys(Keys.Return);
                                    try { lnkSalvar.Click(); } catch { }
                                    documentoOk = true;



                                    // verificar se já esta na base
                                    try
                                    {  // Check the presence of alert
                                        Thread.Sleep(2000);
                                        _driver.SwitchTo().Alert().Accept();
                                        Thread.Sleep(1000);

                                        documentoBase = true;

                                        continuar = false;
                                    }
                                    catch (NoAlertPresentException ex)
                                    {
                                        documentoBase = false;
                                        tentativaCorrente++;
                                        Thread.Sleep(500);
                                    }

                                    if (tentativaCorrente > tentativas)
                                    {
                                        continuar = false;
                                    }
                                }
                            }
                        }
                    }
                }
            }


            //    if (c > 0)
            //    {
            //        foreach(var cel in elTable.FindElements(By.TagName("tr")))
            //        {
            //            var celula = cel.FindElements(By.TagName("td"));
            //            if (celula.Count > 0)
            //            {
            //                if (celula[1].Text == doc)
            //                {
            //                    string motivo = celula[7].Text;
            //                    string status = celula[8].Text;

            //                    if (status.Length > 0 && status.ToUpper() == "NEG")
            //                    {
            //                        if (birigui)
            //                        {
            //                            if (motivo.Length > 0 && motivo.ToUpper() != "AUSENTE" && motivo.ToUpper() != "NÃO PROCURADO" && motivo.ToUpper() != "SEM ENTREGA DOMICILIAR")
            //                            {
            //                                // abrir notificação realizar download
            //                                var lnk = celula[9].FindElement(By.TagName("a"));
            //                                lnk.SendKeys(Keys.Return);
            //                                try
            //                                {
            //                                    lnk.Click();
            //                                }
            //                                catch { }


            //                                Thread.Sleep(2000);

            //                                TakeScreenshot();


            //                                int tentativas = 3;
            //                                int tentativaCorrente = 0;
            //                                bool continuar = true;

            //                                while (continuar)
            //                                {
            //                                    // Validar Endereõ com Copia Contrato- Se OK => Salvar
            //                                    var lnkSalvar = celula[10].FindElement(By.TagName("a"));
            //                                    Thread.Sleep(1000);
            //                                    lnkSalvar.SendKeys(Keys.Return);
            //                                    try { lnkSalvar.Click(); } catch { }
            //                                    documentoOk = true;



            //                                    // verificar se já esta na base
            //                                    try
            //                                    {  // Check the presence of alert
            //                                        Thread.Sleep(2000);
            //                                        _driver.SwitchTo().Alert().Accept();
            //                                        Thread.Sleep(1000);

            //                                        documentoBase = true;

            //                                        continuar = false;
            //                                    }
            //                                    catch (NoAlertPresentException ex)
            //                                    {
            //                                        documentoBase = false;
            //                                        tentativaCorrente++;
            //                                        Thread.Sleep(500);
            //                                    }

            //                                    if (tentativaCorrente > tentativas) continuar = false;

            //                                }
            //                            }
            //                        }
            //                        else
            //                        {
            //                            // abrir notificação realizar download
            //                            var lnk = celula[9].FindElement(By.TagName("a"));
            //                            lnk.SendKeys(Keys.Return);
            //                            try
            //                            {
            //                                lnk.Click();
            //                            }
            //                            catch { }


            //                            Thread.Sleep(2000);

            //                            TakeScreenshot();


            //                            int tentativas = 3;
            //                            int tentativaCorrente = 0;
            //                            bool continuar = true;

            //                            while (continuar)
            //                            {
            //                                // Validar Endereõ com Copia Contrato- Se OK => Salvar
            //                                var lnkSalvar = celula[10].FindElement(By.TagName("a"));
            //                                Thread.Sleep(1000);
            //                                lnkSalvar.SendKeys(Keys.Return);
            //                                try { lnkSalvar.Click(); } catch { }
            //                                documentoOk = true;



            //                                // verificar se já esta na base
            //                                try
            //                                {  // Check the presence of alert
            //                                    Thread.Sleep(2000);
            //                                    _driver.SwitchTo().Alert().Accept();
            //                                    Thread.Sleep(1000);

            //                                    documentoBase = true;

            //                                    continuar = false;
            //                                }
            //                                catch (NoAlertPresentException ex)
            //                                {
            //                                    documentoBase = false;
            //                                    tentativaCorrente++;
            //                                    Thread.Sleep(500);
            //                                }

            //                                if (tentativaCorrente > tentativas) continuar = false;

            //                            }
            //                        }
            //                    }
            //                }
            //            }
            //        }
            //    }
            //}
            catch { }


            return(documentoBase);
        }
Example #54
0
        public void TestWizzair()
        {
            Locator _ = new Locator();
            string  PointOfDeparture   = "Kyiv";
            string  PointOfDestination = "Copenhagen";

            Assert.IsTrue(WaitUntilDisplayed(_.Departure));

            SetDeparture(_.Departure, PointOfDeparture);
            SetDestination(_.Destination, PointOfDestination);

            FindElement(_.SelectDepartureDate);

            FindElement(_.SelectDepartureDate).Click();
            ElementInvisibility(_.LoadingElement);
            WaitUntilDisplayed(_.AvailableDays);
            _driver.FindElements(_.AvailableDays)[2].Click();
            ElementIsVisible(_.LoadingElement);
            ElementInvisibility(_.LoadingElement);
            FindElement(_.OneWayOnlyLink).Click();
            FindElement(_.OKButton).Click();
            WaitUntilDisplayed(_.SearchButton);
            FindElement(_.SearchButton).Click();

            if (_driver.WindowHandles.Count > 1)
            {
                _driver.SwitchTo().Window(_driver.WindowHandles.First()).Close();
                _driver.SwitchTo().Window(_driver.WindowHandles.Last());
            }

            ElementInvisibility(_.LoadingElement);

            new VerifyRoute(FindElement(_.CurrentRoute).Text, PointOfDeparture, PointOfDestination);
            Assert.IsTrue(WaitUntilDisplayed(_.ShowReturnFlightsLink));
            FindElement(_.ShowPricesLink).Click();

            Assert.IsTrue(WaitUntilDisplayed(_.WizzPlusSection));
            Assert.IsTrue(WaitUntilDisplayed(_.WizzGoSection));
            Assert.IsTrue(WaitUntilDisplayed(_.BasicSection));

            Assert.IsTrue(FindElement(_.WizzPlusSectionPrice).Text.Length > 3);
            Assert.IsTrue(FindElement(_.WizzGoSectionPrice).Text.Length > 3);
            Assert.IsTrue(FindElement(_.BasicSectionPrice).Text.Length > 3);

            WaitUntilDisplayed(_.AvailablePricesButton);
            var availablePricesButton = _driver.FindElements(_.AvailablePricesButton);

            ElementIsVisible(_.CloseButton);
            FindElement(_.CloseButton).Click();

            Actions actions = new Actions(_driver);

            actions.MoveToElement(availablePricesButton[1]).Click(availablePricesButton[1]).Perform();
            _wait.Until(ExpectedConditions.ElementToBeClickable(_.ContinueButton));
            FindElement(_.ContinueButton).Click();
            ElementInvisibility(_.LoadingElement);

            //Uncomment if exist seats choice
            //ElementInvisibility(_.LoadingElement);
            //By RecommendedSeats = By.XPath("//button[contains(text(), 'Accept recommended seats')]");
            //ElementIsVisible(RecommendedSeats);
            //FindElement(RecommendedSeats).Click();

            _driver.Navigate().GoToUrl(_driver.Url);
            ElementIsVisible(_.FirstName);
            SetDataPassenger(_.FirstName, FNamePassenger);
            SetDataPassenger(_.LastName, LNamePassenger);

            ElementInvisibility(_.LoadingElement);
            ElementIsVisible(_.Sex);
            _wait.Until(x => x.FindElement(_.Sex).Enabled);

            FindElement(_.Sex).Click();
            _driver.FindElements(_.AvailableBaggage)[2].Click();

            ElementInvisibility(_.LoadingElement);
            _wait.Until(x => x.FindElement(_.PassengersContinueButton).Enabled);

            new VerifyRoute(FindElement(_.Way).Text, PointOfDeparture, PointOfDestination);

            ElementInvisibility(_.LoadingElement);
            ElementIsVisible(_.PassengersContinueButton);
            FindElement(_.PassengersContinueButton).Click();

            ElementIsVisible(_.SingMode);
            Assert.IsTrue(WaitUntilDisplayed(_.SingMode));
        }
        public string FTP_Utah(string houseno, string direction, string sname, string sttype, string parcelNumber, string searchType, string orderNumber, string ownername, string directParcel)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            var driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            // driver = new PhantomJSDriver();
            //driver = new ChromeDriver();
            IJavaScriptExecutor js = driver as IJavaScriptExecutor;
            string        pathurl = "", Owner_Name = "";
            string        StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";
            List <string> taxurllist = new List <string>();

            using (driver = new ChromeDriver())
            {
                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");
                    if (searchType == "titleflex")
                    {
                        string address = houseno + " " + direction + " " + sname + " " + sttype;
                        gc.TitleFlexSearch(orderNumber, parcelNumber, "", address, "UT", "Utah");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Utah_Zero"] = "Zero";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }

                    driver.Navigate().GoToUrl("http://www.utahcountyonline.org/LandRecords/Index.asp");
                    if (searchType == "address")
                    {
                        driver.Navigate().GoToUrl("http://www.utahcountyonline.org/LandRecords/AddressSearchForm.asp");
                        Thread.Sleep(2000);
                        //driver.FindElement(By.XPath("/html/body/div/div[6]/div[2]/table/tbody/tr/td/table/tbody/tr/td[1]/ul[1]/li[2]/a")).SendKeys(Keys.Enter);
                        //gc.CreatePdf_WOP_Chrome(orderNumber, "Address Search",driver, "UT", "Utah");
                        driver.FindElement(By.Id("av_house")).SendKeys(houseno);
                        driver.FindElement(By.Id("av_dir")).SendKeys(direction);
                        driver.FindElement(By.Id("av_street")).SendKeys(sname);
                        driver.FindElement(By.Id("street_type")).SendKeys(sttype);
                        //IWebElement rdio = driver.FindElement(By.XPath("//*[@id='form1']/table/tbody/tr/td/p[2]/label[2]/label/input"));
                        //js.ExecuteScript("arguments[0].click();", rdio);
                        driver.FindElement(By.XPath("//*[@id='form1']/table/tbody/tr/td/p[3]/input")).SendKeys(Keys.Enter);
                        gc.CreatePdf_WOP_Chrome(orderNumber, "Address Search result", driver, "UT", "Utah");
                        //multi parcel
                        IWebElement         multitableElement = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table[1]/tbody"));
                        IList <IWebElement> multitableRow     = multitableElement.FindElements(By.TagName("tr"));
                        if (multitableRow.Count > 2)
                        {
                            IList <IWebElement> multirowTD;
                            foreach (IWebElement row in multitableRow)
                            {
                                multirowTD = row.FindElements(By.TagName("td"));
                                if (multirowTD.Count != 0 && !row.Text.Contains("Serial Number"))
                                {
                                    string multi = multirowTD[1].Text.Trim() + "~" + "-";
                                    gc.insert_date(orderNumber, multirowTD[0].Text.Trim(), 119, multi, 1, DateTime.Now);
                                }
                            }
                            HttpContext.Current.Session["multiparcel_Utah"] = "Yes";
                            if (multitableRow.Count > 25)
                            {
                                HttpContext.Current.Session["multiParcel_Utah_Multicount"] = "Maximum";
                            }
                            driver.Quit();
                            return("MultiParcel");
                        }
                        if (multitableRow.Count == 1)
                        {
                            HttpContext.Current.Session["Utah_Zero"] = "Zero";
                            driver.Quit();
                            return("No Data Found");
                        }
                        else
                        {
                            driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table[1]/tbody/tr[2]/td[1]/a")).SendKeys(Keys.Enter);
                            IWebElement url = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr[2]/td[1]/a"));
                            pathurl    = url.GetAttribute("href");
                            Owner_Name = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr[2]/td[1]")).Text;
                            driver.Navigate().GoToUrl(pathurl);
                            gc.CreatePdf_WOP_Chrome(orderNumber, "Address Search result page", driver, "UT", "Utah");
                        }
                    }

                    else if (searchType == "parcel")
                    {
                        driver.FindElement(By.XPath("/html/body/div/div[6]/div[2]/table/tbody/tr/td/table/tbody/tr/td[1]/ul[1]/li[3]/a")).SendKeys(Keys.Enter);
                        if (parcelNumber.Contains(":") || parcelNumber.Contains(" "))
                        {
                            parcelNumber = parcelNumber.Replace(":", "").Trim();
                            parcelNumber = parcelNumber.Replace(" ", "").Trim();
                        }
                        gc.CreatePdf_Chrome(orderNumber, parcelNumber, "Parcel Search", driver, "UT", "Utah");
                        driver.FindElement(By.Id("av_serial")).SendKeys(parcelNumber);
                        IWebElement rdio = driver.FindElement(By.XPath("//*[@id='form1']/table/tbody/tr/td/p[2]/label[2]/label/input"));
                        js.ExecuteScript("arguments[0].click();", rdio);
                        driver.FindElement(By.XPath("//*[@id='form1']/table/tbody/tr/td/p[3]/input")).SendKeys(Keys.Enter);
                        gc.CreatePdf_Chrome(orderNumber, parcelNumber, "Parcel Search result", driver, "UT", "Utah");

                        IList <IWebElement> TRserial = driver.FindElements(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr"));
                        int count = TRserial.Count;
                        for (int i = 2; i <= count; i++)
                        {
                            try
                            {
                                string selectedvalue = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr[" + i + "]/td[3]/select/option[1]")).Text;
                                selectedvalue = selectedvalue.Replace(":", "");
                                if (selectedvalue == parcelNumber)
                                {
                                    IWebElement propinfo = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr[" + i + "]/td[3]/select/option[2]"));
                                    string      url      = propinfo.GetAttribute("value");
                                    Owner_Name = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr[2]/td[1]")).Text;
                                    gc.CreatePdf_Chrome(orderNumber, parcelNumber, "Parcel Search - select parcel number page", driver, "UT", "Utah");
                                    pathurl = "http://www.utahcounty.gov/LandRecords/" + url;
                                    driver.Navigate().GoToUrl(pathurl);
                                    //  break;
                                }
                            }
                            catch { }
                        }
                    }
                    else if (searchType == "ownername")
                    {
                        driver.FindElement(By.XPath("/html/body/div/div[6]/div[2]/table/tbody/tr/td/table/tbody/tr/td[1]/ul[1]/li[1]/a")).SendKeys(Keys.Enter);
                        gc.CreatePdf_WOP_Chrome(orderNumber, "Owner name Search", driver, "UT", "Utah");
                        driver.FindElement(By.Id("av_name")).SendKeys(ownername);
                        IWebElement rdio = driver.FindElement(By.XPath("//*[@id='av_valid_0']"));
                        //js.ExecuteScript("arguments[0].click();", rdio);
                        rdio.Click();
                        driver.FindElement(By.XPath("//*[@id='form1']/div/table/tbody/tr[1]/td/p[3]/input")).SendKeys(Keys.Enter);
                        gc.CreatePdf_WOP_Chrome(orderNumber, "Owner name Search result", driver, "UT", "Utah");

                        try
                        {
                            //multi parcel
                            IWebElement         multitableElement = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table[1]/tbody"));
                            IList <IWebElement> multitableRow     = multitableElement.FindElements(By.TagName("tr"));
                            IList <IWebElement> multirowTD;
                            foreach (IWebElement row in multitableRow)
                            {
                                multirowTD = row.FindElements(By.TagName("td"));
                                if (multirowTD.Count != 0 && !row.Text.Contains("Owner"))
                                {
                                    string multi = multirowTD[0].Text.Trim() + "~" + multirowTD[4].Text.Trim();
                                    gc.insert_date(orderNumber, multirowTD[1].Text.Trim(), 119, multi, 1, DateTime.Now);
                                }
                            }

                            HttpContext.Current.Session["multiparcel_Utah"] = "Yes";
                            if (multitableRow.Count > 25)
                            {
                                HttpContext.Current.Session["multiParcel_Utah_Multicount"] = "Maximum";
                            }
                            driver.Quit();
                            return("MultiParcel");
                        }
                        catch { }
                        try
                        {
                            IWebElement Nodata = driver.FindElement(By.XPath("/html/body/table"));
                            if (!Nodata.Text.Contains("Property Address") && !Nodata.Text.Contains("Owner Name"))
                            {
                                HttpContext.Current.Session["Utah_Zero"] = "Zero";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }


                    Thread.Sleep(3000);
                    //Property details

                    string Parcel_ID = "-", Property_Address = "-", Mailing_Address = "-", Legal_Description = "-";
                    Parcel_ID         = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[1]/td[1]")).Text;
                    Parcel_ID         = WebDriverTest.After(Parcel_ID, "Serial Number:");
                    Property_Address  = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[3]/td[1]")).Text;
                    Property_Address  = WebDriverTest.After(Property_Address, "Property Address:");
                    Mailing_Address   = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[4]/td[1]")).Text;
                    Mailing_Address   = WebDriverTest.After(Mailing_Address, "Mailing Address:");
                    Legal_Description = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[8]/td[1]")).Text;
                    Legal_Description = WebDriverTest.After(Legal_Description, "Legal Description:");

                    IList <IWebElement> tron = driver.FindElements(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/div/div/div[1]/table[2]/tbody/tr"));
                    for (int trcount = 1; trcount <= tron.Count; trcount++)
                    {
                        IWebElement on       = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/div/div/div[1]/table[2]/tbody/tr[" + trcount + "]/td[1]/span"));
                        string      greentag = on.GetAttribute("class");

                        if (greentag == "style1yv")
                        {
                            Owner_Name += driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/div/div/div[1]/table[2]/tbody/tr[" + trcount + "]/ td[3]")).Text + "&";
                        }
                    }
                    Owner_Name = Regex.Replace(Owner_Name, "[0-9]{2,}", "").Replace("&", " ").Replace(":", "");
                    if (Parcel_ID.Contains(":"))
                    {
                        Parcel_ID = Parcel_ID.Replace(":", "");
                    }
                    gc.CreatePdf_Chrome(orderNumber, Parcel_ID, "Property Details information", driver, "UT", "Utah");
                    //OwnerName = Owner_Name.Substring(OwnerName.Length - 1,1);
                    string prop = Owner_Name + "~" + Property_Address + "~" + Legal_Description + "~" + Mailing_Address;
                    gc.insert_date(orderNumber, Parcel_ID, 122, prop, 1, DateTime.Now);

                    //assessment details
                    string Tax_Year = "-";
                    Thread.Sleep(4000);
                    driver.FindElement(By.XPath("//*[@id='TabbedPanels1']/ul/li[2]")).SendKeys(Keys.Enter);
                    Thread.Sleep(3000);
                    try
                    {
                        driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/div/div/div[2]/table/tbody/tr[3]/td[1]/a")).SendKeys(Keys.Enter);
                        Thread.Sleep(3000);
                        Tax_Year = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/p[1]")).Text;
                        Tax_Year = WebDriverTest.After(Tax_Year, "Tax Year: ");
                        Tax_Year = WebDriverTest.Before(Tax_Year, "   Tax District:").Trim();
                    }
                    catch { }
                    string              RealEstate_Residential = "", RealEstate_Agricultural = "", RealEstate_Commercial = "", RealEstate_Totals = "";
                    string              Improvements_Residential = "", Improvements_Agricultural = "", Improvements_Commercial = "", Improvements_Totals = "";
                    string              Greenbelt_Residential = "", Greenbelt_RealEstate = "", Greenbelt_HomeSite = "", Greenbelt_Totals = "", Greenbelt_TotalsRealProperty = "", Greenbelt_AttachedPersonalProperty = "", Greenbelt_ToatalValuation = "";
                    string              Ok = "";
                    IWebElement         tbassess = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table[1]/tbody"));
                    IList <IWebElement> trassess = tbassess.FindElements(By.TagName("tr"));
                    IList <IWebElement> tdassess;
                    foreach (IWebElement row in trassess)
                    {
                        tdassess = row.FindElements(By.TagName("td"));


                        if (Ok == "Real Estate" && tdassess[3].Text.Trim() != "")
                        {
                            RealEstate_Residential = tdassess[1].Text + "~" + tdassess[3].Text + "~" + tdassess[5].Text + "~" + RealEstate_Residential;
                        }
                        if (tdassess.Count != 0 && row.Text.Contains("* * Real Estate"))
                        {
                            Ok = "Real Estate";
                        }
                        if (Ok == "Improvements" && tdassess[3].Text.Trim() != "")
                        {
                            Improvements_Residential = tdassess[1].Text + "~" + tdassess[3].Text + "~" + tdassess[5].Text + "~" + Improvements_Residential;


                            //RealEstate_Residential = new string(RealEstate_Residential.Reverse().ToArray());
                        }
                        if (tdassess.Count != 0 && row.Text.Contains("* * Improvements"))
                        {
                            Ok = "Improvements";
                        }
                        if (Ok == "Greenbelt as of")
                        {
                            Greenbelt_Residential = tdassess[1].Text + "~" + tdassess[3].Text + "~" + tdassess[5].Text + "~" + Greenbelt_Residential;


                            //RealEstate_Residential = new string(RealEstate_Residential.Reverse().ToArray());
                        }
                        if (tdassess.Count != 0 && row.Text.Contains("* * Greenbelt as of "))
                        {
                            Ok = "Greenbelt as of";
                        }

                        //if (tdassess.Count != 0 && !row.Text.Contains("* * Real Estate"))
                        //{
                        //    string assessment = Tax_Year + "~" + tdassess[1].Text.Trim() + "~" + tdassess[3].Text.Trim() + "~" + tdassess[5].Text.Trim(); ;
                        //    gc.insert_date(orderNumber, Parcel_ID, 123, assessment, 1,DateTime.Now);
                        //}
                    }
                    RealEstate_Residential = RealEstate_Residential + "Ert";
                    RealEstate_Residential = RealEstate_Residential.Replace("~Ert", "");



                    Greenbelt_Residential = Greenbelt_Residential + "Ert";
                    Greenbelt_Residential = Greenbelt_Residential.Replace("~Ert", "");



                    Improvements_Residential = Improvements_Residential + "Ert";
                    Improvements_Residential = Improvements_Residential.Replace("~Ert", "");

                    string   Overall = RealEstate_Residential + "~" + Improvements_Residential + "~" + Greenbelt_Residential;
                    string[] Real = Overall.Split('~');
                    //for (int i = RealSplit.Count() - 1; i >= 0; i--)
                    //{
                    //    string assessment = RealSplit[i] + "~" + tdassess[1].Text.Trim() + "~" + tdassess[3].Text.Trim() + "~" + tdassess[5].Text.Trim(); ;
                    //    gc.insert_date(orderNumber, Parcel_ID, 123, assessment, 1,DateTime.Now);
                    //}
                    int    K = 0;
                    string FirstHalf = "";
                    try
                    {
                        FirstHalf = Real[K + 10] + "~" + Real[K + 11] + "~" + Real[K + 7] + "~" + Real[K + 8] + "~" + Real[K + 4] + "~" + Real[K + 5] + "~" + Real[K + 1] + "~" + Real[K + 2] + "~" + Real[K + 22] + "~" + Real[K + 23] + "~" + Real[K + 19] + "~" + Real[K + 20] + "~" + Real[K + 16] + "~" + Real[K + 17] + "~" + Real[K + 13] + "~" + Real[K + 14] + "~" + Real[K + 40] + "~" + Real[K + 41] + "~" + Real[K + 37] + "~" + Real[K + 38] + "~" + Real[K + 34] + "~" + Real[K + 35] + "~" + Real[K + 31] + "~" + Real[K + 32] + "~" + Real[K + 28] + "~" + Real[K + 29] + "~" + Real[K + 25] + "~" + Real[K + 26];
                    }
                    catch { }
                    gc.insert_date(orderNumber, Parcel_ID, 123, FirstHalf, 1, DateTime.Now);
                    AssessmentTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.CreatePdf_Chrome(orderNumber, Parcel_ID, "Assessment Details information", driver, "UT", "Utah");

                    driver.Navigate().GoToUrl(pathurl);
                    Thread.Sleep(3000);

                    //Tax history details

                    driver.FindElement(By.XPath("//*[@id='TabbedPanels1']/ul/li[3]")).SendKeys(Keys.Enter);
                    gc.CreatePdf_Chrome(orderNumber, Parcel_ID, "Tax History Details information", driver, "UT", "Utah");
                    IWebElement         tbtaxHist = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/div/div/div[3]/table/tbody"));
                    IList <IWebElement> trtaxhist = tbtaxHist.FindElements(By.TagName("tr"));
                    IList <IWebElement> tdtaxhist;

                    foreach (IWebElement row in trtaxhist)
                    {
                        tdtaxhist = row.FindElements(By.TagName("td"));
                        if (tdtaxhist.Count != 0 && !row.Text.Contains("Year"))
                        {
                            string taxhist = tdtaxhist[0].Text + "~" + tdtaxhist[1].Text + "~" + tdtaxhist[2].Text + "~" + tdtaxhist[3].Text + "~" + tdtaxhist[4].Text + "~" + tdtaxhist[5].Text + "~" + tdtaxhist[6].Text + "~" + tdtaxhist[7].Text + "~" + tdtaxhist[8].Text;
                            gc.insert_date(orderNumber, Parcel_ID, 128, taxhist, 1, DateTime.Now);
                        }
                    }

                    try
                    {
                        IWebElement         taxdetailtable    = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/div/div/div[3]/table/tbody"));
                        IList <IWebElement> taxdetailtableRow = taxdetailtable.FindElements(By.TagName("tr"));
                        int taxrowcount = taxdetailtableRow.Count;
                        IList <IWebElement> taxdetailrowTD;
                        int c = 0;
                        foreach (IWebElement rowid1 in taxdetailtableRow)
                        {
                            taxdetailrowTD = rowid1.FindElements(By.TagName("td"));
                            if (taxdetailrowTD.Count != 0 && c <= taxrowcount && c > 2)
                            {
                                IWebElement taxhistory = driver.FindElement(By.XPath("//*[@id='TabbedPanels1']/div/div[3]/table/tbody/tr[" + c + "]/td[1]/a"));
                                string      taxurl     = taxhistory.GetAttribute("href");
                                taxurllist.Add(taxurl);
                                //Thread.Sleep(2000);
                                //string year = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr[1]/td/strong[2]")).Text;
                                //gc.CreatePdf_Chrome(orderNumber, Parcel_ID, "TaxDeailInformation" + year, driver);
                                //IWebElement URL= driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr[17]/td/a"));
                                //string Url = URL.GetAttribute("href");
                                //gc.downloadfile(Url, orderNumber, Parcel_ID, "TaxBill" + year);
                                ////driver.Navigate().GoToUrl("http://www.utahcounty.gov/LandRecords/Property.asp?av_serial="+Parcel_ID);
                                //driver.Navigate().Back();
                            }

                            // Thread.Sleep(3000);
                            c++;
                        }
                    }
                    catch { }
                    int i1 = 0;
                    foreach (string URL in taxurllist)
                    {
                        if (i1 < 3)
                        {
                            driver.Navigate().GoToUrl(URL);
                            Thread.Sleep(4000);
                            string year = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr[1]/td/strong[2]")).Text;
                            gc.CreatePdf_Chrome(orderNumber, Parcel_ID, "TaxDeailInformation" + year, driver, "UT", "Utah");
                            IWebElement URL1 = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr[17]/td/a"));
                            string      Url  = URL1.GetAttribute("href");
                            driver.Navigate().GoToUrl(Url);
                            Thread.Sleep(6000);
                            driver.SwitchTo().Window(driver.WindowHandles.Last());
                            Thread.Sleep(2000);
                            gc.CreatePdf_Chrome(orderNumber, Parcel_ID, "Tax Bill" + year, driver, "UT", "Utah");
                            driver.SwitchTo().Window(driver.WindowHandles.First());
                            Thread.Sleep(2000);
                            //gc.downloadfile(Url, orderNumber, Parcel_ID, "TaxBill" + year);
                            i1++;
                        }
                    }


                    driver.Navigate().GoToUrl("http://www.utahcounty.gov/LandRecords/Property.asp?av_serial=" + Parcel_ID);
                    driver.FindElement(By.XPath("//*[@id='TabbedPanels1']/ul/li[3]")).SendKeys(Keys.Enter);
                    //Tax payment details
                    string      Taxing_Authority = "", Good_PThrough_Date = "", date = "", deleiquent = "";
                    IWebElement tax_pay;
                    try
                    {
                        tax_pay    = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/div/div/div[3]/table/tbody/tr[3]/td[8]/a"));
                        deleiquent = tax_pay.Text;

                        if (deleiquent.Contains("Click for Payoff"))
                        {
                            tax_pay.SendKeys(Keys.Enter);
                            Thread.Sleep(3000);

                            IWebElement td = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td"));
                            date = td.Text;
                            date = WebDriverTest.After(date, "Total amount if paid as of").Trim();
                            date = WebDriverTest.Before(date, ".  .  .").Trim();

                            DateTime G_Date       = Convert.ToDateTime(date);
                            string   dateChecking = DateTime.Now.ToString("MM") + "/15/" + DateTime.Now.ToString("yyyy");

                            if (G_Date < Convert.ToDateTime(dateChecking))
                            {
                                //end of the month
                                date = new DateTime(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(Convert.ToInt16(DateTime.Now.ToString("MM"))), DateTime.DaysInMonth(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(DateTime.Now.ToString("MM")))).ToString("MM/dd/yyyy");
                            }

                            else if (G_Date > Convert.ToDateTime(dateChecking))
                            {
                                // nextEndOfMonth
                                if ((Convert.ToInt16(Convert.ToInt16(DateTime.Now.ToString("MM"))) < 12))
                                {
                                    date = new DateTime(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(Convert.ToInt16(DateTime.Now.ToString("MM")) + 1), DateTime.DaysInMonth(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(DateTime.Now.ToString("MM")) + 1)).ToString("MM/dd/yyyy");
                                }
                                else
                                {
                                    int nxtYr = Convert.ToInt16(DateTime.Now.ToString("yyyy")) + 1;
                                    date = new DateTime(nxtYr, 1, DateTime.DaysInMonth(Convert.ToInt16(DateTime.Now.ToString("yyyy")), 1)).ToString("MM/dd/yyyy");
                                }
                            }
                            string   Mon   = "";
                            string[] da    = date.Split('/');
                            string   month = da[0];
                            string   Date  = da[1];
                            string   year  = da[2];

                            switch (month)
                            {
                            case "01":
                                Mon = "January";
                                break;

                            case "02":
                                Mon = "February";
                                break;

                            case "03":
                                Mon = "March";
                                break;

                            case "04":
                                Mon = "April";
                                break;

                            case "05":
                                Mon = "May";
                                break;

                            case "06":
                                Mon = "June";
                                break;

                            case "07":
                                Mon = "July";
                                break;

                            case "08":
                                Mon = "August";
                                break;

                            case "09":
                                Mon = "September";
                                break;

                            case "10":
                                Mon = "October";
                                break;

                            case "11":
                                Mon = "November";
                                break;

                            case "12":
                                Mon = "December";
                                break;
                            }
                            driver.FindElement(By.XPath("//*[@id='av_date_btn']")).Click();


                            //select month
                            for (int i = 1; i < 12; i++)
                            {
                                string   calmy     = driver.FindElement(By.XPath("/html/body/div[2]/table/thead/tr[1]/td[2]")).Text;
                                string[] my        = calmy.Split(',');
                                string   cal_month = my[0];
                                string   cal_year  = my[1];

                                if (cal_month.Contains(Mon))
                                {
                                    break;
                                }
                                else
                                {
                                    driver.FindElement(By.XPath("/html/body/div[2]/table/thead/tr[2]/td[4]")).Click();
                                }
                            }

                            //select year
                            for (int j = 1; j <= 5; j++)
                            {
                                string   calmy     = driver.FindElement(By.XPath("/html/body/div[2]/table/thead/tr[1]/td[2]")).Text;
                                string[] my        = calmy.Split(',');
                                string   cal_month = my[0];
                                string   cal_year  = my[1];

                                if (cal_year.Contains(year))
                                {
                                    break;
                                }
                                else
                                {
                                    driver.FindElement(By.XPath("/html/body/div[2]/table/thead/tr[2]/td[5]")).Click();
                                }
                            }

                            //select date
                            IWebElement         tbdate = driver.FindElement(By.XPath("/html/body/div[2]/table/tbody"));
                            IList <IWebElement> trdate = tbdate.FindElements(By.TagName("tr"));
                            IList <IWebElement> tddate;
                            foreach (IWebElement row in trdate)
                            {
                                tddate = row.FindElements(By.TagName("td"));
                                for (int a = 1; a <= 5; a++)
                                {
                                    if (row.Text.Contains(Date))
                                    {
                                        for (int b = 1; b <= 8; b++)
                                        {
                                            if (tddate[b].Text.Contains(Date))
                                            {
                                                driver.FindElement(By.XPath("/html/body/div[2]/table/tbody/tr[" + a + "]/td[" + b + "]")).Click();
                                                break;
                                            }
                                        }
                                    }
                                }
                            }

                            driver.FindElement(By.XPath("//*[@id='button']")).SendKeys(Keys.Enter);
                            Thread.Sleep(3000);
                            gc.CreatePdf_Chrome(orderNumber, Parcel_ID, "Deliquent Tax", driver, "UT", "Utah");
                            Taxing_Authority = driver.FindElement(By.XPath("//p[contains(text(),'The Treasurer')]/following-sibling::p")).Text;
                            if (Taxing_Authority.Contains("\r\n"))
                            {
                                Taxing_Authority = Taxing_Authority.Replace("\r\n", " ");
                            }
                            IWebElement         deliTB = driver.FindElement(By.XPath("//p[contains(text(),'Serial Number:')]/following-sibling::table/tbody"));
                            IList <IWebElement> trdeli = deliTB.FindElements(By.TagName("tr"));
                            IList <IWebElement> tddeli;
                            foreach (IWebElement row in trdeli)
                            {
                                tddeli = row.FindElements(By.TagName("td"));
                                if (tddeli.Count != 0 && !row.Text.Contains("Year") && !row.Text.Contains("amount if paid as") && !row.Text.Contains("--") && (row.Text != "         "))
                                {
                                    string deliq = tddeli[0].Text + "~" + tddeli[1].Text + "~" + tddeli[2].Text + "~" + tddeli[3].Text + "~" + tddeli[4].Text + "~" + tddeli[5].Text + "~" + date + "~" + Taxing_Authority;
                                    if (deliq.Contains("\r\n"))
                                    {
                                        deliq = deliq.Replace("\r\n", "");
                                    }
                                    gc.insert_date(orderNumber, Parcel_ID, 143, deliq, 1, DateTime.Now);
                                }
                            }
                            TaxTime = DateTime.Now.ToString("HH:mm:ss");
                            driver.Navigate().GoToUrl(pathurl);
                            Thread.Sleep(3000);
                            driver.FindElement(By.XPath("//*[@id='TabbedPanels1']/ul/li[3]")).SendKeys(Keys.Enter);
                            Thread.Sleep(3000);

                            driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/div/div/div[3]/table/tbody/tr[3]/td[6]/div/a")).SendKeys(Keys.Enter);
                            gc.CreatePdf_Chrome(orderNumber, Parcel_ID, "Tax Payment Details information", driver, "UT", "Utah");
                            try
                            {
                                IWebElement         tbtax = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody"));
                                IList <IWebElement> trtax = tbtax.FindElements(By.TagName("tr"));
                                IList <IWebElement> tdtax;
                                foreach (IWebElement row in trtax)
                                {
                                    tdtax = row.FindElements(By.TagName("td"));
                                    if (tdtax.Count != 0 && !row.Text.Contains("Tax Year"))
                                    {
                                        string tax = tdtax[0].Text + "~" + tdtax[2].Text + "~" + tdtax[4].Text + "~" + tdtax[6].Text + "~" + tdtax[8].Text + "~" + tdtax[10].Text + "~" + tdtax[12].Text + "~" + tdtax[14].Text + "~" + tdtax[16].Text;
                                        gc.insert_date(orderNumber, Parcel_ID, 129, tax, 1, DateTime.Now);
                                    }
                                }
                            }
                            catch { }
                        }
                    }

                    catch { }


                    if (deleiquent == "")
                    {
                        //
                        driver.FindElement(By.XPath("//*[@id='TabbedPanels1']/div/div[3]/table/tbody/tr[2]/td[1]/a")).SendKeys(Keys.Enter);
                        gc.CreatePdf_Chrome(orderNumber, Parcel_ID, "Tax Payment Details information", driver, "UT", "Utah");

                        try
                        {
                            IWebElement         tbtax = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody"));
                            IList <IWebElement> trtax = tbtax.FindElements(By.TagName("tr"));
                            IList <IWebElement> tdtax;
                            foreach (IWebElement row in trtax)
                            {
                                tdtax = row.FindElements(By.TagName("td"));
                                if (tdtax.Count > 1 && tdtax[0].Text.Trim() != "")
                                {
                                    string tax = tdtax[0].Text + "~" + tdtax[1].Text;
                                    gc.insert_date(orderNumber, Parcel_ID, 129, tax, 1, DateTime.Now);
                                }
                            }
                        }
                        catch
                        { }
                    }
                    driver.Navigate().GoToUrl(pathurl);
                    Thread.Sleep(3000);

                    //driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/div/ul/li[3]")).SendKeys(Keys.Enter);
                    //driver.FindElement(By.XPath("//*[@id='TabbedPanels1']/div/div[3]/table/tbody/tr[3]/td[1]/a")).SendKeys(Keys.Enter);
                    //IWebElement URL= driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr[17]/td/a"));
                    //string Url = URL.GetAttribute("href");
                    //// URL.SendKeys(Keys.Enter);
                    //// driver.SwitchTo().Window(driver.WindowHandles.Last());
                    // driver.Navigate().GoToUrl(Url);
                    //string billpdf = outputPath + Parcel_ID.Replace(":", "") + "tax_bill.pdf";
                    //System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
                    //WebClient downloadpdf = new WebClient();
                    //downloadpdf.DownloadFile(Url, billpdf);

                    // CreatePdf_WOP(orderNumber, "Tax Bill");
                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "UT", "Utah", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);
                    driver.Quit();
                    gc.mergpdf(orderNumber, "UT", "Utah");
                    return("Data Inserted Successfully");
                }

                catch (Exception ex)
                {
                    driver.Quit();
                    GlobalClass.LogError(ex, orderNumber);
                    throw ex;
                }
            }
        }
Example #56
0
        private void RunStateMachine(string testName, ActionModel step, TestResults testResults)
        {
            if (step.Object == null)
            {
                testResults.AddError(testName, $"Undefined step: {step.StepName}");
            }

            switch (step.Command)
            {
            case Commands.Undefined:
            {
                testResults.AddError(testName, $"Undefined step: {step.StepName}");
                result = false;
            }
            break;

            case Commands.OpenBrowser:
            {
                // TODO parse browser string
                driver = new ChromeDriver();
                engine = new WebSearchEngine(driver);
                result = true;
            }
            break;

            case Commands.Click:
            {
                if (step.Object is Element)
                {
                    Element     element      = (Element)step.Object;
                    IWebElement foundElement = null;

                    if (element.Identificator == "xpath")
                    {
                        foundElement = engine.Find(By.XPath(element.Locator));
                    }
                    if (element.Identificator == "css")
                    {
                        foundElement = engine.Find(By.CssSelector(element.Locator));
                    }
                    if (foundElement == null)
                    {
                        testResults.AddError(testName, $"Element '{element.Name}' was not found");
                        result = false;
                        return;
                    }
                    else
                    {
                        foundElement.SafeClick();
                        WebPageConsumer.CurrentElement = foundElement;
                        result = true;
                        return;
                    }
                }
                testResults.AddError(testName, $"Step: {step.StepName}. No matching elements found in page collection");
                result = false;
            }
            break;

            case Commands.OpenTab:
            {
                int tabIndex = (int)step.Object;
                if (driver.WindowHandles.Count >= tabIndex)
                {
                    driver.SwitchTo().Window(driver.WindowHandles[tabIndex - 1]);
                }
                result = true;
            }
            break;

            case Commands.OpenPage:
            {
                IPage page = (IPage)step.Object;
                if (page == null)
                {
                    testResults.AddError(testName, $"Step: {step.StepName}. Page was not found");
                    result = false;
                    return;
                }
                driver.Url = page.Url;
                result     = true;
            }
            break;

            case Commands.Visible:
            {
                if (step.Object is Element)
                {
                    Element     element      = (Element)step.Object;
                    IWebElement foundElement = null;

                    if (element.Identificator == "xpath")
                    {
                        foundElement = engine.Find(By.XPath(element.Locator));
                    }
                    if (element.Identificator == "css")
                    {
                        foundElement = engine.Find(By.CssSelector(element.Locator));
                    }
                    if (foundElement == null)
                    {
                        testResults.AddError(testName, $"Element '{element.Name}' was not found");
                        result = false;
                    }
                    result = foundElement.IsDisplayed();
                    WebPageConsumer.CurrentElement = foundElement;
                    return;
                }
                result = false;
            }
            break;

            case Commands.CreateTab:
            {
                // TODO does not work
                IWebElement body = driver.FindElement(By.TagName("body"));
                body.SendKeys(Keys.Control + 't');
                driver.SwitchToLastWindow();
                result = true;
            }
            break;

            case Commands.ElementText:
            {
                if (step.Object is Element)
                {
                    Element element = (Element)step.Object;

                    if (element.Identificator == "xpath")
                    {
                        var foundElement = engine.Find(By.XPath(element.Locator));

                        if (foundElement == null)
                        {
                            testResults.AddError(testName, $"Element '{element.Name}' was not found");
                            result = false;
                        }

                        if (foundElement.IsDisplayed())
                        {
                            var actualElementText = foundElement.GetAttribute("value");
                            var opentag           = "<";
                            var closeTag          = ">";

                            if (string.IsNullOrEmpty(actualElementText))
                            {
                                actualElementText = foundElement.Text;
                            }

                            if (step.StepName.Contains(opentag) && step.StepName.Contains(closeTag))
                            {
                                var placeHolders = Regex.Matches(step.StepName, $"<(.*?)>");

                                var placeHolder  = placeHolders[0].Value;
                                var expectedText = placeHolder.Substring(1, placeHolder.Length - 2);
                                if (expectedText == actualElementText)
                                {
                                    result = true;
                                    WebPageConsumer.CurrentElement = foundElement;
                                    return;
                                }
                            }
                            else
                            {
                                LoggerHub.AddNotificationToHub($"Test {testName}. Step: {step.StepName}. Input text is not defined. Please use <> to specify a text");
                            }

                            testResults.AddError(testName,
                                                 $"step: {step.StepName}. Actual element text is {actualElementText}");
                            result = false;
                        }
                    }

                    if (element.Identificator == "css")
                    {
                        var foundElement = engine.Find(By.XPath(element.Locator));

                        if (foundElement == null)
                        {
                            testResults.AddError(testName, $"Step: {step.StepName}. Element '{element.Name}' was not found");
                            result = false;
                        }

                        if (foundElement.IsDisplayed())
                        {
                            var actualElementText = foundElement.GetAttribute("value");

                            if (string.IsNullOrEmpty(actualElementText))
                            {
                                actualElementText = foundElement.Text;
                            }

                            if (step.StepName.Substring(step.StepName.IndexOf(element.Name) + element.Name.Length)
                                .Contains(actualElementText))
                            {
                                result = true;
                                WebPageConsumer.CurrentElement = foundElement;
                                return;
                            }

                            testResults.AddError(testName,
                                                 $"Step: {step.StepName}. Actual element text is {actualElementText}");
                            result = false;
                        }

                        return;
                    }

                    result = false;
                }
            }
            break;

            case Commands.PageTitle:
            {
                result = true;
            }
            break;

            case Commands.SwitchFrame:
            {
                result = true;
            }
            break;

            case Commands.CloseBrowser:
            {
                driver.Close();
                //driver.Quit();
                //driver.Dispose();
                result = true;
            }
            break;

            case Commands.TextInput:
            {
                if (step.Object is string)
                {
                    if (WebPageConsumer.CurrentElement != null)
                    {
                        WebPageConsumer.CurrentElement.SendKeys($"{step.Object}");
                        result = true;
                        return;
                        // TODO add verification for entered text
                    }

                    testResults.AddError(testName, $"Step: {step.StepName}. Current element is not defined.");
                }

                testResults.AddError(testName, $"Step: {step.StepName}. Input text failed.");
                result = false;
            }
            break;

            case Commands.Wait:
            {
                if (step.Object is int)
                {
                    Methods.WaitForSeconds((int)step.Object);
                    result = true;
                    return;
                }

                testResults.AddError(testName, $"Step: {step.StepName}. Failed to extract a waiting time.");
                result = false;
            }
            break;

            case Commands.Stop:
            {
                Logger.WritePostponedInfo($"Test {testName} is paused. Press 'P' to continue.");
                Menu.RestartMenu();
                Console.ReadKey();
                result = true;
                return;
            }
            break;
            }
        }
Example #57
0
    static void Main()
    {
        driver.Navigate().GoToUrl("http://executeautomation.com/demosite/index.html?UserName=&Password=&Login=Login");

        driver.Manage().Window.Maximize();

        Thread.Sleep(3000);

        //Dropdown element
        dropDownMenu = driver.FindElement(By.XPath("//*[@id=\"TitleId\"]"));
        dropDownMenu.Click();

        elementFromDropDownMenu = driver.FindElement(By.CssSelector("#TitleId>option:nth-child(2)"));
        elementFromDropDownMenu.Click();

        Console.WriteLine("The selected value is: " + elementFromDropDownMenu.GetAttribute("value"));

        Thread.Sleep(3000);


        //Element can be found by name, id, CSS selector, XPath
        try
        {
            element = driver.FindElement(By.Name("Initial"));

            if (element.Displayed)
            {
                //System.Console.WriteLine("Yes I can see the element!!");
                GreenMessage("Yes I can see the element!!");
            }
        }
        catch (NoSuchElementException)
        {
            //System.Console.WriteLine("No I cannot see the element!!");
            RedMessage("No I cannot see the element!!");
        }

        //Input text in the text box
        textBox = driver.FindElement(By.Id("Initial"));
        textBox.SendKeys("S");
        Console.WriteLine("Initial is: " + textBox.GetAttribute("value"));

        textBox = driver.FindElement(By.Id("FirstName"));
        textBox.SendKeys("Smith");
        Console.WriteLine("First Name is: " + textBox.GetAttribute("value"));

        textBox = driver.FindElement(By.Id("MiddleName"));
        textBox.SendKeys("None");
        Console.WriteLine("Middle Name is: " + textBox.GetAttribute("value"));

        Thread.Sleep(5000);

        //textBox.Clear(); //clears the text in the text box
        //textBox.GetAttribute("maxlength"); //gives the maximum length of characters the text box can take

        //Radio Button
        radioButton = driver.FindElement(By.CssSelector("#details > table > tbody > tr:nth-child(5) > td:nth-child(2) > input[type=\"radio\"]:nth-child(1)"));

        if (radioButton.GetAttribute("checked") == "true")
        {
            Console.WriteLine("The radio button is checked and its value is: " + radioButton.GetAttribute("value"));
        }
        else
        {
            Console.WriteLine("The radio button is NOT checked");
        }

        Thread.Sleep(5000);

        //CheckBox
        checkBox = driver.FindElement(By.CssSelector("#details > table > tbody > tr:nth-child(6) > td:nth-child(2) > input[type=\"checkbox\"]:nth-child(1)"));

        if (checkBox.GetAttribute("checked") == "true")
        {
            Console.WriteLine("The checkbox is checked");
        }
        else
        {
            Console.WriteLine("The checkbox is NOT checked");
        }

        checkBox = driver.FindElement(By.CssSelector("#details > table > tbody > tr:nth-child(6) > td:nth-child(2) > input[type=\"checkbox\"]:nth-child(2)"));
        checkBox.Click();
        Console.WriteLine("The value of the currently selected checked box is: " + checkBox.GetAttribute("value"));

        Thread.Sleep(5000);

        //Popup element
        //popUp = driver.FindElement(By.XPath("//*[@id=\"details\"]/div[1]/p/a"));
        //popUp.Click();

        //Thread.Sleep(5000);

        //driver.SwitchTo().DefaultContent();

        //Thread.Sleep(3000);


        //Alert
        alertButton = driver.FindElement(By.XPath("//*[@id=\"details\"]/div[2]/p/input"));
        alertButton.Click();

        Thread.Sleep(5000);

        alert = driver.SwitchTo().Alert();
        Console.WriteLine(alert.Text);

        alert.Accept();

        Thread.Sleep(3000);

        driver.Quit(); //driver.Close(); can also be used to close the current open window
    }
Example #58
0
        public void EnableUser(string emailaddress, log4net.ILog log, IWebDriver driver)
        {
            //instantiate new Adduserdetailspage


            try
            {
                USERS_link.Click();
                Email_Address_Text.SendKeys(emailaddress);
            }
            catch (Exception ex)
            {
                PageFactory.InitElements(driver, this);

                log.Info("Staleblock" + ex.ToString());
                USERS_link.Click();
                Email_Address_Text.SendKeys(emailaddress);
            }

            Search_link.Click();
            try
            {
                SEARCH_RESULTS_links.Click();
            }
            catch (Exception)
            {
                PageFactory.InitElements(driver, this);
                SEARCH_RESULTS_links.Click();
            }

            Enable_user_account_link.Click();

            driver.SwitchTo().ActiveElement().SendKeys("test");
            driver.SwitchTo().ActiveElement().SendKeys(Keys.Return);

            Assert.IsTrue(isElementPresent(Disable_user_account_link));

            //Now check if reset password link is available - if it is click this too, to ensure that user is actually enabled
            //May move this to another test eventually



            try
            {
                USERS_link.Click();
            }
            catch (Exception)
            {
                PageFactory.InitElements(driver, this);
                USERS_link.Click();
            }


            log.Info("User '" + emailaddress + "' deleted successfully.");

            /**
             * try
             * {
             *  Assert.IsFalse(isElementPresent((SEARCH_RESULTS_links)));
             *
             * }
             * catch
             * {
             *
             *  Thread.Sleep(1000);
             *  usersPage = new LAFAdminManageusersPage(driver);
             *  Assert.IsFalse(isElementPresent((SEARCH_RESULTS_links)));
             *
             * }
             *
             **/
        }
        public void Sitefinity_CanUpdateProfileSitefinity()
        {
            if (!_loggedIn)
            {
                CanRegisterAndLoginToCms();
            }

            CanLogoutAndIsLoggedOutOfSecondSiteAsWell();

            CanLoginToFrontEnd();

            var button = _driver.FindElement(By.CssSelector(".gigya-edit-profile"), 5);

            if (button != null)
            {
                button.Click();
            }

            // wait for form
            var form = _driver.FindElement(By.Id("gigya-profile-form"), 5);

            _newEmail = string.Concat(Guid.NewGuid(), "@purestone.co.uk");

            form.FindElement(By.Name("profile.email")).ClearAndSendKeys(_newEmail);
            form.FindElement(By.Name("profile.firstName")).ClearAndSendKeys(_updatedFirstName);
            form.FindElement(By.Name("profile.lastName")).ClearAndSendKeys(_updatedLastName);
            form.FindElement(By.CssSelector("input.gigya-input-submit")).Click();

            LoginToSitefinityAdmin();

            // check profile has been updated in Sitefinity
            _sitefinityAdminDriver.Navigate().GoToUrl(Config.Site1BaseURL + "Sitefinity/Administration/Users");
            Thread.Sleep(10000);

            // find user
            var searchButton = _sitefinityAdminDriver.FindElement(By.Id("findUsersLink"), 10);

            if (!searchButton.Displayed)
            {
                Thread.Sleep(10000);
            }
            searchButton.Click();

            var searchType = new SelectElement(_sitefinityAdminDriver.FindElement(By.Id("searchType")));

            searchType.SelectByValue("Email");

            _sitefinityAdminDriver.FindElement(By.Id("filterText")).SendKeys(_newEmail);
            _sitefinityAdminDriver.FindElement(By.Id("A1")).Click();

            // wait for results
            var userCell = _sitefinityAdminDriver.FindElement(By.CssSelector(".sfUserCell"), 10);

            userCell.FindElement(By.ClassName("editCommand")).Click();


            // wait for user details
            Thread.Sleep(1000);
            _sitefinityAdminDriver.SwitchTo().Frame("editUserDialog");

            ValidateUserField("Email", _newEmail);
            ValidateUserField("First name", _updatedFirstName);
            ValidateUserField("Last name", _updatedLastName);
        }
        public string FTP_SanFrancisco(string address, string parcelNumber, string searchType, string orderNumber, string directParcel)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;

            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";

            string     parceno = "-", property_address = "-", year_built = "-";
            string     Land_Value = "=", Building_Value = "-", Fixtures = "-", Personal_Property = "-";
            IWebDriver chdriver;
            var        driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            //driver = new ChromeDriver();
            //driver = new PhantomJSDriver();
            using (driver = new PhantomJSDriver())
            {
                var option = new ChromeOptions();
                option.AddArgument("No-Sandbox");
                chdriver = new ChromeDriver(option);

                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");

                    if (searchType == "titleflex")
                    {
                        string titleaddress = address;
                        gc.TitleFlexSearch(orderNumber, "", "", titleaddress.Trim(), "CA", "San Francisco");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_SanFrascisco"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }
                    chdriver.Navigate().GoToUrl("http://sfplanninggis.org/pim/");
                    if (searchType == "address")
                    {
                        //IWebElement iframeElement = driver.FindElement(By.XPath("/html/frameset/frame[1]"));
                        ////now use the switch command
                        //driver.SwitchTo().Frame(iframeElement);
                        //Thread.Sleep(3000);
                        chdriver.FindElement(By.Id("addressInput")).SendKeys(address.ToUpper());
                        Thread.Sleep(10000);
                        IWebElement         Iviewtax = chdriver.FindElement(By.XPath("//*[@id='Search-icon']"));
                        IJavaScriptExecutor js       = chdriver as IJavaScriptExecutor;
                        js.ExecuteScript("arguments[0].click();", Iviewtax);

                        Thread.Sleep(10000);
                        gc.CreatePdf_WOP(orderNumber, "Address Search", chdriver, "CA", "San Francisco");
                        //   gc.CreatePdf_WOP(orderNumber, "Address Search result", driver, "CA", "San Francisco");
                    }
                    if (searchType == "parcel")
                    {
                        if (HttpContext.Current.Session["titleparcel"] != null)
                        {
                            parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        }
                        if (HttpContext.Current.Session["titleparcel"] != null && (HttpContext.Current.Session["titleparcel"].ToString().Contains(".") || HttpContext.Current.Session["titleparcel"].ToString().Contains("-")))
                        {
                            parcelNumber = HttpContext.Current.Session["titleparcel"].ToString().Replace(".", "");
                        }

                        //1 driver.Navigate().GoToUrl("http://propertymap.sfplanning.org/");
                        //driver.Navigate().GoToUrl("http://sfplanninggis.org/pim/");
                        // IWebElement iframeElement = driver.FindElement(By.XPath("/html/frameset/frame"));
                        //now use the switch command
                        //driver.SwitchTo().Frame(iframeElement);
                        chdriver.FindElement(By.Id("addressInput")).SendKeys(parcelNumber);
                        Thread.Sleep(2000);
                        chdriver.FindElement(By.Id("Search-icon")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Parcel search", chdriver, "CA", "San Francisco");
                        try
                        {
                            IWebElement INodata = chdriver.FindElement(By.XPath("/html/body/div[3]"));
                            if (INodata.Text.Contains("does not appear to be a valid"))
                            {
                                HttpContext.Current.Session["Nodata_SanFrascisco"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    try
                    {
                        IWebElement INodata = chdriver.FindElement(By.XPath("//*[@id='Report_DynamicContent_Property']/div[1]/div[3]"));
                        if (INodata.Text.Contains("no parcels at this location"))
                        {
                            HttpContext.Current.Session["Nodata_SanFrascisco"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                    }
                    catch { }

                    //Thread.Sleep(6000);
                    //driver.FindElement(By.Id("propertyButton")).SendKeys(Keys.Enter);
                    //Thread.Sleep(6000);
                    //property details
                    //chdriver.FindElement(By.LinkText("Assessor Summary")).Click();
                    //Thread.Sleep(2000);
                    try
                    {////*[@id="Report_DynamicContent_Property"]/div[1]/div[2]/div/div[2]/div[4]/a[1]
                        chdriver.FindElement(By.XPath("//*[@id='Report_DynamicContent_Property']/div[1]/div[2]/div/div[3]/div[4]/a[1]")).Click();
                        Thread.Sleep(2000);
                    }
                    catch { }
                    chdriver.SwitchTo().Window(chdriver.WindowHandles.Last());

                    //chdriver.FindElement(By.LinkText("Assessor Summary")).Click();
                    try
                    {
                        parceno          = chdriver.FindElement(By.XPath("//*[@id='modalContent']/div[1]/div/div[1]/div[2]")).Text.Trim();
                        property_address = chdriver.FindElement(By.XPath("//*[@id='modalContent']/div[1]/div/div[2]/div[2]")).Text;
                        year_built       = chdriver.FindElement(By.XPath("//*[@id='modalContent']/div[4]/div/div[8]/div[2]")).Text;
                        string Usetype      = chdriver.FindElement(By.XPath("//*[@id='modalContent']/div[4]/div/div[2]/div[4]")).Text;
                        string prop_details = property_address + "~ " + year_built + "~" + Usetype;
                        gc.insert_date(orderNumber, parceno, 72, prop_details, 1, DateTime.Now);
                    }
                    catch { }
                    try
                    {
                        //Assessment Details
                        Land_Value        = chdriver.FindElement(By.XPath("//*[@id='modalContent']/div[4]/div/div[2]/div[2]")).Text;
                        Building_Value    = chdriver.FindElement(By.XPath("//*[@id='modalContent']/div[4]/div/div[3]/div[2]")).Text;
                        Fixtures          = chdriver.FindElement(By.XPath("//*[@id='modalContent']/div[4]/div/div[4]/div[2]")).Text;
                        Personal_Property = chdriver.FindElement(By.XPath("//*[@id='modalContent']/div[4]/div/div[5]/div[2]")).Text;

                        string ass_details = Land_Value + "~ " + Building_Value + "~ " + Fixtures + "~ " + Personal_Property;
                        gc.insert_date(orderNumber, parceno, 73, ass_details, 1, DateTime.Now);
                        gc.CreatePdf_WOP(orderNumber, "Property details", chdriver, "CA", "San Francisco");
                        AssessmentTime = DateTime.Now.ToString("HH:mm:ss");
                    }
                    catch { }
                    chdriver.Quit();
                    //download bill
                    //driver.FindElement(By.ClassName("NoPrint")).SendKeys(Keys.Enter);
                    //driver.SwitchTo().Window(driver.WindowHandles.Last());
                    //Thread.Sleep(5000);
                    //IWebElement element = driver.FindElement(By.XPath("//*[@id='mapPrintOptions']/tbody/tr[1]/td[2]/button"));
                    //Actions actions = new Actions(driver);
                    //actions.MoveToElement(element).Click().Perform();
                    //Thread.Sleep(2000);
                    //string billurl = driver.Url;


                    //  CreatePdf_WOP(orderNumber, "Bill pdf");

                    //Tax Details
                    driver.Navigate().GoToUrl("https://ttxonlineportal.sfgov.org/content/San-Francisco-Forms-Portal/Residents/propertyTaxAndLicense.html");
                    // driver.Navigate().GoToUrl("c");
                    string block_num = "";
                    string lot_num   = "";
                    if (parceno.Count() == 8)
                    {
                        block_num = parceno.Substring(0, 4);
                        lot_num   = parceno.Substring(4, 3);
                    }
                    else if (parceno.Count() == 8)
                    {
                        block_num = parceno.Substring(0, 4);
                        lot_num   = parceno.Substring(4, 3);
                    }
                    else if (parceno.Count() == 7)
                    {
                        block_num = parceno.Substring(0, 4);
                        lot_num   = parceno.Substring(4, 3);
                    }

                    if (block_num.Trim() == "" && lot_num.Trim() == "")
                    {
                        string[] splitno = parceno.Split('-');
                        block_num = splitno[0];
                        lot_num   = splitno[1];
                        parceno   = parcelNumber;
                    }

                    driver.FindElement(By.Id("addressBlockNumber")).SendKeys(block_num);
                    driver.FindElement(By.Id("addressLotNumber")).SendKeys(lot_num);
                    gc.CreatePdf_WOP(orderNumber, "Tax details", driver, "CA", "San Francisco");
                    driver.FindElement(By.Id("submit")).SendKeys(Keys.Enter);
                    gc.CreatePdf_WOP(orderNumber, "Tax Details result", driver, "CA", "San Francisco");
                    Thread.Sleep(2000);
                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='block-system-main']/div/div/article/div/div/div/div[3]/div/div/div[1]/ul/li[2]/a")).Click();
                        Thread.Sleep(3000);
                    }
                    catch { }
                    //string paymenthistory
                    //Bill_Type~Tax_Year~Installment~Bill~Total_Paid~Paid_Date
                    IWebElement         TBpayment_history = driver.FindElement(By.XPath("//*[@id='priorYearTaxTable']/tbody"));
                    IList <IWebElement> TRpayment_history = TBpayment_history.FindElements(By.TagName("tr"));
                    IList <IWebElement> TDpayment_history;

                    foreach (IWebElement row2 in TRpayment_history)
                    {
                        if (!row2.Text.Contains("There are no properties that match your search criteria"))
                        {
                            TDpayment_history = row2.FindElements(By.TagName("td"));
                            string paymenthistory = TDpayment_history[0].GetAttribute("innerText") + "~ " + TDpayment_history[1].GetAttribute("innerText") + "~ " + TDpayment_history[2].GetAttribute("innerText") + "~ " + TDpayment_history[4].GetAttribute("innerText") + "~ " + TDpayment_history[5].GetAttribute("innerText") + "~ " + TDpayment_history[6].GetAttribute("innerText");
                            gc.insert_date(orderNumber, parceno, 76, paymenthistory, 1, DateTime.Now);
                        }
                    }
                    //   gc.CreatePdf_WOP(orderNumber, "Payment History Details", driver, "CA", "San Francisco");

                    //Current property tax statements
                    string text = "";
                    string Property_Address = "-", Bill_Type = "-", Bill_Number = "-", Installment = "-", Due_Date = "-", Amount_Due = "-", Total_Due = "-";
                    driver.FindElement(By.XPath("//*[@id='block-system-main']/div/div/article/div/div/div/div[3]/div/div/div[1]/ul/li[1]/a")).SendKeys(Keys.Enter);
                    Thread.Sleep(3000);
                    IList <IWebElement> trc = driver.FindElements(By.XPath("//*[@id='taxTable']/tbody/tr"));
                    int trcount             = trc.Count();
                    if (trcount == 1)
                    {
                        try
                        {
                            IWebElement tr1 = driver.FindElement(By.XPath(" //*[@id='taxTable']/tbody/tr/td"));
                            text = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr/td")).Text;
                        }

                        catch { }
                        if (!text.Contains("There are no current property tax statements due at this time."))
                        {
                            try
                            {
                                Property_Address = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr/td[1]/div/div/h5[1]")).Text;
                                Bill_Type        = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr/td[1]/div/div/h4")).Text;
                                Bill_Number      = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr/td[2]/strong")).Text;
                                Installment      = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr/td[3]/strong")).Text;
                                Due_Date         = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr/td[4]/strong")).Text;
                                Amount_Due       = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr/td[5]/strong")).Text;
                                Total_Due        = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr/td[6]/strong")).Text;

                                string current_tax = Property_Address + "~ " + Bill_Type + "~ " + Bill_Number + "~ " + Installment + "~ " + Due_Date + "~ " + Amount_Due + "~ " + Total_Due;
                                gc.insert_date(orderNumber, parceno, 78, current_tax, 1, DateTime.Now);
                            }
                            catch { }
                            String Parent_Window = driver.CurrentWindowHandle;

                            IWebElement view = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr/td[1]/div/div/a/button"));
                            view.SendKeys(Keys.Enter);

                            try
                            {
                                driver.SwitchTo().Window(driver.WindowHandles.Last());
                                string url     = driver.Url;
                                string billpdf = outputPath + Bill_Number + "currenttax_bill.pdf";
                                System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
                                WebClient downloadpdf = new WebClient();
                                downloadpdf.DownloadFile(url, billpdf);
                            }
                            catch { }

                            //parent window
                            driver.SwitchTo().Window(Parent_Window);

                            string paybutton = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr/td[7]/button")).Text.Trim();
                            paybutton += paybutton + " ";

                            if (paybutton.Trim().Contains("Special Handling"))
                            {
                                HttpContext.Current.Session["SpecialHandling_SanFrancisco"] = "Yes";
                            }
                        }

                        gc.CreatePdf_WOP(orderNumber, "Current Property Tax Statements", driver, "CA", "San Francisco");
                    }

                    else
                    {
                        for (int i = 1; i <= trcount; i++)
                        {
                            try
                            {
                                Property_Address = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr[" + i + "]/td[1]/div/div/h5[1]")).Text;
                                Bill_Type        = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr[" + i + "]/td[1]/div/div/h4")).Text;
                                Bill_Number      = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr[" + i + "]/td[2]/strong")).Text;
                                Installment      = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr[" + i + "]/td[3]/strong")).Text;
                                Due_Date         = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr[" + i + "]/td[4]/strong")).Text;
                                Amount_Due       = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr[" + i + "]/td[5]/strong")).Text;
                                Total_Due        = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr[" + i + "]/td[6]/strong")).Text;

                                string current_tax = Property_Address + "~ " + Bill_Type + "~ " + Bill_Number + "~ " + Installment + "~ " + Due_Date + "~ " + Amount_Due + "~ " + Total_Due;
                                gc.insert_date(orderNumber, parceno, 78, current_tax, 1, DateTime.Now);
                            }
                            catch { }
                            String Parent_Window = driver.CurrentWindowHandle;

                            IWebElement view = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr[" + i + "]/td[1]/div/div/a/button"));

                            view.SendKeys(Keys.Enter);
                            try
                            {
                                driver.SwitchTo().Window(driver.WindowHandles.Last());
                                string url     = driver.Url;
                                string billpdf = outputPath + Bill_Number + "Propertycurrenttax_bill.pdf";
                                System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
                                WebClient downloadpdf = new WebClient();
                                downloadpdf.DownloadFile(url, billpdf);
                            }
                            catch (Exception e) { }
                            //parent window
                            driver.SwitchTo().Window(Parent_Window);

                            string paybutton = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr[" + i + "]/td[7]/button")).Text.Trim();
                            paybutton += paybutton + " ";

                            if (paybutton.Trim().Contains("Special Handling"))
                            {
                                HttpContext.Current.Session["SpecialHandling_SanFrancisco"] = "Yes";
                            }
                        }
                    }
                    gc.CreatePdf_WOP(orderNumber, "Current Property Tax Statements", driver, "CA", "San Francisco");
                    driver.FindElement(By.XPath("//*[@id='block-system-main']/div/div/article/div/div/div/div[3]/div/div/div[1]/ul/li[2]/a")).Click();
                    Thread.Sleep(3000);
                    gc.CreatePdf_WOP(orderNumber, "Payment History Details", driver, "CA", "San Francisco");

                    TaxTime = DateTime.Now.ToString("HH:mm:ss");

                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "CA", "San Francisco", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);


                    driver.Quit();
                    HttpContext.Current.Session["titleparcel"] = null;
                    gc.mergpdf(orderNumber, "CA", "San Francisco");
                    return("Data Inserted Successfully");
                }
                catch (Exception ex)
                {
                    driver.Quit();
                    chdriver.Quit();
                    GlobalClass.LogError(ex, orderNumber);
                    throw ex;
                }
            }
        }