public void XSSAttackMethod()
        {
            ChromeDriver chrome = new ChromeDriver();

            // Set up the attack
            chrome.Navigate().GoToUrl("http://localhost/Security/SafeWebForm.aspx");
            chrome.FindElement(By.XPath("//input[@type = 'text'][@name = 'nameBox']")).SendKeys("<script>document.getElementsByTagName(\"td\")[0].innerHTML = \"<img src='http://i.imgur.com/s4DdGEx.jpg'>\";</script>");
            chrome.FindElement(By.XPath("//input[@type = 'text'][@name = 'gpaBox']")).SendKeys("2");
            chrome.FindElement(By.XPath("//input[@type = 'submit'][@name = 'submit']")).Click();

            // Check if the ReadUnsafe page is vulnerable to XSS attacks, which it should be
            chrome.Navigate().GoToUrl("http://localhost/Security/UnsafeRead.aspx");

            try
            {
                chrome.FindElementByTagName("img");
            }
            catch (Exception e)
            {
                Assert.Fail("Image tag not found in the ReadUnsafe.aspx\nThis page is supposed to be vulnerable to XSS attacks");
            }

            // Check if the ReadSafe page is vulnerable to XSS attacks, which it should not be
            chrome.Navigate().GoToUrl("http://localhost/Security/SafeRead.aspx");

            try
            {
                chrome.FindElementByTagName("img");
                Assert.Fail("Image tag found in the ReadUSafe.aspx\nThis page is not supposed to be vulnerable to XSS attacks");
            }
            catch (Exception e)
            {
            }
        }
        public void HomePageIsCorrect()
        {
            var service       = ChromeDriverService.CreateDefaultService(Environment.CurrentDirectory, _driverFile);
            var chromeOptions = new ChromeOptions();

            chromeOptions.AddArgument("--headless");
            var webDriver = new ChromeDriver(service, chromeOptions);

            webDriver.Navigate().GoToUrl("http://localhost:5000/");

            webDriver.FindElementByTagName("button").Click();

            Thread.Sleep(5000);

            var paragraph = webDriver.FindElementByTagName("p");

            try
            {
                paragraph.Text.ShouldBe("This is a successful call!");
            }
            finally
            {
                webDriver.Quit();
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// after driver is correct, update local html
        /// </summary>
        public static void UpdateLocalHtml()
        {
            ChromeDriverService service = ChromeDriverService.CreateDefaultService();

            service.HideCommandPromptWindow = true;
            ChromeOptions options = new ChromeOptions();

            options.AddArgument("headless");
            ChromeDriver driver = new ChromeDriver(service, options);

            driver.Navigate().GoToUrl(indexURL);

            int counter = 0;

            while ((string)driver.ExecuteScript("return document.readyState") != "complete")
            {
                System.Threading.Thread.Sleep(1000);
                counter++;
                if (counter > 20)
                {
                    driver.Close();
                    return;
                }
            }
            System.Threading.Thread.Sleep(1000);
            string content = driver.FindElementByTagName("HTML").GetAttribute("innerHTML");

            File.WriteAllText(localBackupFile, content);

            driver.Quit();
            driver.Dispose();
        }
Ejemplo n.º 4
0
 private static void LoadAndParse(Site site)
 {
     using (var driver = new ChromeDriver())
     {
         driver.Navigate().GoToUrl(site.Url);
         for (int i = 0; i < 100; i++)
         {
             var html = driver.FindElementByTagName("html");
             try
             {
                 if (TryParsePage(html.GetAttribute("innerHTML"), site.Id, site.ScrapingInfo))
                 {
                     break;
                 }
             }
             catch (StaleElementReferenceException) { }
             catch (FormatException)
             {
                 Logger.LogCantParse(site.Id);
                 break;
             }
         }
         driver.Close();
     }
 }
Ejemplo n.º 5
0
        public void CreatingNewIssueSavesCorrectly()
        {
            var data = new
            {
                Title       = "Issue",
                Description = "Fix all the bugs",
                Status      = IssueStatus.Done
            };

            using (var driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)))
            {
                driver.Navigate().GoToUrl(@"https://*****:*****@"https://localhost:5000/Issue/Create", driver.Url);
                var titleInput = driver.FindElementById("Title");
                titleInput.SendKeys(data.Title);
                var descriptionInput = driver.FindElementById("Description");
                descriptionInput.SendKeys(data.Description);
                var statusSelect  = driver.FindElementById("Status");
                var selectElement = new SelectElement(statusSelect);
                selectElement.SelectByValue($"{(int)data.Status}");
                var createButton = driver.FindElementByCssSelector("input.btn.btn-default");
                Assert.Equal("Create", createButton.GetAttribute("value"));
                createButton.Click();
                /* PAGE CHANGE */
                Assert.Equal(@"https://localhost:5000/Issue", driver.Url);
                var table = driver.FindElementByTagName("tbody");
                var rows  = table.FindElements(By.CssSelector("tr"));
                foreach (var row in rows)
                {
                    var columns = row.FindElements(By.TagName("td"));
                    var col1    = columns.First();
                    var col2    = columns.Skip(1).First();
                    var col3    = columns.Skip(2).First();

                    var edit         = col3.FindElement(By.CssSelector("a[href^='/Issue/Edit/']"));
                    var editHref     = edit.GetAttribute("href");
                    var editValue    = edit.Text;
                    var editIdString = editHref.Substring(editHref.LastIndexOf("/") + 1);
                    var editId       = int.Parse(editIdString);
                    if (existingIds.Contains(editId))
                    {
                        continue;
                    }

                    Assert.Equal(data.Title, col1.Text);
                    Assert.Equal(data.Description, col2.Text);
                    return;
                }
                throw new NotFoundException("Did not find new Issue in table");
            }
        }
Ejemplo n.º 6
0
        private static bool IsSuccessTextDisplayed(ChromeDriver driver)
        {
            WaitForPageLoad(driver);

            var body = driver.FindElementByTagName("span").Text;

            return(body.Contains("Your message was sent successfully"));
        }
Ejemplo n.º 7
0
        protected override (string, string) GetProductGroupAndMaybePhotoLink(ChromeDriver driver, string imageUrl)
        {
            var pagehtml = driver.FindElementByTagName("body").GetProperty("innerHTML");
            var groups   = driver.FindElementByXPath("//*[@id=\"breadCrumbs\"]");
            var list     = groups.FindElements(By.TagName("li"));

            return(list[1].Text.Trim(), imageUrl);
        }
Ejemplo n.º 8
0
        public void TestMethod1()
        {
            var url = "http://www.reservenewyorkcity.com";

            List <string> sites = new List <string>()
            {
                "/",
                "/new-york-shows",
                "/euifghre",
                "/new-york-attractions",
                "/new-york-hotels",
                "/new-york-packages",
                "/new-york-packages",
                "/euifghre",
            };


            var driver = new ChromeDriver();

            foreach (var item in sites)
            {
                this.test = extent.CreateTest(item);

                var path = string.Format("{0}{1}", url, item);

                driver.Navigate().GoToUrl(path);

                if (driver.FindElementByTagName("body") != null)
                {
                    this.test.Log(Status.Pass, "found body");
                }
                else
                {
                    this.test.Log(Status.Fail, "unable to find body");
                }

                Assert.IsTrue(driver.FindElementByTagName("body") != null);

                //Assert.IsTrue(true);

                //this.test.Log(Status.Pass, "Assert Pass condition is true");
            }

            driver.Quit();
        }
Ejemplo n.º 9
0
 public void Login()
 {
     browser.Navigate().GoToUrl(URL + "accounts/login/");
     delay(1);
     browser.FindElementByName("username").SendKeys(UserName);
     browser.FindElementByName("password").SendKeys(Password);
     browser.FindElementByTagName("button").Click();
     delay(2);
 }
Ejemplo n.º 10
0
 public void MyTestOldProjectFormat()
 {
     using (var webDriver = new ChromeDriver())
     {
         webDriver.Url = _baseAddress;
         var body = webDriver.FindElementByTagName("body").Text;
         Assert.That(body, Is.Not.Empty);
     }
 }
Ejemplo n.º 11
0
        /// <summary>
        /// Browser test recaptcha normal
        /// </summary>
        private static void browser_test_normal()
        {
            Console.WriteLine("[=] BROWSER TEST STARTED (NORMAL CAPTCHA) [=]");
            var s = ChromeDriverService.CreateDefaultService();

            s.HideCommandPromptWindow = true;
            ChromeDriver d = new ChromeDriver(s);

            try
            {
                d.Navigate().GoToUrl(TEST_PAGE_NORMAL);               // go to normal test page
                // complete regular data
                d.FindElementByName("username").SendKeys("my-username");
                d.FindElementByName("password").SendKeys("password-here");
                Console.WriteLine("[+] Completed regular info");
                // ---------------------

                // get sitekey
                string site_key = d.FindElementByClassName("g-recaptcha").GetAttribute("data-sitekey");
                Console.WriteLine(string.Format("[+] Site key: {0}", site_key));

                // complete captcha

                Console.WriteLine("[+] Waiting for recaptcha to be solved ...");
                ImageTypersAPI i = new ImageTypersAPI(IMAGETYPERS_TOKEN);
                Dictionary <string, string> p = new Dictionary <string, string>();
                p.Add("page_url", TEST_PAGE_NORMAL);
                p.Add("sitekey", site_key);
                string recaptcha_id = i.submit_recaptcha(p);       // submit recaptcha info
                // while in progress, sleep for 10 seconds
                while (i.in_progress(recaptcha_id))
                {
                    Thread.Sleep(10000);
                }
                string g_response_code = i.retrieve_captcha(recaptcha_id);

                //Console.Write("CODE:"); Console.ReadLine(); string g_response_code = File.ReadAllText("g-response.txt");        // get manually
                Console.WriteLine(string.Format("[+] Got g-response-code: {0}", g_response_code));

                // set g-response-code in page source (with javascript)
                IJavaScriptExecutor e  = (IJavaScriptExecutor)d;
                string javascript_code = string.Format("document.getElementById('g-recaptcha-response').innerHTML = '{0}';", g_response_code);
                e.ExecuteScript(javascript_code);
                Console.WriteLine("[+] Code set in page");

                // submit form
                d.FindElementByTagName("form").Submit();
                Console.WriteLine("[+] Form submitted");
            }
            finally
            {
                Thread.Sleep(5000);
                d.Quit();       // quit browser
                Console.WriteLine("[=] BROWSER TEST FINISHED [=]");
            }
        }
Ejemplo n.º 12
0
        private void Login(string user, string pass)
        {
            Wait(".form");

            Driver.FindElementByName("username").SendKeys(user);
            Driver.FindElementByName("password").SendKeys(pass);

            Driver.FindElementByTagName("button").Click();

            Wait("section");
        }
Ejemplo n.º 13
0
        public void TemaIndexIsOk()
        {
            var chrome = new ChromeDriver();

            chrome.Url = Global.URL;
            chrome.FindElementById("temaLink").Click();
            var title = chrome.FindElementByTagName("h2");

            Assert.AreEqual("Temas", title.Text);
            chrome.Close();
        }
Ejemplo n.º 14
0
        static void Main(string[] args)
        {
            const string currentDir = "./";
            string       url        = "file:///C:/_/projects/rojydesign/dogramaplovdiv.html";

            using (ChromeDriver driver = new ChromeDriver(currentDir))
            {
                driver.Url = url;
                IWebElement rojyLink          = driver.FindElementByTagName("a");
                string      rojyLinkExtracted = rojyLink.GetAttribute("href");
                string      rojyLinkExpected  = "http://rojy.design/";
                if (rojyLinkExtracted == rojyLinkExpected)
                {
                    Console.WriteLine("Link");
                }


                IWebElement rojyImage = driver.FindElementByTagName("img");

                string extractedSrcValue = rojyImage.GetAttribute("src");
                string expectedSrcValue  = "http://rojy.design/wp-content/uploads/2017/01/rojy-logo-1.png";
                if (rojyImage.Displayed && rojyImage.Enabled && expectedSrcValue == extractedSrcValue)
                {
                    Console.WriteLine("Tam e");
                }

                IWebElement telephoneNumber          = driver.FindElementById("contactNumber");
                string      extractedTelephoneNumber = telephoneNumber.Text;
                string      expectedTelephoneNumber  = "+359 896 222 575";
                if (extractedTelephoneNumber == expectedTelephoneNumber)
                {
                    Console.WriteLine("Telephone Number");
                }
                else
                {
                    Console.WriteLine("Wrong");
                }
            }
        }
Ejemplo n.º 15
0
        public void GivenBasicWebsiteThenConfirmWelcomeHeaderIsCorrect()
        {
            // Arrange
            _driver.Navigate().GoToUrl(_config["baseSiteUrl"]);

            // Act
            var headingText = _driver.FindElementByTagName("h1").Text;

            TakeScreenShot("welcome");

            // Assert
            headingText.Should().Be("Welcome");
        }
Ejemplo n.º 16
0
        public void H1ElementIsRemovedFromPrivacyPage()
        {
            var serverFactory = new SeleniumServerFactory <Startup>();

            var options = new ChromeOptions();

            options.AddArguments("--headless");
            options.AcceptInsecureCertificates = true;
            var webDriver = new ChromeDriver(options);

            webDriver.Navigate().GoToUrl(serverFactory.RootUri + "/Home/Privacy");
            Assert.Throws <NoSuchElementException>(() => webDriver.FindElementByTagName("h1"));
        }
Ejemplo n.º 17
0
        public void FillingFormToContact()
        {
            // 2. As 'button' is unique. find the element and click to show navigation menu
            var button = driver.FindElementByTagName("button");

            // 3. Click and continue to find XPath to 'Contact' page
            button.Click();
            var clickContact = driver.FindElement(by: By.XPath("//a[contains(text(),'Contact')]"));

            clickContact = wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//a[contains(text(),'Contact')]")));
            clickContact.Click();

            //Filling Form Process
            var filling = driver.FindElement(By.XPath("//input[@placeholder='Name']"));

            filling.SendKeys("Khang Le");

            filling = driver.FindElement(By.XPath("//input[@placeholder='Email']"));
            filling.SendKeys("*****@*****.**");

            filling = driver.FindElement(By.XPath("//textarea[@placeholder='Comment']"));
            filling.SendKeys("This is a test for checking the accessible of elements in the website");
        }
Ejemplo n.º 18
0
        public void signup(string URI, string firstName, string lastName, string email)
        {
            // Initialize the Chrome Driver
            using (var driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)))
            //using (var driver = new ChromeDriver(""))
            {
                // Go to the specific signup page
                driver.Navigate().GoToUrl(URI);

                // Get the page elements
                var userNameField     = driver.FindElementByName("name");
                var userPasswordField = driver.FindElementByName("email");
                var loginButton       = driver.FindElementByXPath("//button[@type='submit'][text()='Make Reservation']");

                // Type user name and password
                userNameField.SendKeys(firstName + " " + lastName);
                userPasswordField.SendKeys(email);

                //check the time and wait until 07:00:00:01
                //Helper h = new Helper();
                //h.GetTime();

                // Click the login button
                loginButton.Click();
                //System.Threading.Thread.Sleep(250);

                // Grab all the text within the body tag and re-try the login
                int x = 1;
                while (driver.FindElementByTagName("body").Text.Contains("Reservations may not be made until 24 hours prior to the start time of the class.") & (x <= 15000))
                {
                    //It's too early to signup, so go back to form and try again
                    driver.Navigate().Back();
                    //System.Threading.Thread.Sleep(250);
                    x++;
                    //form will be populated w the previous name and email values...re-submit
                    driver.FindElementByXPath("//button[@type='submit'][text()='Make Reservation']").Click();
                }


                // Extract the text and save it into result.txt
                //var result = driver.FindElementByXPath("//div[@id='case_login']/h3").Text;
                //File.WriteAllText("result.txt", result);

                // Take a screenshot and save it into screen.png
                driver.GetScreenshot().SaveAsFile(firstName + ".png", OpenQA.Selenium.ScreenshotImageFormat.Png);
                //driver.GetScreenshot().SaveAsFile(@"D:\repo\dotnetCoreHockeySignUp\HockeySignUpCore\bin\Debug\netcoreapp2.1\SPF.png", OpenQA.Selenium.ScreenshotImageFormat.Png);
                driver.Close();
            }
        }
