0030. C# Selenium 模擬人類行為,進行自動登入功能(自動化測試)

 

C#學習筆記

環境

Visual Studio 2017  C#  
目的:

1. 認識Selenium 自動化工具在C#中的實現

應用: 自動進行登入網站
Github:

https://github.com/gotoa1234/SeleniumAutoLogin

DEMO影片:

https://www.youtube.com/watch?v=TFfN4NUNJuE

本篇分為三部分:
一、 C# Selenium 安裝
二、 C# 程式碼說明
三、 DEMO 自動登入,達到自動化測試應用

 


一、C# Selenium 安裝


Step 1:新增專案 -> 管理Nuget套件 

Step 2: 瀏覽 -> 安裝以下:

1. Selenium.WebDriver 

2. Selenium.Chrome.WebDrier  (※我們要使用Chrome )


二、 C# 程式碼架構


Step 1:目標測試網頁 https://louislinebot.azurewebsites.net/Login

Step 2: 實作一個Function ,進行Selenium 的呼叫程式自動登入,完整程式如下:

 /// <summary>
/// 進行登入
/// </summary>
public void Login()
{
    IWebDriver driver = new ChromeDriver();
    //開啟網頁
    driver.Navigate().GoToUrl(_url);
    //隱式等待 - 直到畫面跑出資料才往下執行
    driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10000);

    //輸入帳號
    IWebElement inputAccount = driver.FindElement(By.Name("Account"));
    Thread.Sleep(2000);
    //清除按鈕
    inputAccount.Clear();
    Thread.Sleep(2000);
    inputAccount.SendKeys("20180513");
    Thread.Sleep(2000);

    //輸入密碼
    IWebElement inputPassword = driver.FindElement(By.Name("Passwrod"));

    inputPassword.Clear();
    Thread.Sleep(2000);
    inputPassword.SendKeys("123456");
    Thread.Sleep(2000);

    //點擊執行
    IWebElement submitButton= driver.FindElement(By.XPath("/html/body/div[2]/form/table/tbody/tr[4]/td[2]/input"));
    Thread.Sleep(2000);
    submitButton.Click();
    Thread.Sleep(2000);

    driver.Quit();
}

Step 3:呼叫Selenium Driver ,這邊使用ChromeDriver()

    IWebDriver driver = new ChromeDriver();
    //開啟網頁
    driver.Navigate().GoToUrl(_url);
    //隱式等待 - 直到畫面跑出資料才往下執行
    driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10000);

Step 4:找出頁面的【帳號】輸入位置 TextBox  ※ Dom元件的 Id = Account

    //輸入帳號
    IWebElement inputAccount = driver.FindElement(By.Name("Account"));
    Thread.Sleep(2000);
    //清除按鈕
    inputAccount.Clear();
    Thread.Sleep(2000);
    inputAccount.SendKeys("20180513");
    Thread.Sleep(2000);

Step 5:找出頁面的【密碼】輸入位置 TextBox  ※ Dom元件的Id = Password

    //輸入密碼
    IWebElement inputPassword = driver.FindElement(By.Name("Passwrod"));

    inputPassword.Clear();
    Thread.Sleep(2000);
    inputPassword.SendKeys("123456");
    Thread.Sleep(2000);

Step 6:找出頁面的【submit】按鈕 ,並且點擊他

    //點擊執行
    IWebElement submitButton= driver.FindElement(By.XPath("/html/body/div[2]/form/table/tbody/tr[4]/td[2]/input"));
    Thread.Sleep(2000);
    submitButton.Click();
    Thread.Sleep(2000);

Step 7 : 關閉,避免下次開啟執行失敗

driver.Quit();

三、 DEMO 自動登入,達到自動化測試應用


Step 1:執行畫面 (可參考影片)

Step 2:影片DEMO

https://www.youtube.com/watch?v=TFfN4NUNJuE