DevOps AI
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud
No Result
View All Result
DevOpsAI
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud
No Result
View All Result
DevOpsAI
No Result
View All Result
Home AI & Automation

Chrome Options và Desired Capabilities trong Selenium Webdriver

Huyen Tran by Huyen Tran
1 Tháng 5, 2025
in AI & Automation
0
Chrome Options và Desired Capabilities trong  Selenium Webdriver
Share on FacebookShare on Twitter

Capabilities là các tùy chọn mà bạn có thể sử dụng để tùy chỉnh và cấu hình một ChromeDriver session. Bài này sẽ cung cấp cho bạn tất cả các capabilities mà Chrome Option hỗ trợ và cách sử dụng chúng trong Selenium WebDriver.

WebDriver APIs cung cấp cách chuyển các capability tới Chrome driver. Chính xác là cơ chế hoạt động khác nhau tùy vào ngôn ngữ, nhưng hầu như các ngôn ngữ sử dụng một hoạc cả hai cơ chế sau:

  1. Sử dụng class ChromeOptions. (Được hỗ trợ bởi Java, Python,…)
  2. Sử dụng class DesiredCapabilities. (Được hỗ trợ bởi Java, Python, Ruby,…). Dù nó hiện vẫn còn có trên Java, nhưng nó hầu như không được dùng nữa.

Class ChromeOptions

ChromeOptions là gì?

Class ChromeOptions là một khái niệm trong Selenium WebDriver dùng để thao tác các thuộc tính khác nhau của Chrome driver. Class ChromeOptions thường được sử dụng cùng với DesiredCapabilities để tùy chỉnh các phiên Chrome driver. Nó giúp bạn thực hiện nhiều thao tác khác nhau.

Cách dùng ChromeOptions

  1. Khởi tạo một instance thuộc ChromeOptions, instance này có các phương thức để thiết lập các đặc tính dành riêng cho ChromeDriver.
  2. Chuyển đối tượng (object) ChromeOptions vào ChromeDriver contructor:

Ví dụ:

Related Post

Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

16 Tháng 6, 2025
Selenium Tutorial – Java

Selenium Tutorial – Java

1 Tháng 5, 2025

Detox – gray box end-to-end testing automation framework cho ứng dụng React Native

1 Tháng 5, 2025

Cách xử lý các sự kiện bàn phím và chuột trong Selenium sử dụng class Actions

1 Tháng 5, 2025
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
options.addArgument("start-maximized");
ChromeDriver driver = new ChromeDriver(options);

Các argument thông dụng của ChromeOptions

Dưới đây là danh sách các argument có sẵn và được sử dụng phổ biến nhất:

  • start-maximized: Mở trình duyệt Chrome ở chế độ phóng to (maximize mode)
  • incognito: Mở trình duyệt Chrome ở chế độ ẩn danh (incognito mode)
  • headless: Mở trình duyệt Chrome ở chế độ không có giao diện người dùng (headless mode)
  • disable-extensions: Vô hiệu hóa các tiện ích mở rộng hiện có trên trình duyệt Chrome
  • disable-popup-blocking: Vô hiệu hóa pop-up hiển thị trên trình duyệt Chrome
  • make-default-browser: Đặt trình duyệt Chrome làm mặc định
  • version: In phiên bản trình duyệt chrome
  • disable-infobars: Ngăn Chrome hiển thị notification ‘Chrome is being controlled by automated software” khi kiểm thử bởi Automation Test. (Bị remove trên Chromium – xem tại đây). Thay vào đó chúng ta có thể dùng theo cách sau:
options.setExperimentalOption("excludeSwitches",Collections.singletonList("enable-automation"));

Class DesiredCapabilities

DesiredCapabilities là gì?

Class DesiredCapabilities  được dùng để sửa đổi nhiều thuộc tính của web driver. Nó cung cấp các cặp khóa-giá trị (key-value) để thay đổi các thuộc tính riêng lẻ của web driver, chẳng hạn như tên trình duyệt, nền tảng trình duyệt, v.v.

