HTMLUnitDriver에서 Selenium

헤드리스 브라우저는 그래픽 사용자 인터페이스가 없는 웹 브라우저입니다. 시각적인 방해 없이 백그라운드에서 실행될 수 있습니다. 시간과 자원을 절약하면서 웹 애플리케이션을 테스트하는 효율적이고 효과적인 방법을 제공합니다. 이 튜토리얼에서는 헤드리스 브라우저가 무엇인지, 언제 헤드리스 브라우저 테스트를 사용해야 하는지, 그리고 이를 사용하여 수행하는 방법에 대해 알아봅니다. Selenium.

헤드리스 브라우저란 무엇입니까?

헤드리스 브라우저는 웹 브라우저입니다. 그래픽 사용자 인터페이스 없이. 이 프로그램은 브라우저처럼 작동하지만 GUI를 표시하지 않습니다.

헤드리스 드라이버의 예는 다음과 같습니다.

  • HTML 단위
  • 유령
  • 팬텀 JS
  • 좀비JS
  • Watir-웹드라이버

헤드리스 브라우저 테스트를 언제 사용해야 합니까?

오늘날의 디지털 시대에 웹 애플리케이션은 광범위한 기기 및 플랫폼과 호환되도록 개발됩니다. 이는 종종 이러한 플랫폼에서 애플리케이션이 원활하게 작동하도록 해야 하는 웹사이트 개발자에게 과제를 안겨줍니다. 헤드리스 브라우저 테스트는 개발자가 그래픽 사용자 인터페이스 없이도 웹 애플리케이션을 테스트할 수 있기 때문에 이 문제에 대한 이상적인 솔루션입니다. 헤드리스 브라우저 테스트를 사용하면 개발자는 여러 구성 요소와 종속성이 있는 복잡한 웹 애플리케이션을 쉽게 테스트하여 더 빠른 개발, 버그 없는 코드, 만족스러운 사용자를 위한 길을 열 수 있습니다.

헤드리스 브라우저 테스트 Selenium

Selenium 헤드리스 브라우저 테스트를 위한 강력한 도구로, 개발자가 눈에 보이는 사용자 인터페이스 없이도 자동화된 테스트를 실행할 수 있습니다. 백그라운드에서 테스트를 실행함으로써, Selenium 시간과 리소스를 절약하는 동시에 기존 UI 기반 테스트 환경에서는 명확하지 않을 수 있는 문제를 식별하는 데도 도움이 됩니다. 여기에는 헤드리스 설정에서만 명백하게 나타날 수 있는 성능 관련 문제와 레이아웃 문제가 포함됩니다. 그러나 포괄적인 테스트 적용 범위를 보장하려면 헤드리스 테스트의 한계를 염두에 두고 기존 UI 기반 방법과 균형을 맞추는 것이 중요합니다.

헤드리스 브라우저의 인기 있는 예

고유한 기능과 이점을 갖춘 헤드리스 브라우저가 많이 있으므로 다양한 사용 사례에 적합합니다. 우리는 아래에서 이에 대해 논의합니다:-

팬텀 JS

PhantomJS는 WebKit을 렌더링 엔진으로 활용하고 HTML5, CSS3, WebKit 등 다양한 웹 표준을 지원하는 헤드리스 브라우저입니다. 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은 지구상에서 가장 인기 있는 브라우저이며 헤드리스 기능도 제공합니다. 여러 플랫폼에서 사용할 수 있으며 프로그래밍 언어와 프레임워크를 지원합니다. 내장된 디버깅 도구와 광범위한 문서를 통해 테스트 중에 발생할 수 있는 모든 문제를 쉽게 사용하고 해결할 수 있습니다.

헤드리스 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

HTML UnitDriver는 WebDriver 중 가장 가볍고 가장 빠르게 구현되는 헤드리스 브라우저입니다. HtmlUnit을 기반으로 합니다. 그것은 다음과 같이 알려져 있습니다. 헤드리스 브라우저 드라이버. Chrome, IE, Fire와 동일합니다.Fox 드라이버이지만 GUI가 없으므로 화면에서 테스트 실행을 볼 수 없습니다.