Ejemplo n.º 19
0
        private void ZoomOut()
        {
            /*
             * Actions action = new Actions(driver);
             * for (int i = 0; i < 6; i++)
             * {
             *  action.SendKeys(OpenQA.Selenium.Keys.Control).SendKeys(OpenQA.Selenium.Keys.Subtract).Perform();
             * }
             */
            //((IJavaScriptExecutor)driver).ExecuteScript("document.body.style.zoom = '30%';");
            IWebElement html = driver.FindElementByTagName("html");

            new Actions(driver)
            .SendKeys(OpenQA.Selenium.Keys.Control).SendKeys(OpenQA.Selenium.Keys.Subtract).SendKeys(OpenQA.Selenium.Keys.Null)
            .Perform();
        }
Ejemplo n.º 20
0
        public UGTab GetTab(UGSearchResult searchResult)
        {
            string tab;

            if (!searchResult.canStoreContent)
            {
                tab = "Cannot store in text format, see: " + searchResult.href;
            }
            else
            {
                this.browser.Navigate().GoToUrl(searchResult.href);
                tab = browser.FindElementByTagName("code").Text;
            }
            return(new UGTab(searchResult.artist,
                             searchResult.songAndVer,
                             searchResult.rating,
                             searchResult.numRatings,
                             tab));
        }
        public void PElementIsRemovedFromPrivacyPage()
        {
            // Create server with SeleniumServer and startPoint is Startup
            var serverFactory = new SeleniumServerFactory <Startup>();

            // Create options for Chrome and create virtual Web Browser
            var options = new ChromeOptions();

            options.AcceptInsecureCertificates = true;
            options.AddArguments("--headless");

            var webDriver = new ChromeDriver(options);

            // Open the address /Home/Privacy on our server (our app)
            webDriver.Navigate().GoToUrl(serverFactory.RootUri + "/Home/Privacy");

            // Find <p>some text</p> element and throw and exception if its not visible.
            // The check will be done after all scripts on the page are loaded
            Assert.Throws <NoSuchElementException>(() => webDriver.FindElementByTagName("p"));
        }
