HTMLUnitDriver trong Selenium

Trình duyệt không đầu là trình duyệt web không có giao diện người dùng đồ họa. Nó có thể chạy ở chế độ nền mà không gây phiền nhiễu thị giác. Nó cung cấp một cách hiệu quả và hiệu quả để kiểm tra các ứng dụng web đồng thời tiết kiệm thời gian và tài nguyên. Trong hướng dẫn này, chúng ta sẽ đi sâu vào trình duyệt không có giao diện người dùng là gì, khi nào nên sử dụng tính năng kiểm tra trình duyệt không giao diện người dùng và cách thực hiện nó bằng cách sử dụng Selenium.

Trình duyệt không đầu là gì?

Trình duyệt không đầu là trình duyệt web không có giao diện người dùng đồ họa. Chương trình này sẽ hoạt động giống như một trình duyệt nhưng sẽ không hiển thị bất kỳ GUI nào.

Một số ví dụ về Trình điều khiển không đầu bao gồm

  • Đơn vị Html
  • Ma
  • PhantomJS
  • ZombieJS
  • Watir-webdriver

Khi nào nên sử dụng kiểm tra trình duyệt không đầu?

Trong thời đại kỹ thuật số ngày nay, các ứng dụng web được phát triển để tương thích với nhiều thiết bị và nền tảng khác nhau. Điều này thường đặt ra thách thức cho các nhà phát triển trang web, những người cần đảm bảo các ứng dụng của họ hoạt động liền mạch trên các nền tảng này. Kiểm thử trình duyệt không đầu là giải pháp lý tưởng cho vấn đề này vì nó cho phép các nhà phát triển kiểm thử các ứng dụng web của họ mà không cần giao diện người dùng đồ họa. Bằng cách sử dụng kiểm thử trình duyệt không đầu, các nhà phát triển có thể dễ dàng kiểm thử các ứng dụng web phức tạp với nhiều thành phần và phụ thuộc, mở đường cho quá trình phát triển nhanh hơn, mã không có lỗi và người dùng hài lòng.

Kiểm tra trình duyệt không đầu với Selenium

Selenium là một công cụ mạnh mẽ để kiểm tra trình duyệt không có giao diện người dùng, cho phép các nhà phát triển chạy các bài kiểm tra tự động mà không cần giao diện người dùng có thể nhìn thấy. Bằng cách chạy các bài kiểm tra ở chế độ nền, Selenium có thể tiết kiệm thời gian và tài nguyên đồng thời giúp xác định các vấn đề có thể không rõ ràng trong môi trường thử nghiệm dựa trên giao diện người dùng truyền thống. Điều này bao gồm các vấn đề liên quan đến hiệu suất và các vấn đề về bố cục chỉ có thể trở nên rõ ràng trong cài đặt không có giao diện người dùng. Tuy nhiên, điều quan trọng là phải ghi nhớ những hạn chế của thử nghiệm không cần đầu và cân bằng nó với các phương pháp dựa trên giao diện người dùng truyền thống để đảm bảo phạm vi thử nghiệm toàn diện.

Các ví dụ phổ biến về trình duyệt không đầu

Có rất nhiều trình duyệt không có giao diện người dùng, mỗi trình duyệt có các tính năng và lợi ích riêng, khiến chúng phù hợp với các trường hợp sử dụng khác nhau. Chúng tôi thảo luận về chúng dưới đây: -

PhantomJS

PhantomJS là một trình duyệt không có giao diện người dùng sử dụng WebKit làm công cụ kết xuất và hỗ trợ nhiều tiêu chuẩn web khác nhau như HTML5, CSS3 và JavaScript. Có thể dùng để chụp màn hình và tự động hóa các tác vụ trang. Script là mã nguồn mở và tương thích với nhiều hệ điều hành.

