Nội dung bài học

Anh Tester chia sẻ cho các bạn cách sử dụng Cookies trên website với Selenium để dùng cho case Login không cần nhập lại thông tin, chỉ cần add cookies đã từng login vào là được.

Anh Tester sử dụng code Selenium với Java. Các bạn dùng ngôn ngữ khác chỉnh lại cho phù hợp nhen.

private static String cookiesCurrent;

@Test(priority = 1)
public void testGetCookies() {
    driver.get("https://rise.fairsketch.com/signin");
    driver.findElement(By.xpath("//button[normalize-space()='Sign in']")).click();
    sleep(5);
    //Get cookies current by name
    cookiesCurrent = driver.manage().getCookieNamed("ci_session").getValue();
    System.out.println("Current Cookies: " + cookiesCurrent);
}

@Test(priority = 2)
public void testAddCookies() {
    driver.get("https://rise.fairsketch.com/signin");
    // Add the cookie into current browser context (cookiesCurrent)
    System.out.println("Get Current Cookies: " + cookiesCurrent);
    driver.manage().addCookie(new Cookie("ci_session", cookiesCurrent));
    sleep(3);
    driver.navigate().refresh();
    sleep(5);
}​


Handle Cookies on website using Selenium | Anh Tester

Cách sử dụng Cookies trên website với Selenium để sử dụng phiên đăng nhập

- Bước 1: Đầu tiên chúng ta cần Login với thông tin đầy đủ để lấy Cookie đã đăng nhập dùng cho các case sau.

Handle Cookies on website using Selenium | Anh Tester

private static String cookiesCurrent;

@Test(priority = 1)
public void testGetCookies() {
    driver.get("https://rise.fairsketch.com/signin");
    driver.findElement(By.xpath("//button[normalize-space()='Sign in']")).click();
    sleep(5);
    //Get cookies current by name
    cookiesCurrent = driver.manage().getCookieNamed("ci_session").getValue();
    System.out.println("Current Cookies: " + cookiesCurrent);
}​


Hiện tại dùng hàm getCookieNamed nghĩa là lấy giá trị cookies theo tên key.

Các bạn xem thêm các hàm tại đây

- Bước 2: Lấy giá trị cookie theo tên và lưu vào một biến toàn cục nào đó (cookiesCurrent)

Chổ này tạm thời An lưu vào biến toàn cục. Nhưng về lâu dài thì các bạn nên lưu nó vào file excel, file txt hay properties gì đó để nó không bị mất và dễ dùng cho sau này ở những chổ khác.

- Bước 3: Sử dụng lại cookies trên và add vào website sau khi đi đến website đó

@Test(priority = 2)
public void testAddCookies() {
    driver.get("https://rise.fairsketch.com/signin");
    // Add the cookie into current browser context (cookiesCurrent)
    System.out.println("Get Current Cookies: " + cookiesCurrent);
    driver.manage().addCookie(new Cookie("ci_session", cookiesCurrent));
    sleep(3);
    driver.navigate().refresh();
    sleep(5);
}​

Hàm add cookie theo cấu trúc (key, value)

driver.manage().addCookie(new Cookie("ci_session", cookiesCurrent));

Tại Test thứ 2 thì chúng ta chỉ cần Add cookie vào và nhấn F5 hay Refresh lại trang là thông tin đã hiển thị lên đã đăng nhập với chính account trước đó mà mình đã lấy cookie của nó add vào.

Quá tiện chứ hả. Case này dùng cho các trường hợp kiểm tra phiên đăng nhập hoặc cookies sinh ra đúng không và thời hạn cụ thể như nào, có đúng với các quyền hạn hay không.

Handle Cookies on website using Selenium | Anh Tester


Source code on GitHub:
https://github.com/anhtester/NewFeatureSelenium4/blob/main/src/test/java/AddCookies.java

Cộng đồng Automation Testing Việt Nam

🌱 Facebook Fanpage: Anh Tester
🌱 Telegram
Automation Testing:   Cộng đồng Automation Testing
🌱 
Facebook Group Automation: Cộng đồng Automation Testing Việt Nam
🌱 Telegram
Manual Testing:   Cộng đồng Manual Testing
🌱 
Facebook Group Manual: Cộng đồng Manual Testing Việt Nam

  • Anh Tester

    Đường dẫu khó chân vẫn cần bước đi
    Đời dẫu khổ tâm vẫn cần nghĩ thấu


Cộng đồng Automation Testing Việt Nam:

🌱 Telegram Automation Testing:   Cộng đồng Automation Testing
🌱 
Facebook Group Automation: Cộng đồng Automation Testing Việt Nam
🌱 
Facebook Fanpage: Cộng đồng Automation Testing Việt Nam - Selenium
🌱 Telegram
Manual Testing:   Cộng đồng Manual Testing
🌱 
Facebook Group Manual: Cộng đồng Manual Testing Việt Nam

Chia sẻ kiến thức lên trang

Bạn có thể đăng bài để chia sẻ kiến thức, bài viết của chính bạn lên trang Anh Tester Blog

Danh sách bài học