Ejemplo n.º 22
0
        static void Main(string[] args)
        {
            var options = new ChromeOptions();

            options.AddArguments("--disable-gpu");
            options.AddArguments("disable-popup-blocking");

            var chromeDriver = new ChromeDriver("C:\\Users\\klync\\Source\\Repos\\XPathTest\\XPathTest", options);

            chromeDriver.Navigate().GoToUrl("https://login.yahoo.com/");
            chromeDriver.Manage().Window.Maximize();

            chromeDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
            chromeDriver.FindElement(By.Id("login-username")).SendKeys("" + Keys.Enter);

            chromeDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
            chromeDriver.FindElement(By.Id("login-passwd")).SendKeys("" + Keys.Enter);

            chromeDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
            chromeDriver.Url = ("https://finance.yahoo.com/portfolio/p_0/view/v1");

            IWebElement list = chromeDriver.FindElementByTagName("tbody");

            System.Collections.ObjectModel.ReadOnlyCollection <IWebElement> stocks = list.FindElements(By.TagName("tr"));
            int count = stocks.Count();

            //Console.WriteLine("Info on stocks in Katelynn's Portfolio: " + stocks.Count);

            for (int i = 1; i <= count; i++)
            {
                chromeDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
                var symbol = chromeDriver.FindElementByXPath("//*[@id=\"pf-detail-table\"]/div[1]/table/tbody/tr[" + i + "]/td[1]").GetAttribute("innerText");

                Console.WriteLine(symbol);
            }
            Console.WriteLine("\n");

            chromeDriver.Close();
        }
