HTMLUnitDriver에서 Selenium헤드리스 브라우저 사용법
⚡ 스마트 요약
HtmlUnitDriver는 가장 빠른 헤드리스 구현체입니다. Selenium WebDriver는 한때 인기 있었던 GhostDriver 기반 헤드리스 브라우저인 PhantomJS가 2018년부터 사용이 중단되고 현재는 헤드리스 Chrome으로 대체된 반면, 헤드리스 브라우저는 여전히 존재합니다. Firefox또한 최신 자동화 워크플로우를 위한 Playwright도 제공합니다.

헤드리스 브라우저는 그래픽 사용자 인터페이스가 없는 웹 브라우저입니다. 시각적 표시 없이 백그라운드에서 실행될 수 있습니다.trac헤드리스 브라우저 테스트는 시간과 리소스를 절약하면서 웹 애플리케이션을 효율적이고 효과적으로 테스트할 수 있는 방법을 제공합니다. 이 글에서는 헤드리스 브라우저 테스트가 무엇인지, 언제 사용해야 하는지, 그리고 어떻게 수행하는지 살펴보겠습니다. Selenium HtmlUnitDriver와 PhantomJS.
헤드리스 브라우저란 무엇인가요?
헤드리스 브라우저는 웹 브라우저의 한 종류입니다. 그래픽 사용자 인터페이스 없이이 프로그램은 일반 브라우저처럼 작동하지만 실행 중에는 GUI 창을 표시하지 않습니다.
헤드리스 브라우저 드라이버의 몇 가지 예는 다음과 같습니다.
- HTML 단위
- 유령
- 팬텀JS(사용 중단됨)
- 좀비JS
- Watir-웹드라이버
- 헤드리스 크롬
- 목이 없는 Firefox
헤드리스 브라우저 테스트를 언제 사용해야 합니까?
오늘날 디지털 시대에 웹 애플리케이션은 다양한 기기와 플랫폼과의 호환성을 고려하여 개발됩니다. 이는 개발자에게 애플리케이션이 다양한 환경에서 원활하게 작동하도록 보장해야 하는 과제를 안겨줍니다. 헤드리스 브라우저 테스트는 그래픽 사용자 인터페이스 없이 웹 애플리케이션을 검증할 수 있게 해주므로 이상적인 해결책입니다. 헤드리스 브라우저 테스트를 활용하면 개발자는 구성 요소와 종속성이 많은 복잡한 웹 애플리케이션을 신속하게 테스트할 수 있어 개발 속도를 높이고 버그를 줄이며 사용자 만족도를 향상시킬 수 있습니다.
헤드리스 브라우저 테스트 Selenium
Selenium 는 개발자가 사용자에게 보이는 인터페이스 없이 자동화된 테스트를 실행할 수 있도록 해주는 강력한 헤드리스 브라우저 테스트 도구입니다. 백그라운드에서 테스트를 실행함으로써, Selenium 시간과 자원을 절약하는 동시에 도움이 됩니다.ping 기존의 UI 기반 테스트 환경에서는 드러나지 않을 수 있는 문제를 식별할 수 있습니다. 여기에는 헤드리스 환경에서만 명확하게 나타나는 성능 및 레이아웃 문제가 포함됩니다. 하지만 완벽한 테스트 범위를 확보하기 위해서는 헤드리스 테스트와 기존 UI 기반 테스트의 균형을 유지하는 것이 중요합니다.
헤드리스 브라우저의 인기 있는 예
다양한 헤드리스 브라우저가 있으며, 각 브라우저는 고유한 기능과 장점을 가지고 있어 다양한 사용 사례에 적합합니다. 아래에서 이러한 브라우저들을 살펴보겠습니다.
팬텀 JS
사용 중단 안내: PhantomJS의 활발한 개발은 2018년에 중단되었으며, 더 이상 프로젝트 관리가 이루어지지 않습니다. 새로운 프로젝트는 헤드리스 Chrome을 사용하는 것이 좋습니다. Firefox및 극작가 최신 헤드리스 자동화를 위한 것입니다. 아래의 PhantomJS 예제는 참고용으로만 제공됩니다.
PhantomJS는 WebKit을 렌더링 엔진으로 사용하는 헤드리스 브라우저이며 HTML5, CSS3 등의 웹 표준을 지원합니다. Java이 스크립트는 화면 캡처 및 페이지 자동화 작업에 사용할 수 있습니다. 오픈 소스이며 여러 운영 체제와 호환됩니다.
예 Selenium 헤드리스 PhantomJS를 사용하여 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()
크롬
크롬은 전 세계에서 가장 인기 있는 브라우저이며 헤드리스 모드도 제공합니다. 다양한 플랫폼에서 사용할 수 있고 인기 있는 프로그래밍 언어와 프레임워크를 지원합니다. 내장된 디버깅 도구와 방대한 문서 덕분에 사용이 간편하고 테스트 중에 발생할 수 있는 문제를 쉽게 해결할 수 있습니다.
헤드리스 Chrome의 예 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 는 인기 있는 웹 브라우저이며, 테스트를 위한 헤드리스 브라우저로도 사용할 수 있습니다. 를 사용하는 한 가지 이점은 다음과 같습니다. Firefox 헤드리스 브라우저의 가장 큰 장점은 가벼운 용량으로, 다양한 운영 체제에서 테스트하기에 적합한 다목적 옵션이라는 점입니다. 여기에 풍부한 문서와 커뮤니티 지원까지 더해져, Firefox 헤드리스 브라우저 자동화를 실험하는 팀에게 탁월한 선택입니다.
헤드리스의 예 Firefox 과 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()
헤드리스 브라우저 테스트의 장점
- 더 빠른 테스트 실행
- 비용 효율적인 테스트
- 더 나은 테스트 범위
- 테스트 실행의 유연성
- CI/CD 파이프라인과의 더욱 손쉬운 통합
헤드리스 브라우저 테스트의 단점
- 수동 검사를 위한 시각적 GUI 부족
- 화면이 없으면 디버깅이 더 어려워질 수 있습니다.
- 브라우저별 동작 범위가 제한적입니다.
HTMLUnitDriver
HtmlUnitDriver는 헤드리스 브라우저를 구현하는 가장 가볍고 빠른 라이브러리입니다. Selenium WebDriver는 HtmlUnit을 기반으로 하며, 다른 이름으로도 알려져 있습니다. 헤드리스 브라우저 드라이버크롬, IE 또는 처럼 작동합니다. Firefox HtmlUnitDriver는 드라이버이지만 GUI가 없으므로 테스트 실행 과정이 화면에 표시되지 않습니다. HtmlUnitDriver는 여전히 유지 관리되고 있으며 배포되고 있습니다. org.seleniumhq.selenium:htmlunit3-driver 메이븐 아티팩트.
HtmlUnitDriver의 특징:
- HTTPS 및 HTTP 프로토콜 지원
- HTML 응답 지원 (링크 클릭, 폼 제출, HTML 문서의 DOM 모델 탐색 등)
- 쿠키 지원
- 프록시 서버 지원
- 기본 및 NTLM 인증 지원
- 고체 JavaScript SUPPORT
- GET 및 POST 제출 메서드 지원
- 서버로 전송되는 요청 헤더를 사용자 정의하는 기능
- 서버 응답 실패 시 예외를 발생시킬지, 아니면 적절한 유형의 페이지로 반환할지를 제어할 수 있는 기능
HtmlUnitDriver 사용 방법 Selenium
단계 1) In Eclipse다음 코드를 복사하세요. 표준을 추가하세요. Selenium 프로젝트에 라이브러리 파일을 추가합니다. 추가 JAR 파일은 필요하지 않습니다.
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 HtmlUnit 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();
}
}
단계 2) 코드를 실행합니다. 브라우저가 실행되지 않고 결과가 콘솔에 표시되는 것을 확인할 수 있습니다.
HtmlUnitDriver의 장점
- GUI를 사용하지 않으므로 테스트는 시각적 방해 없이 백그라운드에서 실행됩니다.
- 다른 드라이버 인스턴스와 비교했을 때 실행 속도가 더 빠릅니다.
- HtmlUnitDriver를 통해 테스트를 실행할 때 다양한 브라우저 버전을 에뮬레이션할 수도 있습니다.
-
플랫폼에 구애받지 않고 여러 테스트를 동시에 쉽게 실행할 수 있습니다. 다음과 같은 용도에 이상적입니다. 부하 테스트.
제한 사항 :
- 완전히 모방할 수는 없습니다. Java모든 실제 브라우저 엔진의 스크립트 동작
팬텀 JS
알림 : PhantomJS는 더 이상 사용되지 않으며 유지 관리되지 않습니다. 새로운 헤드리스 컴퓨팅 환경을 구축하려면 다른 도구를 사용하십시오. Selenium 헤드리스 크롬 또는 Firefox또는 Playwright로 이동하세요. 아래 섹션은 기존 참조용으로만 남아 있습니다.
PhantomJS는 헤드리스 브라우저입니다. Java스크립트 API는 과거에 헤드리스 웹사이트 테스트, 웹페이지 접근 및 조작에 사용되었으며, 표준 DOM API와 함께 제공됩니다.
PhantomJS를 사용하려면 SeleniumGhostDriver가 필요합니다. 고스트드라이버 이는 일반적인 방식으로 구현된 WebDriver 와이어 프로토콜입니다. JavaPhantomJS용 스크립트입니다.
PhantomJS의 최신 릴리스 통합 된 고스트드라이버, 그래서 별도로 설치할 필요가 없습니다.
시스템 작동 방식은 다음과 같습니다.
실행 단계 Selenium PhantomJS와 함께
단계 1) 당신이 필요합니다 Eclipse 과 Selenium 설치.
단계 2) PhantomJS 다운로드 여기에서 확인하세요.
단계 3) Extrac다운로드한 폴더를 Program Files 폴더에 넣으세요.
단계 4) PhantomJS 드라이버를 다음에서 다운로드하세요. 여기에서 확인하세요JAR 파일을 프로젝트에 추가하세요.
단계 5) 다음 코드를 붙여넣으세요 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();
}
}
단계 6) 코드를 실행하세요. 콘솔에 출력 결과가 표시되고 브라우저는 실행되지 않습니다.
알림: 처음 실행 시 설정에 따라 보안 경고가 표시될 수 있습니다. Windows PhantomJS 실행을 허용하려면 클릭하세요. 액세스 허용.
많은 조직에서 과거에는 다음과 같은 작업에 PhantomJS를 사용해 왔습니다.
- 헤드리스 테스트
- 화면 캡처
- 페이지 자동화
- 네트워크 모니터링
- 사용자를 위해 대시보드 스크린샷을 렌더링합니다.
- 명령줄에서 단위 테스트 실행하기
- HTML에서 PDF로 직원 핸드북 생성
- 테스트 스위트를 위해 QUnit과 결합
새로운 작업에서는 이러한 PhantomJS 사용 사례를 헤드리스 Chrome, 헤드리스 Chrome으로 대체하세요. Firefox또는 Playwright와 같이 지속적인 보안 및 렌더링 업데이트를 받는 앱입니다.