Ví dụ về Selenium với PhantomJS không đầu trong Python

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
# Set up PhantomJS options
phantomjs_options = webdriver.DesiredCapabilities.PHANTOMJS.copy()
phantomjs_options['phantomjs.page.settings.userAgent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
# Set up the PhantomJS driver
driver = webdriver.PhantomJS('/path/to/phantomjs', desired_capabilities=phantomjs_options)
# Perform actions using the driver
driver.get('https://www.example.com')
print(driver.title)
# Close the driver
driver.quit()

cơ rôm

Chrome là trình duyệt phổ biến nhất trên hành tinh và cũng cung cấp tính năng không có giao diện người dùng. Nó có thể được sử dụng trên nhiều nền tảng và hỗ trợ các ngôn ngữ và khung lập trình. Các công cụ gỡ lỗi tích hợp và tài liệu mở rộng giúp bạn dễ dàng sử dụng và khắc phục mọi sự cố có thể phát sinh trong quá trình thử nghiệm.

Ví dụ về Chrome không đầu với Selenium in Python

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# Set up Chrome options
chrome_options = Options()
chrome_options.add_argument('--headless')  # Run Chrome in headless mode
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
# Set up the Chrome driver
driver = webdriver.Chrome('/path/to/chromedriver', options=chrome_options)
# Perform actions using the driver
driver.get('https://www.example.com')
print(driver.title)
# Close the driver
driver.quit()

Firefox

Firefox là một trình duyệt web phổ biến cũng có thể được sử dụng làm trình duyệt không có giao diện người dùng cho mục đích thử nghiệm. Một trong những lợi ích của việc sử dụng Firefox Là một trình duyệt không có giao diện người dùng nên tính chất nhẹ của nó khiến nó trở thành một lựa chọn linh hoạt để thử nghiệm trên nhiều hệ điều hành khác nhau. Ngoài ra, với tài liệu phong phú và sự hỗ trợ của cộng đồng, Firefox là sự lựa chọn tuyệt vời cho những ai muốn thử nghiệm công nghệ trình duyệt không đầu.

Ví dụ về không đầu Firefox với Selenium in Python

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
# Set up Firefox options
firefox_options = Options()
firefox_options.add_argument('--headless')  # Run Firefox in headless mode
# Set up the Firefox driver
driver = webdriver.Firefox(options=firefox_options)
# Perform actions using the driver
driver.get('https://www.example.com')
print(driver.title)
# Close the driver
driver.quit()

Ưu điểm của việc kiểm tra trình duyệt không đầu

  • Thực hiện kiểm tra nhanh hơn
  • Thử nghiệm hiệu quả về chi phí
  • Phạm vi kiểm tra tốt hơn
  • Tính linh hoạt trong việc chạy thử nghiệm
  • Tích hợp với đường ống CI/CD

Nhược điểm của việc kiểm tra trình duyệt không đầu

  • Thiếu GUI
  • Khó khăn trong việc gỡ lỗi
  • Hỗ trợ trình duyệt hạn chế

Trình điều khiển HTMLUnit

HTML UnitDriver là trình duyệt không đầu triển khai nhanh nhất và nhẹ nhất dành cho WebDriver. Nó dựa trên HtmlUnit. Nó được biết đến như Trình điều khiển trình duyệt không đầu. Nó giống như Chrome, IE hoặc FireFox trình điều khiển, nhưng nó không có GUI nên người ta không thể thấy quá trình thực hiện kiểm tra trên màn hình.

Các tính năng của trình điều khiển đơn vị HTML

  • Hỗ trợ các giao thức HTTPS và HTTP
  • Hỗ trợ phản hồi HTML (nhấp vào liên kết, gửi biểu mẫu, xem mô hình DOM của tài liệu HTML, v.v.)
  • Hỗ trợ cookie
  • Hỗ trợ máy chủ proxy
  • Hỗ trợ xác thực cơ bản và NTLM
  • Xuất sắc JavaScript hỗ trợ
  • Hỗ trợ các phương thức gửi GET và POST
  • Khả năng tùy chỉnh các tiêu đề yêu cầu được gửi đến máy chủ
  • Khả năng xác định xem các phản hồi không thành công từ máy chủ sẽ đưa ra ngoại lệ hay sẽ được trả về dưới dạng các trang thuộc loại thích hợp

Các bước sử dụng Trình điều khiển HTMLUnit với Selenium

Bước 1) In Eclipse, sao chép mã sau. Thêm các tệp thư viện selenium chuẩn vào dự án. Không cần thêm tệp jar nào nữa.

package  htmldriver;
import org.openqa.selenium.By;		
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;	
import org.openqa.selenium.htmlunit.HtmlUnitDriver;		
public class htmlUnitYest {				
		public static void main(String[] args) {
                     // Creating a new instance of the HTML unit driver
                      
                     WebDriver driver = new HtmlUnitDriver();
                      
           		     // Navigate to Google		
                     driver.get("http://www.google.com");					
          
					 // Locate the searchbox using its name		
                     WebElement element = driver.findElement(By.name("q"));	
                     
                    // Enter a search query		
                    element.sendKeys("Guru99");	
                   
		            // Submit the query. Webdriver searches for the form using the text input element automatically		
                    // No need to locate/find the submit button		
                    element.submit();			
                    
            		// This code will print the page title		
                    System.out.println("Page title is: " + driver.getTitle());		
                    
                    driver.quit();			
         }		
}