Ejemplo n.º 23
0
        public static void FillAndSubmitAForm()
        {
            ChromeDriver driver = new ChromeDriver();

            driver.Navigate().GoToUrl("http://regularcoder.com/demo/selenium-ide-test/");
            IWebElement movieTitleTextBox = driver.FindElementById("title");

            movieTitleTextBox.SendKeys("VICE");
            IWebElement movieCreatedAtTextBox = driver.FindElementById("year");

            movieCreatedAtTextBox.SendKeys("2018");
            IWebElement movieDirectorTextBox = driver.FindElementById("director");

            movieDirectorTextBox.SendKeys("Tarantonto");
            IWebElement movieDescriptionTextBox = driver.FindElementById("description");

            movieDescriptionTextBox.SendKeys("Great movie");

            IWebElement submitButton = driver.FindElementByTagName("button");

            submitButton.Click();
        }
Ejemplo n.º 24
0
        public void Test1()
        {
            var currentDirectory = Directory.GetCurrentDirectory();
            var driver           = new ChromeDriver(currentDirectory);

            driver.Navigate().GoToUrl("https:/localhost:44305");

            driver.FindElement(By.CssSelector("a[href='/counter']")).Click();

            Assert.Equal("Counter", driver.FindElementByTagName("h1").Text);

            driver.FindElementById("increment-button").Click();
            driver.FindElementById("increment-button").Click();
            driver.FindElementById("increment-button").Click();
            driver.FindElementById("increment-button").Click();
            driver.FindElementById("increment-button").Click();

            Assert.Equal("5", driver.FindElement(By.TagName("strong")).Text);

            driver.Close();
            driver.Dispose();
        }
