Nội dung bài học

 

Thông qua các bài giới thiệu và làm quen trước thì có lẽ câu hỏi Selenium IWebDriver là gì? Nó là một tool? hay là một class? 

 

1. Selenium IWebDriver

Có thể hiểu một cách đơn giản Selenium IWebDriver là một thư viện cung cấp các phương thức (cách lệnh) giúp các bạn thao tác được trên các trình duyệt web như Google Chrome, Firefox, Internet Explorer và Microsoft Edge.

Vậy IWebDriver có bao nhiêu phương thức? Cách đơn giản để kiểm tra là bạn hãy tạo một IWebDriver và sau đó nhấn phím dấu chấm ".". Điều này sẽ liệt kê tất cả các phương thức của IWebDriver.

Trước tiên chúng ta sẽ quan tâm đến các phương thức có mũi tên màu cam trước. Các bạn có thể thấy khi đưa chuột vào thì visual studio sẽ có một mô tả. Và biết được các phương thức là gì, giá trị trả về, cho phép gán hay lấy giá trị.

 

 

 

 

Phương thức : Phương thức là tập hợp các câu lệnh được nhóm lại với nhau để thực hiện một thao tác.

  • Tên phương thức : Để truy cập bất kỳ phương thức nào của bất kỳ lớp nào, chúng ta cần tạo một đối tượng của lớp và sau đó tất cả các phương thức công khai sẽ xuất hiện cho đối tượng đó .
  • Getter & Setter : Để nhận và đặt giá trị.
  • Kiểu trả về : Phương thức có thể trả về giá trị hoặc không trả về gì (void). Nếu khoảng trống được đề cập sau phương thức, điều đó có nghĩa là phương thức không trả về giá trị nào. Và nếu nó trả về bất kỳ giá trị nào, thì nó phải hiển thị loại giá trị đó .
  • Mô tả : Đây là một bản tóm tắt ngắn về hoạt động của phương pháp.

Bây giờ sẽ rất dễ hiểu các lệnh IWebDriver trong chương dưới đây. Điều đầu tiên bạn muốn làm với Selenium là Mở một trình duyệt mới, Thực hiện một số tác vụ và Đóng trình duyệt. Dưới đây là một số lệnh bạn có thể áp dụng trên trình duyệt đã mở Selenium.

1.1. Url

Với lệnh Url ta có thể thấy visual studio cho ra thông tin rằng: string IWebDriver.Url {get;set;}

  • Phương thức này cho phép Tải một trang web mới trong cửa sổ của trình duyệt hiện tại
  • Cho phép lấy giá trị hiện tại và đặt một giá trị mới vào.
    • driver.Url = "https://luannt.com"   >> Lệnh này được hiểu là mở trang luannt.com
    • string url = driver.Url                     >> Lệnh này được hiểu là lấy url hiện tại của cửa sổ trình duyệt.

Ví dụ:

driver.Url = "https://luannt.com";

 

1.2. Title

Với lệnh Title ta có thể thấy visual studio cho ra thông tin rằng: string IWebDriver.Title {get;}

  • Phương thức này cho phép Lấy tiêu đề của trang web hiện tại
  • Vì là trả về một chuỗi nên bạn phải gán nó cho kiểu string hoặc var

Ví dụ:

string title = driver.Title;

 

1.3. PageSource

Với lệnh PageSource ta có thể thấy visual studio cho ra thông tin rằng: string IWebDriver.PageSource {get;}

  • Phương thức này cho phép Lấy nguôn trang (tức là lấy dạng html code) của trang web hiện tại.
  • Vì là trả về một chuỗi nên bạn phải gán nó cho kiểu string hoặc var

Ví dụ:

string pageSource = driver.PageSource;

 

1.4. Phương thức Close()

Với phương thức Close() ta có thể thấy visual studio cho ra thông tin rằng: void IWebDriver.Close()

  • Phương thức này dùng để đóng cửa sổ hiện tại mà IWebDriver đang kiểm soát. 
  • Không có tham số truyền vào và không trả ra kết quả gì.

Ví dụ:

driver.Close();

 

1.5. Phương thức Quit()

Với phương thức Quit() ta có thể thấy visual studio cho ra thông tin rằng: void IWebDriver.Quit()

  • Phương thức này dùng để đóng tất cả cửa sổ hiện tại mà IWebDriver đang mở. 
  • Không có tham số truyền vào và không trả ra kết quả gì.

Ví dụ:

driver.Quit();

 

 

2. Các phương thức điều hướng trên Selenium IWebDriver

 

2.1. GoToUrl

Với lệnh GoToUrl ta có thể thấy visual studio cho ra thông tin rằng: string IWebDriver.INavigation().GoToUrl(string url)

  • Lệnh này dùng để đi đến một trang web chỉ định dựa vào url truyền vào.
  • Tham số truyền vào là một chuỗi địa chỉ web

Ví dụ:

driver.Navigate().GoToUrl("https://luannt.com");

 

2.2. Back

Với lệnh Back ta có thể thấy visual studio cho ra thông tin rằng: string IWebDriver.INavigation().Back()

  • Lệnh này dùng trở về trang vừa truy cập dựa trên lịch sử trình duyệt của bạn.
  • Lệnh này không có tham số truyền vào