HTML 유닛 드라이버의 특징

  • HTTPS 및 HTTP 프로토콜 지원
  • HTML 응답 지원(링크 클릭, 양식 제출, HTML 문서의 DOM 모델 탐색 등)
  • 쿠키 지원
  • 프록시 서버 지원
  • 기본 및 NTLM 인증 지원
  • 우수한 JavaScript SUPPORT
  • 제출 방법 GET 및 POST 지원
  • 서버로 전송되는 요청 헤더를 사용자 정의하는 기능
  • 서버의 실패한 응답이 예외를 발생시켜야 하는지 아니면 적절한 유형의 페이지로 반환되어야 하는지 결정하는 기능

HTMLUnit 드라이버를 사용하는 단계 Selenium

단계 1) In Eclipse, 다음 코드를 복사합니다. 표준 셀레늄 라이브러리 파일을 프로젝트에 추가합니다. 추가 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 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();			
         }		
}

2단계) 코드를 실행합니다. 브라우저가 실행되지 않고 결과가 콘솔에 표시되는 것을 볼 수 있습니다.

HTMLUnit 드라이버를 사용하는 단계 Selenium

Html 유닛 드라이버의 장점:

  • 테스트에 GUI를 사용하지 않기 때문에 테스트는 시각적 중단 없이 백그라운드에서 실행됩니다.
  • 다른 모든 인스턴스에 비해 실행 속도가 빠릅니다.
  • HtmlUnit 드라이버를 통해 테스트를 실행하려면 다른 브라우저 버전을 선택할 수도 있습니다.
  • 플랫폼 독립적이며 여러 테스트를 동시에 실행하는 것이 더 쉽습니다. 다음에 이상적입니다. 부하 테스트.

제한 사항 :

  • 다른 브라우저를 에뮬레이션할 수 없습니다. Java스크립트 동작

팬텀 JS

PhantomJS는 헤드리스 브라우저입니다. Java스크립트 API. Headless Website Testing, 웹페이지 접근 및 조작을 위한 최적의 솔루션이며 표준 DOM API와 함께 제공됩니다.

Seleniun과 함께 PhantomJS를 사용하려면 GhostDriver를 사용해야 합니다. 고스트드라이버 PhantomJS용 간단한 JS에서 Webdriver Wire 프로토콜을 구현한 것입니다.

PhatomJS의 최신 릴리스에는 통합 된 고스트드라이버와 별도로 설치할 필요가 없습니다.

시스템 작동 방식은 다음과 같습니다.

팬텀 JS

실행 단계 Selenium PhatomJS를 사용하여

단계 1) 당신이 필요합니다 Eclipse 과 Selenium 설치

단계 2) PhantomJS 다운로드 LINK

실행 단계 Selenium PhatomJS를 사용하여

단계 3) 다운로드한 폴더를 Program Files로 추출하세요.

실행 단계 Selenium PhatomJS를 사용하여

단계 4) PhantomJS 드라이버를 다음에서 다운로드하세요. LINK. 프로젝트에 항아리 추가

실행 단계 Selenium PhatomJS를 사용하여

단계 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를 실행할 수 있습니다. 액세스 허용을 클릭하세요.

실행 단계 Selenium PhatomJS를 사용하여

많은 조직에서는 다음과 같은 다양한 목적으로 Phantom.JS를 사용합니다.

  • 헤드리스 테스트
  • 화면 캡처
  • 페이지 자동화
  • 네트워크 모니터링
  • 사용자를 위해 대시보드 스크린샷을 렌더링하려면
  • 명령줄에서 단위 테스트를 실행하려면
  • HTML에서 PDF로 직원 핸드북을 생성하려면
  • 테스트 스위트를 위해 QUnit과 결합됨

제품 개요

다양한 브라우저에서 시각적 중단 없이 신속하게 애플리케이션을 테스트하기 위해 헤드리스 브라우저 지원 사용됩니다. 속도, 정확성 및 액세스하기 쉬운 기능으로 인해 HTML 단위 드라이버와 PhantomJS는 헤드리스 브라우저 자동화 테스트에서 인기를 얻고 있습니다. 몇 가지 간단한 단계를 따르면 이러한 도구를 다른 도구와 얼마나 쉽게 통합하고 테스트 코드를 실행할 수 있는지 알 수 있습니다.