Ejemplo n.º 25
0
        public void CheckPage()
        {
            //
            if (!welcome && driver.FindElementsByCssSelector("div[data-test-id='nux_name_done_btn']").Count != 0)
            {
                try
                {
                    driver.FindElementByCssSelector("div[data-test-id='nux_name_done_btn']").Click();
                    Console.WriteLine("press next");
                    welcome = true;
                    return;
                }
                catch
                {
                    return;
                }
            }
            if (!skip && driver.FindElementsByCssSelector("button[data-test-id='nux-ext-skip-btn']").Count != 0)
            {
                try
                {
                    driver.FindElementByCssSelector("button[data-test-id='nux-ext-skip-btn']").Click();
                    Console.WriteLine("press skip");
                    skip = true;
                    return;
                }
                catch
                {
                    return;
                }
            }

            //if (welcome && !gender && driver.FindElementsByCssSelector(".NuxGenderStep__headerContent").Count == 1)
            //{
            //    var buttons = driver.FindElementsByTagName("button");
            //    foreach (var item in buttons)
            //    {
            //        if (item.Text.ToLower().Contains("female"))
            //        {
            //            item.Click();
            //        }
            //    }
            //    //Female
            //}
            if (!gender && driver.FindElementsByCssSelector("label[for='female']").Count > 0)
            {
                try
                {
                    var x = driver.FindElementsByCssSelector("label[for='female']");
                    x[0].Click();
                    gender = true;
                    return;
                }
                catch { return; }
            }


            if (!country && driver.FindElementById("newUserCountry") != null)
            {
                try
                {
                    driver.FindElementByCssSelector(".NuxContainer__NuxStepContainer button").Click();
                    country = true;
                    return;
                }
                catch { }

                try
                {
                    driver.FindElementByCssSelector("div[data-test-id=nux-locale-country-next-btn]").Click();
                    country = true;
                    return;
                }
                catch { }
            }

            if (!country && driver.FindElementByCssSelector(".NuxContainer__NuxStepContainer button") != null)
            {
                try
                {
                    driver.FindElementByCssSelector(".NuxContainer__NuxStepContainer button").Click();
                    country = true; return;
                }
                catch { return; }
            }
            if (!card && driver.FindElementsByCssSelector("[aria-label='Interest card']").Count > 1)
            {
                int result = 0;

                Save();
                var cards = driver.FindElementsByCssSelector("[aria-label='Interest card']");
                for (int i = 0; i < 100; i++)
                {
                    if (result > 5)
                    {
                        var button = driver.FindElementsByCssSelector("[data-test-id='nux-picker-done-btn'] button");
                        if (button.Count > 0)
                        {
                            button[0].Click();

                            card = true;
                            break;
                        }
                        button = driver.FindElementsByCssSelector("button[type='submit']");
                        if (button.Count > 0)
                        {
                            button[0].Click();

                            card = true;
                            break;
                        }
                    }



                    try
                    {
                        OpenQA.Selenium.Interactions.Actions action = new OpenQA.Selenium.Interactions.Actions(driver);
                        // action.MoveToElement(cards[i]).DoubleClick().Build().Perform();
                        action.MoveToElement(cards[i]).DoubleClick().Build().Perform();
                        //   WebElement we = webdriver.findElement(By.xpath("html/body/div[13]/ul/li[4]/a"));
                        //    action.moveToElement(we).moveToElement(webdriver.findElement(By.xpath("/expression-here"))).click().build().perform();
                        //}
                        //cards[i].Click();
                        result++;
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                        cards = driver.FindElementsByCssSelector(".NuxInterest");
                        //return;
                    }


                    //      return;
                }
            }



            if (!scip && card && driver.FindElementsByCssSelector(".NuxExtensionUpsell__optionalSkip").Count != 0)
            {
                try
                {
                    var scripButton = driver.FindElementsByCssSelector(".NuxExtensionUpsell__optionalSkip");
                    scripButton[0].Click();
                    scip = true;
                    return;
                }
                catch
                { return; }
            }


            if (card && !main)
            {
                try
                {
                    var body = driver.FindElementsByCssSelector(".mainContainer");


                    //if(body.Count > 0)
                    body[0].Click();

                    Thread.Sleep(TimeSpan.FromSeconds(15));

                    var buttons = driver.FindElementsByTagName("button");
                    foreach (IWebElement button in buttons)
                    {
                        Console.WriteLine(button.Text);
                        if (button.Text.Contains("Got"))
                        {
                            OpenQA.Selenium.Interactions.Actions action = new OpenQA.Selenium.Interactions.Actions(driver);
                            action.MoveToElement(button).DoubleClick().Build().Perform();
                        }
                    }



                    Thread.Sleep(TimeSpan.FromSeconds(5));
                    driver.FindElementByTagName("body").Click();


                    driver.Url = "https://www.pinterest.com/";
                    Thread.Sleep(TimeSpan.FromSeconds(15));

                    main = true; return;
                }
                catch
                {
                    return;
                }
            }

            if (main && !url)
            {
                try
                {
                    Thread.Sleep(TimeSpan.FromSeconds(5));

                    if (driver.Url.EndsWith("/settings/"))
                    {
                        url = true;
                    }

                    driver.Url = "https://pinterest.com/settings";
                }
                catch
                {
                }
            }

            if (url && !settings)
            {
                try
                {
                    for (int i = 0; i < 50; i++)
                    {
                        driver.FindElementById("first_name").SendKeys(Keys.Backspace);
                        driver.FindElementById("last_name").SendKeys(Keys.Backspace);
                        driver.FindElementById("username").SendKeys(Keys.Backspace);
                    }
                    //var selectElement = new SelectElement(driver.FindElementById("accountBasicsCountry"));
                    //selectElement.SelectByValue("US");


                    driver.FindElementById("first_name").SendKeys(PrettyName());
                    driver.FindElementById("last_name").SendKeys(PrettyName());

                    string[] cities = File.ReadAllLines("city_names.txt");
                    driver.FindElementById("location").SendKeys(cities[new Random().Next(0, cities.Count())]);


                    string userName = prettyName + new Random().Next();
                    driver.FindElementById("username").SendKeys(userName);

                    //  string userName = driver.FindElementById("userUserName").GetAttribute("value");

                    //malmopianoilianaruby
                    SaveSettings();

                    settings = true;

                    //$$("input[type=file]")
                    Thread.Sleep(new TimeSpan(0, 0, 5));

                    driver.Quit();

                    //data-test-id="createBoardCard"
                    // tut

                    driver.Url = "https://pinterest.com/" + userName + "/boards";
                    Thread.Sleep(new TimeSpan(0, 0, 5));
                    var createBoards = driver.FindElementsByCssSelector("[data-test-id=createBoardCard]");
                    Thread.Sleep(new TimeSpan(0, 0, 5));
                    foreach (var item in createBoards)
                    {
                        if (item.Enabled && item.Displayed)
                        {
                            item.Click();
                        }
                    }

                    var input = driver.FindElementById("boardEditName");
                    input.SendKeys(prettyName);

                    var buttonsCreate = driver.FindElementsByTagName("button");
                    foreach (var item in buttonsCreate)
                    {
                        if (item.Text.Contains("Create") && item.Enabled && item.Displayed)
                        {
                            item.Click();
                            Thread.Sleep(new TimeSpan(0, 0, 15));
                            AddImage();
                        }
                    }
                }
                catch
                {
                }
            }
        }
