Chrome 옵션 및 원하는 기능 Selenium 웹드라이버
Chrome 옵션 클래스란 무엇입니까?
The Chromeoptions 클래스 의 개념이다 Selenium Chrome 드라이버의 다양한 속성을 조작하기 위한 WebDriver. Chrome 옵션 클래스는 일반적으로 Desired Capabilities와 함께 사용되어 Chrome 드라이버 세션을 사용자 정의합니다. Chrome을 최대화 모드로 열고, 기존 확장 프로그램을 비활성화하고, 팝업을 비활성화하는 등 다양한 작업을 수행하는 데 도움이 됩니다.
예:
아래 예는 ChromeOptions 클래스를 사용하여 최대화 모드에서 Chrome 브라우저를 여는 방법을 보여줍니다. ChromeOptions 클래스의 인스턴스를 웹 드라이버 초기화에 전달해야 합니다.
ChromeOptions options = new ChromeOptions() options.addArgument("start-maximized"); ChromeDriver driver = new ChromeDriver(options);
다음은 ChromeOptions 클래스에 사용 가능하고 가장 일반적으로 사용되는 인수 목록입니다.
- 시작 최대화: Chrome을 최대화 모드로 엽니다.
- 가명: 시크릿 모드로 Chrome을 엽니다.
- 목이 없는: 헤드리스 모드에서 Chrome을 엽니다.
- 확장 기능 비활성화: Chrome 브라우저에서 기존 확장 프로그램을 비활성화합니다.
- 팝업 차단 비활성화: Chrome 브라우저에 표시되는 팝업을 비활성화합니다.
- 기본 브라우저로 설정: Chrome을 기본 브라우저로 설정
- 버전: 크롬 브라우저 버전을 인쇄합니다.
- 비활성화 정보 표시줄: Chrome에 'Chrome이 자동화된 소프트웨어에 의해 제어되고 있습니다'라는 알림이 표시되지 않도록 합니다.
원하는 기능 클래스
원하는 기능 클래스 웹 드라이버의 여러 속성을 수정하는 데 사용됩니다. 브라우저 이름, 브라우저 플랫폼 등과 같은 웹 드라이버의 개별 속성을 변경하기 위한 키-값 쌍을 제공합니다. Desired Capability 클래스의 일반적인 메서드는 setCapability 메서드입니다. 주로 다음과 같이 사용됩니다. Selenium 동일한 테스트 케이스를 다른 브라우저에서 실행해야 하는 그리드.
예:
아래 예는 Chrome 클래스에 필요한 기능을 사용하여 기본적으로 웹사이트에서 SSL 인증서를 허용하도록 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);
다음은 가장 일반적으로 사용되는 사전 정의된 기능 유형입니다.
기능 이름 | 기술설명 |
---|---|
ACCEPT_SSL_CERTS | 이 속성은 브라우저가 기본적으로 SSL 인증서를 수락하도록 지시합니다. |
PLATFORM_NAME | 이 속성은 웹 사이트에 액세스하는 데 사용되는 운영 체제 플랫폼을 설정하는 데 사용됩니다. |
BROWSER_NAME | 이 속성은 웹 드라이버 인스턴스의 브라우저 이름을 설정하는 데 사용됩니다. |
버전 | 이 속성은 브라우저 버전을 설정하는 데 사용됩니다. |
Adblocker 확장 프로그램을 위한 Chrome 옵션
Chrome 브라우저의 Adblocker 확장 프로그램은 ChromeDriver Options 및 Desired Capabilities 클래스를 사용하여 처리할 수 있습니다. 액세스하는 단계는 다음과 같습니다. AdBlockDesired Capability 클래스를 사용하여 Chrome 브라우저에 확장 프로그램을 추가합니다.
단계 1) AdBlockChrome 옵션 클래스를 사용하기 전에 Chrome 브라우저에 확장 프로그램을 설치해야 합니다.
단계 2) 다음에 해당하는 CRX 파일을 추출합니다. AdBlockhttp://crxextractor.com/을 통한 확장
단계 3) 다운로드한 CRX 파일 경로를 Chrome 옵션 클래스에 전달합니다.
단계 4) 원하는 기능 클래스와 Chrome 옵션을 사용하여 웹 드라이버를 인스턴스화합니다. Selenium 대상
예:
아래 예에서는 Chrome 옵션 및 원하는 기능 클래스를 사용하여 Chrome 브라우저에서 광고 차단 확장 프로그램을 활성화하는 방법을 보여줍니다.
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);
CRX 파일 추출
아래 단계는 웹 사이트를 통해 Ad Blocker를 통해 CRX 파일을 추출하는 과정을 보여줍니다. http://crxextractor.com/
단계 1) We Buy Orders 신청서를 클릭하세요. http://crxextractor.com/ 그리고 시작 버튼을 클릭하세요
단계 2) 텍스트 상자 아래에 크롬 확장 프로그램인 광고 차단기 URL을 입력합니다. 크롬 웹 스토어의 광고 차단기 URL은 다음과 같습니다. https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom
그리고 확인을 클릭하세요
단계 3) 확인 버튼을 클릭하면 아래와 같이 버튼 라벨이 Get .CRX로 변경됩니다. Get .CRX 버튼을 클릭하면 확장명에 해당하는 CRX 파일이 다운로드됩니다.
단계 4) 파일을 로컬 컴퓨터에 저장하고 저장된 경로를 기록해 둡니다. 다음 단계는 저장된 경로를 Chrome 옵션 클래스에 전달하는 것입니다.
샘플 코드 :
- 다음 위치에서 광고가 표시됩니다. https://demo.guru99.com/ 아래
- 와 AdBlockChrome 브라우저 광고에서 활성화된 확장 프로그램은 비활성화되어야 합니다.
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(); } }
코드 설명:
- 처음에는 테스트용으로 Chrome 브라우저를 사용하므로 set 속성 메서드를 사용하여 chromedriver.exe 파일의 경로를 설정해야 합니다.
- 확장 방법을 추가하려면 CRX 파일의 경로를 설정해야 합니다.
- 그런 다음 Chrome에서 원하는 기능 개체를 생성해야 합니다. Selenium 클래스를 만들어 웹 드라이버 인스턴스에 전달합니다. 에서 Selenium 3.8.1 버전에서는 드라이버 기능 클래스가 더 이상 사용되지 않으며 동일한 인수를 Chrome 드라이버 생성자에 전달하기 전에 기능 개체를 Chrome 옵션 개체와 병합해야 합니다.
- URL 열기 - https://demo.guru99.com/test/simple_context_menu.html 광고 차단기 확장 기능이 활성화된 경우
- 브라우저를 최대화하고 닫습니다.
알림: 우리는 활성화하고 있습니다 AdBlock어 확장자 Chrome 브라우저에서 자동화 스크립트를 통해 수동으로 Chrome 브라우저에서 Adblocker 확장 프로그램을 활성화하는 대신. CRX 파일은 자동화 스크립트를 사용하여 광고 차단기 확장 프로그램에 액세스하는 방법입니다.
출력:
Chrome 브라우저는 다음과 같이 활성화됩니다. AdBlock광고 없이 아래와 같이 확장 프로그램이 활성화되었습니다.
시크릿 모드용 Chrome 옵션
사전 정의된 인수를 사용하여 시크릿 모드에 Chrome 옵션을 사용할 수 있습니다.가명.
다음은 동일한 작업을 수행하는 샘플 코드입니다.
샘플 코드 :
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(); } }
코드 설명:
- 처음에는 테스트용으로 Chrome 브라우저를 사용하므로 set 속성 메서드를 사용하여 chromedriver.exe 파일의 경로를 설정해야 합니다.
- 그런 다음 Chrome 옵션 클래스의 객체를 생성하고 이를 웹 드라이버 인스턴스에 전달해야 합니다. 시크릿 모드에서 Chrome 브라우저를 열려고 하므로 –incognito 인수를 Chrome 옵션 클래스에 전달해야 합니다.
- 다음으로 Desired Capability 클래스의 객체를 생성하고 merge 메소드를 사용하여 Desired Capability 클래스 객체를 Chrome Options 클래스 객체와 병합합니다.
- Chrome 드라이버 클래스의 객체를 생성하고 Chrome 옵션 객체를 인수로 전달해야 합니다.
- 마지막으로 URL을 전달해야 합니다. https://demo.guru99.com/test/simple_context_menu.html Driver.get 메소드에
- 브라우저를 최대화하고 닫습니다.
출력:
아래와 같이 크롬 브라우저 창이 시크릿 모드로 열립니다.
헤드리스 Chrome용 Chrome 옵션
Headless 브라우저는 백그라운드에서 실행됩니다. 브라우저 GUI나 해당 브라우저에서 수행된 작업을 볼 수 없습니다.
헤드리스 모드에서 Chrome 브라우저를 실행하기 위한 Chrome 옵션은 사전 정의된 인수를 사용하여 수행할 수 있습니다.머리가없는.
이를 수행하기 위한 샘플 코드는 아래에 언급되어 있습니다.
예:
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(); } }
코드 설명:
- 처음에는 테스트용으로 Chrome 브라우저를 사용하므로 set 속성 메서드를 사용하여 chromedriver.exe 파일의 경로를 설정해야 합니다.
- 다음으로 Chrome 옵션 클래스의 객체를 생성하고 이를 웹 드라이버 인스턴스에 전달합니다. 헤드리스 모드에서 Chrome 브라우저를 열고 싶기 때문에 –headless 인수를 Chrome 옵션 클래스에 전달해야 합니다.
- DesiredCapability Chrome 클래스의 개체를 생성하고 병합 메서드를 사용하여 Desired Capability 클래스 개체를 Chrome 옵션 클래스 개체와 병합합니다.
- Chrome 드라이버 클래스의 객체를 생성하고 Chrome 옵션을 전달합니다. Selenium 인수로서의 객체
- 마지막으로 URL을 전달해야 합니다. https://demo.guru99.com/ Driver.get 메소드에
- 페이지 제목을 인쇄하고 브라우저를 닫습니다.
산출
Chrome이 Headless 모드로 작동하기 때문에 위 코드의 경우 브라우저가 보이지 않습니다. 페이지 제목은 아래와 같이 가져와서 표시됩니다.
제품 개요
- Selenium Chrome 옵션 클래스는 Chrome 드라이버의 다양한 속성을 조작하는 데 사용됩니다.
- 원하는 Chrome 기능 클래스는 브라우저 이름, 브라우저 플랫폼 등과 같은 웹 드라이버의 개별 속성을 수정하기 위한 키-값 쌍 세트를 제공합니다.
- Chrome 브라우저의 확장 프로그램을 조작하려면 해당 확장 프로그램에 해당하는 CRX 파일을 추출하고 Chrome 옵션 클래스에 추가해야 합니다.
- –incognito 및 –headless는 시크릿 모드 및 헤드리스 모드에서 Chrome 브라우저를 사용하기 위해 Chrome 옵션 클래스에서 제공하는 사전 정의된 인수입니다.