Ví dụ:

driver.Navigate().Back();

 

2.3. Forward

Với lệnh Forward ta có thể thấy visual studio cho ra thông tin rằng: string IWebDriver.INavigation().Forward()

  • Lệnh này dùng để đi về phía trang tiếp theo dựa trên lịch sử trình duyệt của bạn.
  • Lệnh này không có tham số truyền vào

Ví dụ:

driver.Navigate().Forward();

 

2.4. Refresh

Với lệnh Refresh ta có thể thấy visual studio cho ra thông tin rằng: string IWebDriver.INavigation().Refresh()

  • Lệnh này dùng để tải lại trang hiện tại của bạn.
  • Lệnh này không có tham số truyền vào

Ví dụ:

driver.Navigate().Refresh();

 

3. Bài tập thực hành số 1

  1. Khởi chạy trình duyệt Chrome
  2. Vào trang: https://luannt.com
  3. Lấy tên tiêu đề và độ dài tiêu đề. In độ dài tiêu đề.
  4. Lấy url trang và độ dài url. In độ dài url.
  5. Nhận Nguồn trang (Mã nguồn HTML) và độ dài Nguồn trang. In độ dài Nguồn trang.
  6. Đóng trình duyệt.

 

4. Bài tập thực hành số 2

  1. Khởi chạy trình duyệt Chrome
  2. Vào trang: https://luannt.com
  3. Lấy tiêu đề trang. In tiêu đề trang.
  4. Vào trang: https://luannt.com/courses/info/selenium-in-csharp
  5. Lấy tiêu đề trang. In tiêu đề trang.
  6. Sử dụng lệnh Back quay trở về trang trước đó. Lấy tiêu đề trang và in tiêu đề trang ra.
  7. Sử dụng lệnh Forward để đến trang tiếp theo. Lấy tiêu đề trang và in tiêu đề trang ra.
  8. Sử dụng lệnh Refresh để tải lại trang hiện tại. Lấy tiêu đề trang và in tiêu đề trang ra.
  9. Đóng trình duyệt.

 

5. Gợi ý

 

5.1. Bài tập thực hành số 1

        using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace DemoNUnit
{
    public class Class1
    {
        private IWebDriver driver;

        [SetUp]
        public void Setup()
        {
            //1. Khởi chạy trình duyệt Chrome
            driver = new ChromeDriver();
        }

        [Test]
        public void Test()
        {
            //2. Vào trang: https://luannt.com
            driver.Url = "https://luannt.com";

            //3.Lấy tên tiêu đề và độ dài tiêu đề. In độ dài tiêu đề.
            string title = driver.Title;
            Console.WriteLine("Độ dài tiêu đề: " + title.Length);

            //4.Lấy url trang và độ dài url.In độ dài url.
            string url = driver.Url;
            Console.WriteLine("Độ dài url: " + url.Length);

            //5. Nhận Nguồn trang (Mã nguồn HTML) và độ dài Nguồn trang. In độ dài Nguồn trang.
            string pageSource = driver.PageSource;
            Console.WriteLine("Độ dài nguồn trang: " + pageSource.Length);
        }

        [TearDown]
        public void Finish()
        {
            //6.Đóng trình duyệt
            driver.Quit();
        }
    }
}

 

 

5.2. Bài tập thực hành số 2

 

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace DemoNUnit
{


    public class Class1
    {
        private IWebDriver driver;

        [SetUp]
        public void Setup()
        {
            driver = new ChromeDriver();
        }
        [Test]
        public void Test()
        {
            //2. Vào trang https://luannt.com
            driver.Url = "https://luannt.com";
            //3. Lấy tiêu đề trang và in tiêu đề ra
            var currentTitle = driver.Title;
            Console.WriteLine("Bước 3: Tiêu đề trang: " + currentTitle);

            //4. Đi đến trang https://luannt.com/courses/info/selenium-in-csharp
            driver.Navigate().GoToUrl("https://luannt.com/courses/info/selenium-in-csharp");
            //5. Lấy tiêu đề trang và in tiêu đề ra
            currentTitle = driver.Title;
            Console.WriteLine("Bước 4: Tiêu đề trang (Navigate().GoToUrl): " + currentTitle);

            //6. Trở về trang trước đó. Lấy tiêu đề trang và in tiêu đề ra
            driver.Navigate().Back();
            currentTitle = driver.Title;
            Console.WriteLine("Bước 6: Tiêu đề trang (Back()): " + currentTitle);

            //7. Đến trang tiếp theo. Lấy tiêu đề trang và in tiêu đề ra
            driver.Navigate().Forward();
            currentTitle = driver.Title;
            Console.WriteLine("Bước 7: Tiêu đề trang (Forward()): " + currentTitle);

            //8. Refresh lại trang. Lấy tiêu đề trang và in tiêu đề ra
            driver.Navigate().Refresh();
            currentTitle = driver.Title;
            Console.WriteLine("Bước 8: Tiêu đề trang (Refresh()): " + currentTitle);

            Thread.Sleep(3000);
        }
        [TearDown]
        public void Finish()
        {
            //B9. Đóng trình duyệt
            driver.Quit();
        }
    }
}

Document

Student feedback

4.8
Course Rating
70%
15%
20%
3%
2%

Reviews

Write a Review