Ejemplo n.º 26
0
        /// <summary>
        /// Given a list of terms, take a snapshot
        /// of the Google Trends line graph.
        /// </summary>
        /// <returns>(Filename, Success)</returns>
        public static (string, bool) TakeSnapshot(List <string> searchTerms, Options options)
        {
            // Ensure chromedriver.exe can be found.
            var chromeDriverDir = Path.GetFullPath(options.ChromeDriverDirectory);

            if (!File.Exists(chromeDriverDir + "\\chromedriver.exe"))
            {
                Console.WriteLine(">>> chromedriver.exe NOT FOUND");
                Console.WriteLine(">>> " + chromeDriverDir);
                return(null, false);
            }

            // Set ChromeDriver options.
            var chromeOptions = new ChromeOptions();

            if (options.Headless)
            {
                chromeOptions.AddArgument("--headless");
            }
            chromeOptions.AddArgument("--window-size=" + options.WindowSize);
            chromeOptions.AddArgument("--log-level=3");
            chromeOptions.AddArgument("--disable-extensions");

            var service = ChromeDriverService.CreateDefaultService(chromeDriverDir);

            service.SuppressInitialDiagnosticInformation = true;
            service.EnableVerboseLogging    = false;
            service.HideCommandPromptWindow = true;

            // Launch ChromeDriver
            string filename;

            using (var driver = new ChromeDriver(service, chromeOptions))
            {
                try
                {
                    // 0. (Implicit) Open ChromeDriver.
                    Console.WriteLine("> Opened ChromeDriver");

                    // 1. Navigate to Google Trends page.
                    driver.Navigate().GoToUrl(options.GoogleTrendsUrl);
                    Console.WriteLine("> Navigated to {0}", options.GoogleTrendsUrl);

                    // 2. Enter list of terms into search bar.
                    var searchBar   = driver.FindElementByCssSelector("search input");              // @Hardcoded
                    var searchInput = String.Join(", ", searchTerms);
                    searchBar.SendKeys(searchInput);
                    searchBar.SendKeys(Keys.Enter);
                    Console.WriteLine("> Entered terms: {0}", searchInput);

                    // 3. Setup snapshot (hover over most recent results).
                    var header         = driver.FindElementByClassName("explorepage-content-header"); // @Hardcoded
                    var headerLocation = header.Location;
                    var graph          = driver.FindElementByTagName("widget");                       // @Hardcoded
                    var graphLocation  = graph.Location;
                    var graphSize      = graph.Size;

                    var lineChart   = driver.FindElementByCssSelector("line-chart-directive svg");  // @Hardcoded
                    var hoverAction = new Actions(driver);
                    hoverAction.MoveToElement(
                        lineChart,
                        (int)Math.Round(lineChart.Size.Width * 0.98f),  // @Hardcoded: Adjust for tiny bit of padding.
                        (int)Math.Round(lineChart.Size.Height / 2f));
                    hoverAction.Perform();
                    Console.WriteLine("> Setup trends graph.");

                    // 4. Take snapshot.
                    var snapshot = (driver as ITakesScreenshot).GetScreenshot();
                    Console.WriteLine("> Took snapshot.");

                    // 5. Crop snapshot, include header and graph.
                    var rect = new Rectangle(
                        x: graphLocation.X,
                        y: headerLocation.Y,
                        width: graphSize.Width,
                        height: (graphLocation.Y + graphSize.Height) - headerLocation.Y
                        );
                    var originalSnapshot = Image.FromStream(new MemoryStream(snapshot.AsByteArray));
                    var croppedSnapshot  = (originalSnapshot as Bitmap).Clone(rect, originalSnapshot.PixelFormat);
                    Console.WriteLine("> Cropped snapshot.");

                    // 6. Save file.
                    filename = GetSnapshotPath(options.SnapshotDirectory, "png");
                    croppedSnapshot.Save(filename, ImageFormat.Png);
                    Console.WriteLine("> Saved snapshot - {0}", filename);
                }
                catch (Exception e)
                {
                    Console.WriteLine("\n>>> {0}\n", e.Message);
                    return(null, false);
                }
            }

            // No problems, return success.
            return(filename, true);
        }
Ejemplo n.º 27
0
        /// <summary>
        /// Navigates browser to Radio search page. Verifies FOPS login via URL check.
        /// Attmepts login if not already there. Redirects back to Radio page if not logged in.
        /// </summary>
        /// <param name="browser"></param>
        /// <returns type='string'></returns>
        public string GetRadioIP(ChromeDriver browser, string customerNumber)
        {
            Console.WriteLine("Searching for Radio...");
            var    GetRadio   = new Radio();
            string Radio_Info = "";

            try
            {
                browser.Navigate().GoToUrl(FOPS_HomeUrl + FOPS_RadioUrl);
            }
            catch (TimeoutException e)
            {
                Console.WriteLine($"Timed out getting to SU Config...ref:\n{e.ToString()}");
                return(Radio_Info);
            }
            catch (Exception e)
            {
                return(Radio_Info = $"Some other error: {e.ToString()}");
            }
            if (browser.Url.ToString().Contains(FOPS_LoginUrl) == true)
            {
                FOPS_Login(browser, FOPS_HomeUrl + FOPS_RadioUrl);
            }
            try
            {
                var custNumber = browser.FindElementByName("customer_number");
                var RadioForm  = browser.FindElementsByName("B1");
                //var RadioForm = browser.FindElementByXPath(@"//*[@id='div_3_contents']/form");
                custNumber.SendKeys(customerNumber);
                RadioForm[2].Submit();

                Console.WriteLine(browser.Url);


                //Radio IP should always be first item in td for given table...will need to handle if multiple radios are presented.
                //again need to test via ping if radio is up or not.
                //need to determine radio type via webpage DOM
                var RadioTable = browser.FindElementByTagName("td");
                Console.WriteLine($"Found Radio IP: {RadioTable.Text}");
                //created to avoid stale refrence exception on later call.
                string radioIP = RadioTable.Text;
                //Uri RadioIP = RadioTable.Text;
                //logic to ping radio goes here.

                if (RadioTable.Text.Contains("Nothing"))
                {
                    return(Radio_Info += "No IP found for radio");
                }
                browser.Navigate().GoToUrl($"http://{RadioTable.Text}");
                Console.WriteLine(browser.Url);
                //go to ping/crawl radio.
                Radio_Info += PingTest.PingBuilder(browser, "radio", radioIP);


                return(Radio_Info);
            }
            catch (Exception e)
            {
                return(Radio_Info = $"error: {e.ToString()}");
            }
        }