DesiredCapabilities chủ yếu được sử dụng với Selenium Grid, với mục đích kiểm thử trên các trình duyệt khác nhau cho cùng một trường hớp (Test case được kiểm thử trên nhiều trình duyệt như Chrome, Firefox..).

Cách dùng DesiredCapabilities

  • Bạn có thể thiết lập trực tiếp (như setBrowserName..) hoặc sử dụng phương thức setCapability – phương thức phổ biến của class DesiredCapabilities.
  • Khi dùng phương thức setCapability để thay đổi các thuộc tính riêng lẻ của web driver, bạn cần biết capability_name và loại giá trị mà nó sẽ nhận.

Các capabilities thông dụng

Dưới đây là các loại capability được xác định thường được sử dụng:

Capability NameDescription
ACCEPT_SSL_CERTSThuộc tính này được sử dụng để thiết lập cho trình duyệt mặc định chấp nhập chứng chỉ SSL (accept SSL Certificates )
PLATFORM_NAMEThuộc tính này được sử dụng để thiết lập hệ điều hành
BROWSER_NAMEThuộc tính này được sử dụng để đặt tên trình duyệt cho instance của web driver
VERSIONThuộc tính này được sử dụng để thiết lập phiên bản của trình duyệt (browser version)

Cách sử dụng ChromeOptions và DesiredCapilities

Scenario: Sử dung ChromeOptions và DesiredCapabilities thực hiện:

  1. Mở trình duyệt chrome và để chế độ:
    • Maximized mode: phóng to màn hình
    • Cho phép web push notification:
    • Add extension: bật tiện ích custom cursor trên trình duyệt Chrome bằng cách add file extension .
  2. Truy cập vào trang https://devopsify.co/

Các bước thực thi

Đầu tiên chúng ta download extension file về máy theo các bước sau:

  1. Vào trang https://crxextractor.com/
  2. Nhấp chuốt vào link Chrome WebStore để mở extension của chrome
  3. Nhấp chuốt vào link Custom cursor for chrome , copy URL và dán vào textbox của trang https://crxextractor.com/ -> Nhấp OK
  4. Button OK sẽ chuyển thành Get .crx, nhấp chuột vào để download file .crx về máy

Các bước thực thi code như sau

  1. Download extension custom cursor file
  2. Sử dụng WebDriverManager để mở trình duyệt chrome dùng cho việc kiểm thử
  3. Khởi tạo đối tượng thuộc class ChromeOptions
  4. Sử dụng phương thức addExtensions để thêm và bật extension custom cursor bằng cách upload file extension file .crx
  5. Thiết lập các argument khi mở trình duyêt (như phóng to màn hình, tắt notification của trình duyêt, tắt thông báo ‘Chrome is being controlled by automated software” khi chạy automation test) .
  6. Tạo một đối tượng thuộc Chrome Desired Capabilities trong class Selenium và chuyển nó qua webdriver instance
  7. Hợp nhất (merge) đối tượng capabilities với đối tượng Chrome Options trước khi chuyển các argument tới Chrome Driver constructor

Code example.

package SeleniumWebDriverTutorial;

import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;

import java.io.File;
import java.util.Collections;
public class ChromeOptionsDesiredCapabilities {

    public static void main(String [] args){
        WebDriverManager.chromedriver().setup();      

        ChromeOptions options = new ChromeOptions();
        options.addExtensions(new File("D:\extension_3_1_3_0.crx"));
        options.addArguments("start-maximized");
        options.addArguments("--disable-notifications");
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability(ChromeOptions.CAPABILITY, options);
        options.setExperimentalOption("excludeSwitches",
                Collections.singletonList("enable-automation"));
        options.merge(capabilities);
        ChromeDriver driver = new ChromeDriver(options);
        driver.get("https://devopsify.co/");
     
        //driver.quit();
    }
}

