Tùy chọn Chrome & Khả năng mong muốn trong Selenium webdriver
Lớp tùy chọn Chrome là gì?
Lớp tùy chọn Chrome là một khái niệm trong Selenium WebDriver để thao tác các thuộc tính khác nhau của trình điều khiển Chrome. Lớp tùy chọn Chrome thường được sử dụng cùng với Khả năng mong muốn để tùy chỉnh các phiên trình điều khiển Chrome. Nó giúp bạn thực hiện nhiều thao tác khác nhau như mở Chrome ở chế độ tối đa, tắt các tiện ích mở rộng hiện có, tắt cửa sổ bật lên, v.v.
Ví dụ:
Ví dụ dưới đây cho thấy cách mở trình duyệt Chrome ở chế độ tối đa bằng lớp ChromeOptions. Chúng ta cần chuyển một phiên bản của lớp ChromeOptions sang quá trình khởi tạo trình điều khiển web.
ChromeOptions options = new ChromeOptions() options.addArgument("start-maximized"); ChromeDriver driver = new ChromeDriver(options);
Dưới đây là danh sách các đối số có sẵn và được sử dụng phổ biến nhất cho lớp ChromeOptions
- bắt đầu tối đa hóa: Mở Chrome ở chế độ phóng to
- ẩn danh: Mở Chrome ở chế độ ẩn danh
- không đầu: Mở Chrome ở chế độ không đầu
- vô hiệu hóa tiện ích mở rộng: Tắt các tiện ích mở rộng hiện có trên trình duyệt Chrome
- vô hiệu hóa chặn cửa sổ bật lên: Vô hiệu hóa pop-up hiển thị trên trình duyệt Chrome
- tạo-mặc định-trình duyệt: Đặt Chrome làm trình duyệt mặc định
- phiên bản: In phiên bản trình duyệt Chrome
- vô hiệu hóa thanh thông tin: Ngăn Chrome hiển thị thông báo “Chrome đang bị phần mềm tự động điều khiển”
Lớp khả năng mong muốn
Lớp khả năng mong muốn được sử dụng để sửa đổi nhiều thuộc tính của trình điều khiển web. Nó cung cấp các cặp khóa-giá trị để thay đổi các thuộc tính riêng lẻ của trình điều khiển web như tên trình duyệt, nền tảng trình duyệt, v.v. Một phương thức phổ biến của lớp Khả năng mong muốn là phương thức setCapability. Nó chủ yếu được sử dụng với Selenium Grid, nơi cùng một trường hợp thử nghiệm cần được thực thi trên các trình duyệt khác nhau.
Ví dụ:
Ví dụ bên dưới cho thấy cách cho phép trình duyệt Chrome chấp nhận chứng chỉ SSL trên các trang web theo mặc định bằng cách sử dụng Khả năng mong muốn cho lớp Chrome.
// Create an object of desired capabilities class with Chrome driver DesiredCapabilities SSLCertificate = DesiredCapabilities.chrome(); // Set the pre defined capability – ACCEPT_SSL_CERTS value to true SSLCertificate.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); // Open a new instance of chrome driver with the desired capability WebDriver driver = new ChromeDriver(SSLCertificate);
Dưới đây là các loại khả năng được xác định trước được sử dụng phổ biến nhất.
Tên khả năng | Mô tả Chi tiết |
---|---|
ACCEPT_SSL_CERTS | Thuộc tính này yêu cầu trình duyệt chấp nhận Chứng chỉ SSL theo mặc định |
TÊN GA TÀU | Thuộc tính này được sử dụng để thiết lập nền tảng hệ điều hành được sử dụng để truy cập trang web |
BROWSER_NAME | Thuộc tính này được sử dụng để đặt tên trình duyệt cho phiên bản trình điều khiển web |
PHIÊN BẢN | Thuộc tính này được sử dụng để đặt phiên bản trình duyệt |
Tùy chọn Chrome cho tiện ích mở rộng Trình chặn quảng cáo
Tiện ích mở rộng Adblocker của trình duyệt Chrome có thể được xử lý bằng cách sử dụng ChromeDriver Options và Desired Capabilities class. Dưới đây là các bước để truy cập AdBlocker tiện ích mở rộng trên trình duyệt Chrome sử dụng lớp Khả năng mong muốn.
Bước 1) AdBlocktiện ích mở rộng er phải được cài đặt trên trình duyệt Chrome trước khi sử dụng lớp Tùy chọn Chrome
Bước 2) Giải nén file CRX tương ứng với AdBlocker tiện ích mở rộng thông qua http://crxextractor.com/
Bước 3) Truyền đường dẫn Tệp CRX đã tải xuống vào lớp Tùy chọn Chrome
Bước 4) Khởi tạo trình điều khiển web bằng cách sử dụng lớp khả năng mong muốn và Tùy chọn Chrome trong Selenium vật
Ví dụ:
Ví dụ bên dưới minh họa cách kích hoạt tiện ích mở rộng trình chặn quảng cáo trên trình duyệt Chrome bằng cách sử dụng lớp Tùy chọn Chrome và Khả năng mong muốn.
ChromeOptions options = new ChromeOptions(); options.addExtensions(new File("Path to CRX File")); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(ChromeOptions.CAPABILITY, options); ChromeDriver driver = new ChromeDriver(capabilities);
Giải nén tệp CRX
Các bước bên dưới trình bày quy trình giải nén Tệp CRX thông qua Trình chặn quảng cáo thông qua trang web – http://crxextractor.com/
Bước 1) Đến phần http://crxextractor.com/ và nhấp vào nút bắt đầu
Bước 2) Nhập tiện ích mở rộng Chrome – URL Ad Blocker vào hộp văn bản. URL cho Adblock trên cửa hàng web Chrome là https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom
và bấm vào đồng ý
Bước 3) Khi nhấp vào nút OK, nhãn của nút sẽ đổi thành Get .CRX như bên dưới. Bấm vào nút Get .CRX, file CRX tương ứng với đuôi mở rộng sẽ được tải xuống
Bước 4) Lưu tệp vào máy cục bộ, ghi chú đường dẫn đã lưu. Bước tiếp theo là chuyển đường dẫn đã lưu vào lớp Tùy chọn Chrome
Mã mẫu:
- Bạn sẽ thấy quảng cáo tại https://demo.guru99.com/ như sau
- Với AdBlocker tiện ích mở rộng được bật trên quảng cáo trình duyệt Chrome sẽ bị tắt
package adblock; import java.io.File; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.remote.DesiredCapabilities; public class AdblockDemo { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver","X://chromedriver.exe"); ChromeOptions options = new ChromeOptions(); options.addExtensions(new File("X://extension_3_40_1_0.crx")); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(ChromeOptions.CAPABILITY, options); options.merge(capabilities); ChromeDriver driver = new ChromeDriver(options); driver.get("https://demo.guru99.com/test/simple_context_menu.html"); driver.manage().window().maximize(); //driver.quit(); } }
Giải thích mã:
- Ban đầu, bạn cần đặt đường dẫn đến tệp chromedriver.exe bằng phương thức thuộc tính set vì bạn đang sử dụng Trình duyệt Chrome để kiểm tra
- Bạn cần đặt đường dẫn đến Tệp CRX để thêm phương thức tiện ích mở rộng
- Sau đó, bạn cần tạo một đối tượng Khả năng mong muốn của Chrome trong Selenium class và chuyển nó tới phiên bản trình điều khiển web. Từ Selenium Phiên bản 3.8.1, lớp khả năng của trình điều khiển không được dùng nữa và bạn cần hợp nhất đối tượng khả năng với đối tượng Tùy chọn Chrome trước khi chuyển đối tượng tương tự làm đối số cho hàm tạo Trình điều khiển Chrome
- Mở URL – https://demo.guru99.com/test/simple_context_menu.html đã bật tiện ích Trình chặn quảng cáo
- Phóng to và đóng trình duyệt
LƯU Ý: Chúng tôi đang kích hoạt AdBlocker tiện ích mở rộng trên trình duyệt Chrome thông qua tập lệnh tự động hóa thay vì bật thủ công tiện ích Adblocker trên trình duyệt Chrome. Tệp CRX là một cách để truy cập tiện ích mở rộng trình chặn quảng cáo bằng tập lệnh tự động hóa
Đầu ra:
Trình duyệt Chrome sẽ được kích hoạt với AdBlocktiện ích mở rộng er được bật như bên dưới mà không có bất kỳ quảng cáo nào
Tùy chọn Chrome cho chế độ Ẩn danh
Tùy chọn Chrome có thể được sử dụng cho chế độ ẩn danh bằng cách sử dụng đối số được xác định trước –ẩn danh.
Dưới đây là mã mẫu để thực hiện tương tự.
Mã mẫu:
package test; import java.io.File; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.remote.DesiredCapabilities; public class Incognito{ public static void main(String[] args) { // TODO Auto-generated method stub System.setProperty("webdriver.chrome.driver","X://chromedriver.exe"); ChromeOptions options = new ChromeOptions(); options.addArguments("--incognito"); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(ChromeOptions.CAPABILITY, options); options.merge(capabilities); ChromeDriver driver = new ChromeDriver(options); driver.get("https://demo.guru99.com/test/simple_context_menu.html"); driver.manage().window().maximize(); //driver.quit(); } }
Giải thích mã:
- Ban đầu, bạn cần đặt đường dẫn đến tệp chromedriver.exe bằng phương thức thuộc tính set vì bạn đang sử dụng Trình duyệt Chrome để kiểm tra
- Sau đó, bạn cần tạo một đối tượng của lớp Tùy chọn Chrome và chuyển nó sang phiên bản trình điều khiển web. Vì chúng ta muốn mở trình duyệt Chrome ở chế độ ẩn danh nên bạn cần chuyển đối số –incognito cho lớp Tùy chọn Chrome.
- Tiếp theo, tạo một đối tượng của lớp Khả năng mong muốn và hợp nhất đối tượng lớp Khả năng mong muốn với đối tượng lớp Tùy chọn Chrome bằng phương thức hợp nhất
- Bạn cần tạo một đối tượng của lớp Trình điều khiển Chrome và truyền đối tượng Tùy chọn Chrome làm đối số
- Cuối cùng, chúng ta cần chuyển URL – https://demo.guru99.com/test/simple_context_menu.html đến phương thức driver.get
- Phóng to và đóng trình duyệt
Đầu ra:
Cửa sổ trình duyệt chrome sẽ được mở ở chế độ Ẩn danh như bên dưới
Tùy chọn Chrome cho Chrome không đầu
Trình duyệt không đầu chạy ở chế độ nền. Bạn sẽ không thấy GUI của trình duyệt hoặc các thao tác được thực hiện trên đó.
Tùy chọn Chrome để chạy trình duyệt Chrome ở chế độ không đầu có thể được thực hiện bằng cách sử dụng các đối số được xác định trước -không đầu.
Mã mẫu để thực hiện nó được đề cập dưới đây.
Ví dụ:
package test; import java.io.File; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.remote.DesiredCapabilities; public class HeadlessModeDemo { public static void main(String[] args) { // TODO Auto-generated method stub System.setProperty("webdriver.chrome.driver","X://chromedriver.exe"); ChromeOptions options = new ChromeOptions(); options.addArguments("--headless"); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(ChromeOptions.CAPABILITY, options); options.merge(capabilities); ChromeDriver driver = new ChromeDriver(options); driver.get("https://demo.guru99.com/"); driver.manage().window().maximize(); String title = driver.getTitle(); System.out.println("Page Title: " +title); driver.quit(); } }
Giải thích mã:
- Ban đầu, bạn cần đặt đường dẫn đến tệp chromedriver.exe bằng phương thức thuộc tính set vì bạn đang sử dụng Trình duyệt Chrome để kiểm tra
- Tiếp theo, tạo một đối tượng của lớp Tùy chọn Chrome và chuyển nó tới phiên bản trình điều khiển web. Vì chúng ta muốn mở trình duyệt Chrome ở chế độ không đầu, nên chúng ta cần chuyển đối số –headless cho lớp Tùy chọn Chrome.
- Tạo một đối tượng của lớp Chrome DesiredCapabilities và hợp nhất đối tượng lớp Khả năng mong muốn với đối tượng lớp Tùy chọn Chrome bằng phương thức hợp nhất
- Tạo một đối tượng của lớp Trình điều khiển Chrome và chuyển Tùy chọn Chrome Selenium đối tượng như một đối số
- Cuối cùng, chúng ta cần chuyển URL – https://demo.guru99.com/ đến phương thức driver.get
- In tiêu đề trang và đóng trình duyệt
Đầu ra
Trình duyệt sẽ không hiển thị với mã ở trên vì Chrome sẽ hoạt động ở chế độ Không đầu. Tiêu đề trang sẽ được tìm nạp và hiển thị như bên dưới.
Tổng kết
- Selenium Lớp Tùy chọn Chrome được sử dụng để thao tác các thuộc tính khác nhau của trình điều khiển Chrome
- Lớp Khả năng Chrome mong muốn cung cấp một tập hợp các cặp khóa-giá trị để sửa đổi các thuộc tính riêng lẻ của trình điều khiển web như tên trình duyệt, nền tảng trình duyệt, v.v.
- Để thao tác với bất kỳ tiện ích mở rộng nào của trình duyệt Chrome, Tệp CRX tương ứng với tiện ích mở rộng phải được giải nén và phải được thêm vào lớp Tùy chọn Chrome
- –incognito và –headless là các đối số được xác định trước do lớp Tùy chọn Chrome cung cấp để sử dụng trình duyệt Chrome ở chế độ ẩn danh và chế độ không đầu