Ejemplo n.º 28
0
        private void btnBuscar_Click(object sender, EventArgs e)
        {
            MaskedTextBox mask = new MaskedTextBox();



            int ncm;

            if (!int.TryParse(txtNcm.Text, out ncm) && ncm == null)
            {
                MessageBox.Show("somente numeros são aceitos no campo NCM");
                return;
            }
            int i;

            if (!int.TryParse(txtncm2.Text, out i) && i == null)
            {
                MessageBox.Show("somente numeros são aceitos para complementar ncm");
                return;
            }
            dataGridViewResultados.Rows.Clear();
            while (boxEstado.SelectedIndex <= 30)
            {
                try
                {
                    //abri o browser com selenium _______________________________________________________________
                    ChromeOptions options = new ChromeOptions();
                    options.AddArgument("--headless");
                    ChromeDriverService service = ChromeDriverService.CreateDefaultService();
                    service.HideCommandPromptWindow = true;


                    //adicionar o service e option para não mostra o prompt e nem browser _____________________________________________________
                    ChromeDriver driver = new ChromeDriver(service, options);

                    driver.Navigate().GoToUrl("http://www.econeteditora.com.br/icms_st/index.php?form%5Buf%5D=" + boxEstado.Text + "&form%5Bncm%5D=" + txtNcm.Text + "&form%5Bcest%5D=" + txtCest1.Text + "&form%5Bpalavra%5D=&acao=Buscar");

                    var clicar = driver.FindElement(By.TagName("input"));
                    clicar.Click();
                    //LOGIM_______________________________________________________________________________
                    string login = "";
                    string senha = "";

                    var userInput = driver.FindElementByName("Log");
                    userInput.SendKeys(login);

                    var passwordInput = driver.FindElementByName("Sen");
                    passwordInput.SendKeys(senha + Keys.Enter);

                    driver.Navigate().GoToUrl("http://www.econeteditora.com.br/icms_st/index.php?form%5Buf%5D=" + boxEstado.Text + "&form%5Bncm%5D=" + txtNcm.Text + "&form%5Bcest%5D=" + txtCest1.Text + "&form%5Bpalavra%5D=&acao=Buscar");



                    //A BUSCA  NCM ____________________________________________________________________________
                    if (i == 00 || i == null)
                    {
                        var Primerabusca = driver.FindElementByTagName("input");
                        Primerabusca.Click();
                    }
                    else if (i > 00 && i <= 90)
                    {
                        var segundabusca = driver.FindElementByXPath("/html/body/table[3]/tbody/tr[3]/td[3]/input[1]");
                        segundabusca.Click();
                    }
                    else if (i > 90 && i <= 9010)
                    {
                        var terceirabusca = driver.FindElementByXPath("/html/body/table[3]/tbody/tr[7]/td[3]/input[1]");
                        terceirabusca.Click();
                    }
                    else
                    {
                        var quartabusca = driver.FindElementByXPath("/html/body/table[3]/tbody/tr[8]/td[3]/input[1]");
                        quartabusca.Click();
                    }


                    #region PEGAR OS DADOS DA PAGINA ATUAL PELO XPATH tit= titulo

                    //PEGAR OS DADOS DA PAGINA ATUAL PELO XPATH tit= titulo _________________________________________________________

                    var tit = "";
                    try { tit = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[1]/td[1]").Text; } catch { tit = "não existe"; }
                    //-----------
                    var mvaO = "";
                    try { mvaO = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[2]/td[1]").Text; } catch { mvaO = "não existe"; }
                    //------------

                    var tit1 = "";
                    try { tit1 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[1]/td[2]").Text; } catch { tit1 = "não existe"; }
                    //--------
                    var mva4 = "";
                    try { mva4 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[2]/td[2]").Text; } catch { mva4 = "não existe"; }
                    //--------
                    var tit2 = "";
                    try { tit2 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[1]/td[3]").Text; } catch { tit2 = "não existe"; }
                    //------------
                    var mva7 = "";
                    try { mva7 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[2]/td[3]").Text; } catch { mva7 = "não existe"; }
                    //----------
                    var tit3 = "";
                    try { tit3 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[1]/td[4]").Text; } catch { tit3 = "não existe"; }
                    //--------
                    var mva12 = "";
                    try { mva12 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[2]/td[4]").Text; } catch { mva12 = "não existe"; }
                    //-------

                    var tit4 = "";
                    try { tit4 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[1]/td[5]").Text; } catch { tit4 = "não existe"; }

                    //-------
                    var aliq = "";
                    try { aliq = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[2]/td[5]").Text; } catch { aliq = "não existe"; }

                    //-----

                    var tit5 = "";
                    try { tit5 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[1]/td[6]").Text; } catch { tit5 = "não existe"; }
                    //----------
                    var fecp = "";
                    try { fecp = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[2]/td[6]").Text; } catch { fecp = "não existe"; }


                    //CASO HOUVER UMA SEGUNDA LINHA ADICIONAR AQUI______________________________________________________________________

                    var T1 = "";
                    try { T1 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[3]/td[1]").Text; } catch { T1 = ""; }

                    var T2 = "";
                    try { T2 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[3]/td[2]").Text; } catch { T2 = ""; }

                    var T3 = "";
                    try { T3 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[3]/td[3]").Text; } catch { T3 = ""; }

                    var T4 = "";
                    try { T4 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[3]/td[4]").Text; } catch { T4 = ""; }

                    var T5 = "";
                    try { T5 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[3]/td[5]").Text; } catch { T5 = ""; }

                    var T6 = "";
                    try { T6 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[3]/td[6]").Text; } catch { T6 = ""; }
                    // 3 LINHA TABELA SE EXISTIR ___________________________________________________________________________

                    var C1 = "";
                    try { C1 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[4]/td[1]").Text; } catch { C1 = ""; }

                    var C2 = "";
                    try { C2 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[4]/td[2]").Text; } catch { C2 = ""; }

                    var C3 = "";
                    try { C3 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[4]/td[3]").Text; } catch { C3 = ""; }

                    var C4 = "";
                    try { C4 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[4]/td[4]").Text; } catch { C4 = ""; }

                    var C5 = "";
                    try { C5 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[4]/td[5]").Text; } catch { C5 = ""; }

                    var C6 = "";
                    try { C6 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[4]/td[6]").Text; } catch { C6 = ""; }


                    #endregion


                    //Limpar e Adicionar valores na tabela__________________________________________________________________________________________________
                    //dataGridViewResultados.Rows.Clear();

                    dataGridViewResultados.Rows.Add(boxEstado.Text, tit, tit1, tit2, tit3, tit4, tit5);
                    //  dataGridViewResultados.DefaultCellStyle.BackColor = Color.Cyan;

                    dataGridViewResultados.Rows.Add(boxEstado.Text, mvaO, mva4, mva7, mva12, aliq, fecp);

                    dataGridViewResultados.Rows.Add(boxEstado.Text, T1, T2, T3, T4, T5, T6);

                    dataGridViewResultados.Rows.Add(boxEstado.Text, C1, C2, C3, C4, C5, C6);


                    driver.Close();
                    driver.Quit();
                }
                catch
                {
                    MessageBox.Show("É preciso colocar NCM ou CEst ");
                }


                if ((boxEstado.SelectedIndex % 3) == 0 || boxEstado.Text == "TO")
                {
                    break; return;
                }
                else
                {
                    boxEstado.SelectedIndex++;
                }
            }
            // limpar a caixa
            txtCest1.Clear();
            txtNcm.Clear();
            txtncm2.Clear();
            txtncm2.Text = "00";
            MessageBox.Show("Pesquisa concluida");
        }
        public List <Stock> Scrape()
        {
            // Add --headless to options
            var options = new ChromeOptions();

            options.AddArguments("--headless");
            options.AddArguments("--disable-gpu");
            options.AddArguments("disable-popup-blocking");

            // Initial new ChromeDriver and navigate to Yahoo URL
            var chromeDriver = new ChromeDriver("C:\\Users\\Sreenath\\source\\repos\\WebScraperwithASP_NET", options);

            chromeDriver.Navigate().GoToUrl("https://login.yahoo.com");
            chromeDriver.Manage().Window.Maximize();

            chromeDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);

            // Input username and click on Next
            chromeDriver.FindElementById("login-username").SendKeys("*****@*****.**");
            chromeDriver.FindElementById("login-signin").Click();

            // Input password and click on submit
            chromeDriver.FindElementById("login-passwd").SendKeys("Careerdevs");
            chromeDriver.FindElementById("login-signin").Click();


            // After password verification navigate to Yahoo portfolio page

            //chromeDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
            chromeDriver.Url = "https://finance.yahoo.com/portfolio/p_0/view/v1";

            //var closePopup = chromeDriver.FindElementByXPath("//dialog[@id = '__dialog']/section/button");
            //closePopup.Click();

            //var stocks = chromeDriver.FindElements(By.XPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[*]/td[*]"));
            //foreach (var stock in stocks)
            //    Console.WriteLine(stock.Text);

            IWebElement list = chromeDriver.FindElementByTagName("tbody");

            System.Collections.ObjectModel.ReadOnlyCollection <IWebElement> stocks = list.FindElements(By.TagName("tr"));
            int count = stocks.Count();

            List <Stock> stockList = new List <Stock>();

            for (int i = 1; i <= count; i++)
            {
                var symbol        = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[1]/span/a").GetAttribute("innerText");
                var lastPrice     = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[2]/span").GetAttribute("innerText");
                var change        = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[3]/span").GetAttribute("innerText");
                var percentChange = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[4]/span").GetAttribute("innerText");
                var currency      = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[5]").GetAttribute("innerText");
                var marketCap     = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[13]/span").GetAttribute("innerText");

                Stock stock = new Stock();
                stock.Symbol        = symbol;
                stock.LastPrice     = lastPrice;
                stock.Change        = change;
                stock.PercentChange = percentChange;
                stock.Currency      = currency;
                stock.MarketCap     = marketCap;

                stockList.Add(stock);
            }
            chromeDriver.Quit();
            return(stockList);
        }
Ejemplo n.º 30
0
        static void Main(string[] args)
        {
            var options = new ChromeOptions();

            //options.AddArgument("--headless");
            options.AddArguments("--disable-gpu");
            options.AddArguments("disable-popup-blocking");//to disable pop-up blocking

            var chromeDriver = new ChromeDriver(options);

            chromeDriver.Navigate().GoToUrl("https://login.yahoo.com/");
            Console.WriteLine("In Yahoo home page");
            chromeDriver.Manage().Window.Maximize();

            chromeDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
            chromeDriver.FindElementById("login-username").SendKeys("*****@*****.**");
            chromeDriver.FindElementById("login-signin").Click();

            chromeDriver.FindElementById("login-passwd").SendKeys("@nuk1978");
            chromeDriver.FindElementById("login-signin").Click();

            chromeDriver.Url = "https://finance.yahoo.com/portfolio/p_1/view/v1";
            Console.WriteLine("In yahoo finance page");

            /*
             *
             * var closePopup = chromeDriver.FindElementByXPath("//dialog[@id = '__dialog']/section/button");
             * closePopup.Click();
             * var items = chromeDriver.FindElementsByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[*]/td[*]");
             *
             * foreach(var item in items)
             * {
             *  Console.WriteLine("My WatchList: " + item.Text);
             * }
             */



            //var closePopup = chromeDriver.FindElementByXPath("//*[@id=\"fin - tradeit\"]/div[2]/div");
            var closePopup = chromeDriver.FindElementByXPath("//dialog[@id = '__dialog']/section/button");

            closePopup.Click();
            //var items = chromeDriver.FindElementsByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[*]/td[*]/span/a").GetAttribute;
            IWebElement list = chromeDriver.FindElementByTagName("tbody");

            System.Collections.ObjectModel.ReadOnlyCollection <IWebElement> items = list.FindElements(By.TagName("tr"));
            int          count  = items.Count();
            List <Stock> result = new List <Stock>();

            Console.WriteLine(count);
            //loop to get details of each stock symbol
            for (int i = 1; i <= count; i++)
            {
                Console.WriteLine(i);
                var symbol        = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[1]/span/a").GetAttribute("innerText");
                var lastprice     = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[2]/span").GetAttribute("innerText");
                var change        = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[3]/span").GetAttribute("innerText");
                var percentChange = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[4]/span").GetAttribute("innerText");
                var currency      = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[5]").GetAttribute("innerText");
                var avgVolume     = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[9]").GetAttribute("innerText");
                var marketCap     = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[13]/span").GetAttribute("innerText");

                Stock stock = new Stock();
                Console.WriteLine(symbol);
                stock.Symbol = symbol;
                Console.WriteLine(lastprice);
                stock.Price = Decimal.Parse(lastprice);
                Console.WriteLine(change);
                stock.Change = Decimal.Parse(change);
                Console.WriteLine(percentChange);
                stock.PercentChange = Decimal.Parse(percentChange.Trim('%'));
                Console.WriteLine(currency);
                stock.Currency = currency;
                Console.WriteLine(avgVolume);
                stock.AverageVolume = avgVolume;
                Console.WriteLine(marketCap);
                stock.MarketCap = marketCap;


                //result.Add(stock);

                //chromeDriver.Close();
            }
        }