Sau khi chạy đoạn code trên, bạn sẽ thấy chrome được bật, ở chế độ phóng to, web push notification popup không còn bât lên nữa, bên cạnh đó một tab mới được mở ra với tiện ích custpm cursor trên trình duyệt Chrome được bật.

Lưu ý:

Kể từ phiên bản Selenium 3.6.0, ChromeOptions trong Java cũng triển khai Capabilities interface, cho phép bạn chỉ định các WebDriver capabilities khác không dành riêng cho ChromeDriver

Ví dụ: Thiết lập Proxy cho trình duyệt

ChromeOptions options = new ChromeOptions();

// Add the WebDriver proxy capability.
Proxy proxy = new Proxy();
proxy.setHttpProxy("myhttpproxy:3337");
options.setCapability("proxy", proxy);

Có rất nhiều lệnh có thể được sử dụng với trình duyệt Chrome. Một số thay đổi hành vi của các tính năng, một số khác là để gỡ lỗi hoặc thử nghiệm. Bạn có thể xem danh sách để thiết lập có sẵn bao gồm các điều kiện và mô tả của chúng tại đây.

Các bạn hãy thử nhé!

Tags: automation testchromeseleniumwebdriver
Huyen Tran

Huyen Tran

Related Posts

Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent
AI & Automation

Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

by devopsify
16 Tháng 6, 2025
Selenium Tutorial – Java
AI & Automation

Selenium Tutorial – Java

by Huyen Tran
1 Tháng 5, 2025
Detox – gray box end-to-end testing automation framework cho ứng dụng React Native
AI & Automation

Detox – gray box end-to-end testing automation framework cho ứng dụng React Native

by Huyen Tran
1 Tháng 5, 2025
Next Post
Hosting a Static Website trên AWS S3

Hosting a Static Website trên AWS S3

Để lại một bình luận Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Recommended

Các website demo hay được sử dụng cho thực hành Automation Test

Các website demo hay được sử dụng cho thực hành Automation Test

11 Tháng 6, 2025
Hướng dẫn cài đặt Kubernetes trên Ubuntu 22.04

Hướng dẫn cài đặt Kubernetes trên Ubuntu 22.04

1 Tháng 5, 2025
Cài đặt Maven trên Windows

Cài đặt Maven trên Windows

11 Tháng 6, 2025
Cài đặt Grafana – Loki – Promtail monitoring log Container

Cài đặt Grafana – Loki – Promtail monitoring log Container

1 Tháng 5, 2025
Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

16 Tháng 6, 2025
MCP server 2025 tốt nhất : Hướng dẫn chọn & bảo mật

MCP server 2025 tốt nhất : Hướng dẫn chọn & bảo mật

16 Tháng 6, 2025
DevOpsify Check Tool hỗ trợ MCP – Tự động hóa kiểm tra qua AI Claude & VS Code

DevOpsify Check Tool hỗ trợ MCP – Tự động hóa kiểm tra qua AI Claude & VS Code

13 Tháng 6, 2025
GitHub Action DevOpsify Check Tool – Tự động kiểm tra bảo mật & hiệu suất

GitHub Action DevOpsify Check Tool – Tự động kiểm tra bảo mật & hiệu suất

11 Tháng 6, 2025
DevOpsify

Cộng đồng DevOps Việt Nam chia sẽ kiến thức giúp tăng tốc quá trình phát triển ứng dụng và tự động hóa trong lĩnh vực Cloud DevOps & AI.

Bài viết mới

  • Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent
  • MCP server 2025 tốt nhất : Hướng dẫn chọn & bảo mật
  • DevOpsify Check Tool hỗ trợ MCP – Tự động hóa kiểm tra qua AI Claude & VS Code

Categories

  • AI & Automation
  • Bảo mật
  • Chưa phân loại
  • DevOps & Cloud
  • Tin tức
No Result
View All Result
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud

© 2025 DevOpsify