Cách tự động đăng nhập vào website sử dụng Selenium với Chrome trong Node.js

Hướng dẫn cách sử dụng Selenium trong Node.js để tự động đăng nhập vào một website. Bài viết sẽ chỉ ra cách thiết lập môi trường và viết mã Node.js để điều khiển trình duyệt Chrome.

Bài viết này sẽ hướng dẫn bạn cách sử dụng thư viện Selenium WebDriver trong Node.js để tự động đăng nhập vào một trang web bằng trình duyệt Chrome. Chúng ta sẽ sử dụng các phương thức để tìm các trường thông tin đăng nhập, nhập dữ liệu và gửi form một cách tự động.

Mã Node.js:

const { Builder, By, Key, until } = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
const path = require('path');

// Khởi tạo trình duyệt Chrome và cài đặt cấu hình
const service = new chrome.ServiceBuilder(path.resolve('chromedriver')).build();
chrome.setDefaultService(service);

(async function login() {
  let driver = await new Builder().forBrowser('chrome').build();
  try {
    // Mở trang web cần đăng nhập
    await driver.get('https://example.com/login');

    // Tìm và nhập tên người dùng
    await driver.findElement(By.name('username')).sendKeys('yourUsername');

    // Tìm và nhập mật khẩu
    await driver.findElement(By.name('password')).sendKeys('yourPassword');

    // Nhấn nút đăng nhập
    await driver.findElement(By.css('button[type="submit"]')).click();

    // Đợi cho đến khi trang được chuyển hướng hoặc có yếu tố xác định việc đăng nhập thành công
    await driver.wait(until.titleIs('Dashboard'), 10000);
  } finally {
    // Đóng trình duyệt
    await driver.quit();
  }
})();

Giải thích chi tiết từng dòng code:

  1. const { Builder, By, Key, until } = require('selenium-webdriver');: Import các thư viện Selenium cần thiết.
  2. const chrome = require('selenium-webdriver/chrome');: Import thư viện điều khiển Chrome.
  3. const service = new chrome.ServiceBuilder(path.resolve('chromedriver')).build();: Khởi tạo chromedriver để điều khiển Chrome.
  4. let driver = await new Builder().forBrowser('chrome').build();: Khởi tạo trình duyệt Chrome.
  5. await driver.get('https://example.com/login');: Mở trang đăng nhập của website.
  6. await driver.findElement(By.name('username')).sendKeys('yourUsername');: Nhập tên đăng nhập vào trường có thuộc tính name="username".
  7. await driver.findElement(By.name('password')).sendKeys('yourPassword');: Nhập mật khẩu vào trường có thuộc tính name="password".
  8. await driver.findElement(By.css('button[type="submit"]')).click();: Nhấn vào nút đăng nhập.
  9. await driver.wait(until.titleIs('Dashboard'), 10000);: Đợi cho đến khi tiêu đề của trang chuyển thành 'Dashboard' (sau khi đăng nhập thành công).

Yêu cầu hệ thống:

  • Node.js: phiên bản 12 trở lên.
  • Selenium WebDriver: Cài qua npm với lệnh npm install selenium-webdriver.
  • ChromeDriver: Cần tải phiên bản phù hợp với trình duyệt Chrome đang sử dụng và đặt đường dẫn trong code.

Cách cài đặt các thư viện để chạy được đoạn mã trên:

  1. Cài đặt Selenium WebDriver:
    npm install selenium-webdriver
    
  2. Tải ChromeDriver từ trang chính thức và đảm bảo nó tương thích với phiên bản Chrome hiện tại.
  3. Đảm bảo rằng ChromeDriver được đặt trong biến môi trường hoặc cấu hình đúng đường dẫn trong mã.

Lời khuyên:

  • Hãy đảm bảo rằng bạn sử dụng phiên bản ChromeDriver tương thích với phiên bản trình duyệt Chrome hiện tại.
  • Nếu gặp lỗi liên quan đến phiên bản, hãy kiểm tra lại phiên bản Selenium WebDriver và ChromeDriver.
  • Sử dụng file .env để bảo mật thông tin đăng nhập trong các dự án thực tế.
Tags: Node.js, Selenium


Các Hướng Dẫn Cùng Chủ Đề Đang Xem

Cách chuyển đổi chuỗi Markdown sang HTML bằng Node.js

Hướng dẫn chi tiết về cách chuyển đổi một chuỗi Markdown sang HTML trong Node.js bằng thư viện `marked`.
Cách ghi nội dung vào file Excel bằng Node.js

Hướng dẫn cách ghi dữ liệu vào file Excel bằng Node.js, sử dụng thư viện ExcelJS để tạo và thao tác file Excel một cách hiệu quả.
Xác thực JSON Web Token (JWT) trong Node.js

Bài viết này sẽ hướng dẫn cách sử dụng JSON Web Token (JWT) để xác thực người dùng trong ứng dụng Node.js. JWT là một cách phổ biến và an toàn để bảo mật API thông qua việc truyền thông tin xác thực giữa máy chủ và người dùng.
Các chức năng thường dùng khi sử dụng Selenium Chrome trong Node.js

Bài viết này sẽ liệt kê các chức năng thường dùng khi sử dụng Selenium với Chrome trong Node.js. Đây là các phương thức quan trọng giúp bạn tự động hóa quy trình kiểm thử và thao tác trên trình duyệt.
Sử dụng Selenium trong Node.js để gửi đoạn mã JavaScript vào website trên Chrome

Hướng dẫn cách sử dụng Selenium trong Node.js để tự động hóa việc gửi đoạn mã JavaScript vào một trang web trên trình duyệt Chrome. Bài viết sẽ hướng dẫn từng bước từ cài đặt đến thực thi mã.
Cách mở ứng dụng Notepad bằng Node.js

Hướng dẫn cách mở ứng dụng Notepad trên hệ điều hành Windows bằng Node.js sử dụng mô-đun `child_process`. Đây là phương pháp đơn giản để gọi các ứng dụng hệ thống từ Node.js.
Cách UPDATE dữ liệu từ database MySQL bằng Node.js

Hướng dẫn cách sử dụng Prepared Statements trong Node.js để cập nhật dữ liệu trong một bảng của database MySQL một cách an toàn và hiệu quả.
Tạo ứng dụng chat đơn giản sử dụng Socket.IO trong Node.js

Hướng dẫn chi tiết cách tạo một ứng dụng chat đơn giản sử dụng Socket.IO trong Node.js, cho phép người dùng gửi và nhận tin nhắn theo thời gian thực.
Tạo mã Captcha bằng Node.js

Hướng dẫn chi tiết cách tạo mã Captcha trong ứng dụng Node.js giúp bảo vệ trang web của bạn khỏi các bot tự động và cải thiện tính bảo mật.
Cách INSERT dữ liệu vào database MySQL bằng Node.js

Hướng dẫn cách sử dụng Prepared Statements trong Node.js để chèn dữ liệu vào bảng trong database MySQL một cách an toàn và hiệu quả, với nhiều tham số.

Đã thêm vào giỏ hàng