02/10/2018, 11:37

[C#] Selemium Tự động đăng nhập gmail bằng Chrome Driver

Hi! Chào các bạn, bài viết hôm nay, mình sẽ tiếp tục hướng dẫn các bạn sử dụng Selenium để tự động đăng nhập vào Gmail bằng lập trình C#. Vậy Selenium là gì? Selenium là một trong những công cụ kiểm thử phần mềm tự động mã nguồn mở (open source ...

Hi! Chào các bạn, bài viết hôm nay, mình sẽ tiếp tục hướng dẫn các bạn sử dụng Selenium để tự động đăng nhập vào Gmail bằng lập trình C#.

Vậy Selenium  là gì?

Selenium là một trong những công cụ kiểm thử phần mềm tự động mã nguồn mở (open source test automation tool) mạnh mẽ nhất hiện nay cho việc kiểm thử ứng dụng Web. Selenium script có thể chạy được trên hầu hết các trình duyệt như IE, Mozilla FireFox, Chrome, Safari, Opera; và hầu hết các hệ điều hành như Windows, Mac, Linux.

Sử dụng selemium c#

Source code C#:

try
            {
                //get row handle

                var driverService = ChromeDriverService.CreateDefaultService();
                driverService.HideCommandPromptWindow = true;
                ChromeOptions options = new ChromeOptions();
                options.AddArguments("--incognito");
                options.AddArgument(@"--start-maximized");

                var driver = new ChromeDriver(driverService, options);


                driver.Navigate().GoToUrl("https://accounts.google.com/signin/v2/identifier?uilel=3&hl=en&passive=true&service=youtube&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Fhl%3Den%26next%3D%252F%26action_handle_signin%3Dtrue%26app%3Ddesktop&flowName=GlifWebSignIn&flowEntry=ServiceLogin");
                //driver.Manage().Window.Minimize();
                IWebElement query = driver.FindElement(By.CssSelector("input[type='email']"));
                query.SendKeys(email);
                query = driver.FindElement(By.CssSelector("div#identifierNext"));
                query.Click();
                driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
                query = driver.FindElement(By.CssSelector("input[name='password']"));
                query.SendKeys(password);
                driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
                Thread.Sleep(500);

                query = driver.FindElement(By.XPath(".//*[@id='passwordNext']//content//span"));
                query.Click();
                Thread.Sleep(1000);
                try
                {
                    string a = driver.FindElement(By.CssSelector("h1#headingText")).Text;
                    if (a.Contains("Verify it's you"))
                    {
                        MessageBox.Show("Verify it's you");
                        Thread.Sleep(int.Parse(txt_verify.Text) * 1000);
                    }
                }
                catch (Exception)
                {

                }

                Thread.Sleep(6000);



                driver.Navigate().GoToUrl(video);
                //driver.Manage().Window.Maximize();        subscribe-button     
                Thread.Sleep(500);
                //driver.Manage().Window.Maximize();

                // ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", query);
                ((IJavaScriptExecutor)driver).ExecuteScript("window.scrollBy(0, 150)");
                //Thread.Sleep(100);
                //query = driver.FindElement(By.XPath("//*[@id=button]"));
                //query.Click();

                //Thread.Sleep(1000); Verify it's you
                //query = driver.FindElement(By.Id("placeholder-area"));
                //query.Click();
                Thread.Sleep(timer * 1000);

                driver.Quit();
                int row = findIndexByValue(email);
                SetRowColorGridView(row);
            }
            catch (Exception)
            {

            }

HAVE FUN :)

Tags: mailgmailselemiumhttp request
0