Bước 2) Chạy mã. Bạn sẽ quan sát thấy không có trình duyệt nào được khởi chạy và kết quả được hiển thị trong bảng điều khiển.

Các bước để sử dụng Trình điều khiển HTMLUnit với Selenium

Lợi ích của Trình điều khiển đơn vị Html:

  • Vì nó không sử dụng bất kỳ GUI nào để kiểm tra nên các bài kiểm tra của bạn sẽ chạy ở chế độ nền mà không có bất kỳ gián đoạn trực quan nào
  • So với tất cả các phiên bản khác, việc thực thi nhanh hơn
  • Để chạy thử nghiệm thông qua trình điều khiển HtmlUnit, bạn cũng có thể chọn các phiên bản trình duyệt khác
  • Nó độc lập với nền tảng và dễ dàng hơn để chạy nhiều thử nghiệm đồng thời. Lý tưởng cho Kiểm tra Tải.

Hạn chế:

  • Nó không thể mô phỏng các trình duyệt khác JavaHành vi kịch bản

PhantomJS

PhantomJS là một trình duyệt không có đầu với JavaScript API. Đây là giải pháp tối ưu cho việc Kiểm tra trang web không có giao diện, truy cập và thao tác các trang web và đi kèm với DOM API chuẩn.

Để sử dụng PhantomJS với Seleniun, người ta phải sử dụng GhostDriver. GhostDriver là việc triển khai giao thức Webdriver Wire trong JS đơn giản cho PhantomJS.

Phiên bản mới nhất của PhatomJS đã tích hợp GhostDriver và không cần phải cài đặt riêng.

Đây là cách hệ thống hoạt động-

PhantomJS

Các bước để chạy Selenium với PhatomJS

Bước 1) Bạn cần Eclipse với Selenium cài đặt

Bước 2) Tải xuống PhantomJS đây

Các bước để chạy Selenium Với PhatomJS

Bước 3) Giải nén thư mục đã tải xuống vào Tệp chương trình

Các bước để chạy Selenium Với PhatomJS

Bước 4) Tải xuống Trình điều khiển PhantomJS từ đây. Thêm bình vào dự án của bạn

Các bước để chạy Selenium Với PhatomJS

Bước 5) Dán đoạn mã sau vào eclipse

package htmldriver;	
import java.io.File;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.phantomjs.PhantomJSDriver;	

public class phantom {				
		public static void main(String[] args) {
        	        File file = new File("C:/Program Files/phantomjs-2.0.0-windows/bin/phantomjs.exe");				
                    System.setProperty("phantomjs.binary.path", file.getAbsolutePath());		
                    WebDriver driver = new PhantomJSDriver();	
                    driver.get("http://www.google.com");         
                    WebElement element = driver.findElement(By.name("q"));	
                    element.sendKeys("Guru99");					
                    element.submit();         			
                    System.out.println("Page title is: " + driver.getTitle());		
                    driver.quit();			
           }		
}

Bước 6) Chạy mã. Bạn sẽ quan sát kết quả đầu ra được hiển thị trong bảng điều khiển và không có trình duyệt nào được khởi chạy.

LƯU Ý: Ở lần chạy đầu tiên, dựa trên cài đặt của bạn, bạn có thể nhận được cảnh báo bảo mật từ Windows để cho phép chạy PhantomJS. Bấm vào Cho phép truy cập.

Các bước để chạy Selenium Với PhatomJS

Nhiều tổ chức sử dụng Phantom.JS cho nhiều mục đích khác nhau, chẳng hạn như

  • Thử nghiệm không đầu
  • Chụp màn hình
  • Tự động hóa trang
  • Giám sát mạng
  • Để hiển thị ảnh chụp màn hình trang tổng quan cho người dùng của họ
  • Để chạy thử nghiệm Đơn vị trên dòng lệnh
  • Để tạo sổ tay nhân viên từ HTML sang PDF
  • Kết hợp với QUnit cho bộ thử nghiệm

Tổng kết

Để kiểm tra ứng dụng nhanh chóng trên nhiều trình duyệt khác nhau và không có bất kỳ gián đoạn trực quan nào, trình duyệt không đầu Kiểm tra được sử dụng. Do tốc độ, độ chính xác và các tính năng dễ truy cập, trình điều khiển đơn vị HTML và PhantomJS đang ngày càng phổ biến trong thử nghiệm tự động hóa trình duyệt không đầu. Bằng cách làm theo một số bước đơn giản, bạn sẽ biết được các công cụ này có thể dễ dàng tích hợp với các công cụ khác như thế nào và có thể thực thi mã thử nghiệm.

Tóm tắt bài viết này với: