프록시 인증을 처리하는 방법 Selenium 웹드라이버

⚡ 스마트 요약

프록시 인증 Selenium WebDriver는 브라우저가 보안 프록시 서버를 통해 연결할 때 나타나는 자격 증명 팝업을 처리합니다. 왜냐하면 Selenium 네이티브 대화 상자를 직접 조작할 수 없으므로 AutoIt 도구와 내장 알림을 사용하는 두 가지 접근 방식이 있습니다.

  • 🛡️ 프록시 역할: 프록시는 개인 정보 보호, 보안 및 콘텐츠 필터링 기능을 제공하는 중간 매개체입니다.
  • 🔀 SOCKS와 HTTP의 차이점: SOCKS는 데이터를 해석하지 않습니다. HTTP 프록시는 HTTP 요청만 읽습니다.
  • 🪟 네이티브 팝업: Selenium 운영 체제 대화 상자를 처리할 수 없으므로 외부 도움이 필요합니다.
  • 🛠️ AutoIt 방식: 컴파일된 AutoIt 스크립트가 사용자 이름과 비밀번호를 팝업 창으로 보냅니다.
  • ???? 알림 방식: 알림으로 전환하고 sendKeys를 사용하여 자격 증명을 보낸 다음 수락합니다.

프록시 인증 처리 Selenium 웹드라이버

프록시란 무엇입니까?

프록시는 요청을 보내는 클라이언트와 응답하는 서버 사이의 중개자 역할을 합니다. 프록시의 주요 용도는 여러 대화형 시스템 간의 개인 정보 보호 및 캡슐화를 유지하는 것입니다.

프록시는 클라이언트와 웹 서버 사이의 방화벽 역할을 하여 웹에 또 다른 보안 계층을 추가할 수도 있습니다. 이는 특히 클라이언트가 사용하는 웹 사이트에 웹 사이트 콘텐츠에 따라 허용 또는 차단 레이블을 지정해야 하는 경우에 사용됩니다.

이 프로세스는 '콘텐츠 필터링'으로 알려져 있으며 교육 기관, 회사 사무실 등에서 가장 일반적으로 사용됩니다. 콘텐츠 필터링은 프록시의 도움으로 쉽게 수행할 수 있습니다. 인터넷 측면에서 프록시는 클라이언트 시스템과 실제 웹 또는 응답하는 데이터베이스 서버 사이에 있는 별도의 서버로 구현될 수 있습니다.

SOCKS와 HTTP 프록시의 차이점

SOCKS HTTP 프록시
SOCKS는 보안 소켓을 나타냅니다. 일반적으로 클라이언트와 서버 사이의 방화벽으로 사용됩니다. HTTP 프록시는 클라이언트와 서버 사이의 방화벽으로 사용될 수도 있지만 HTTP 요청에만 사용할 수 있습니다.
SOCKS는 교환되는 데이터를 해석하지 않습니다. HTTP 프록시는 클라이언트와 서버 간에 교환되는 데이터를 해석합니다.
성능면에서 느림 SOCKS에 비해 성능이 우수함

프록시를 처리하는 방법 Selenium Chrome의 웹드라이버

HTTP 프록시 인증 Selenium Chrome에서는 다음 접근 방식을 사용하여 처리할 수 있습니다.

  • AutoIt 도구를 사용하여
  • 경고 사용

AutoIt 도구를 사용하여

AutoIt은 윈도우 데스크톱 자동화에 사용되는 타사 도구입니다. Selenium 웹 기반 팝업 및 창만 처리하고 운영 체제 제어를 처리하는 것은 불가능합니다. Selenium.

이를 위해서는 AutoIt과 같은 외부 타사 도구를 통합해야 합니다. Selenium그래서 AutoIt은 웹사이트에서 파일 업로드 및 다운로드를 처리하는 데 가장 일반적으로 사용됩니다.

AutoIt을 사용하려면 로컬 컴퓨터에 AutoIt 소프트웨어를 다운로드하여 설치해야 합니다.

AutoIt 다운로드 및 설치 방법은 다음에서 다룹니다. 기사.

프로그램 – Autoit 도구 – SciTE 스크립트 편집기를 열고 아래에 언급된 AutoIt 스크립트를 Autoit 편집기에 추가하고 시스템에 'ProxyAuthentication.au3'로 저장합니다.

파일을 컴파일하여 'ProxyAuthentication.exe'로 변환합니다.

In EclipseAutoIt 파일을 추가합니다. Selenium 스크립트 및 실행

다음은 HTTP 프록시 인증을 위한 AutoIt 스크립트입니다.

Send("guru99{ENTER}")
Send("guru99{ENTER}")

실행을 위해 AutoIt 파일을 전달해야 합니다. Selenium 아래 코드를 사용하는 웹드라이버

출처 Code:

package Guru99Demo;
import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class AutoItDemo {
    public static void main(String[] args) throws IOException {
        System.setProperty("webdriver.chrome.driver", "D:\\ chromedriver.exe");;
        WebDriver driver = new ChromeDriver();
        driver.get("https://demo.guru99.com/test/basic_auth.php");
        //Passing the AutoIt Script to Selenium	
        Runtime.getRuntime().exec("D:\\Data_Personal\\ProxyAuthentication.exe");
    }
}

Code 설명 :

  • 첫 번째 단계에서는 chromedriver.exe 파일을 가리키도록 시스템 속성을 설정하여 Chrome 드라이버 인스턴스를 초기화합니다.
  • 두 번째 단계에서는 웹 드라이버 객체를 초기화하고 웹사이트를 전달합니다. URL get 메서드를 사용하여
  • 마지막으로, AutoIt 스크립트 파일을 사용하여 HTTP 프록시 인증 팝업에 사용자 이름과 비밀번호를 전달하고 있습니다.

Code 출력:

AutoIt을 사용한 사용자 이름 경고 처리
AutoIt을 사용한 사용자 이름 경고 처리
AutoIt을 사용한 비밀번호 오류 경고 처리

AutoIt을 사용한 비밀번호 오류 경고 처리
프록시 인증 성공 화면

프록시 인증 성공 화면

경고 사용

경고는 다음에서 제공하는 간단한 내장 기능입니다. Selenium 웹 드라이버. 다음을 사용하여 프록시 인증 팝업을 처리할 수 있습니다. Selenium HTTP 프록시 인증 경고로 전환하고 사용자 이름과 비밀번호를 경고에 직접 전달하여 웹 드라이버를 사용할 수 있습니다. 키 보내기 방법을 사용합니다.

예시:

테스트 시나리오 :

웹사이트에서 HTTP 프록시 인증 팝업을 처리합니다. https://demo.guru99.com/test/basic_auth.php 경고 사용 Selenium 웹 드라이버.

소스 코드 예:

package Guru99Demo;
import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class AlertsDemo {
    public static void main(String args[]) throws IOException {
        System.setProperty("webdriver.chrome.driver", "D:\\Data_Personal\\Software\\chromedriver_win32\\chromedriver.exe");;
        WebDriver driver = new ChromeDriver();
        driver.get("https://demo.guru99.com/test/basic_auth.php");
        // Handling Username alert
        driver.switchTo().alert().sendKeys("guru99");
        driver.switchTo().alert().accept();
        // Handling Password alert
        driver.switchTo().alert().sendKeys("guru99");
        driver.switchTo().alert().accept();
    }
}

Code 산출

프록시 인증이 성공적으로 완료되었습니다.

Code 설명 :

  • 처음에는 chromedriver.exe 파일의 위치를 ​​가리키도록 webdriver 속성을 설정하여 Chrome 드라이버 인스턴스를 인스턴스화합니다.
  • 그러면, 당신은 그것을 열고 있는 것입니다. URL 필수 웹사이트를 통과하여 URL driver.get() 메서드의 매개변수로
  • 일단 URL 알림 창이 열리면 사용자 이름 알림으로 전환하고 사용자 이름 'guru99'를 보냅니다. 그런 다음 alert.accept 메서드를 사용하여 알림의 확인 버튼을 클릭합니다.
  • 그런 다음 비밀번호 경고로 전환하고 비밀번호(guru99)를 보냅니다. 그런 다음 Alert.accept 메소드를 사용하여 경고에서 확인 버튼을 클릭합니다.

자주 묻는 질문

자격 증명을 https://user:pass@site.com 형식으로 삽입할 수 있지만, 최신 Chrome에서는 이러한 형식이 제대로 작동하지 않습니다. Firefox 보안을 위해 이를 차단하세요. 이제 프록시 인증에는 알림이나 브라우저 확장 프로그램이 더 안정적입니다.

AutoIt은 자동화합니다 Windows 데스크톱 컨트롤 Selenium 네이티브 인증 팝업이나 파일 업로드 대화 상자처럼 접근할 수 없는 요소에 접근해야 합니다. AutoIt 스크립트를 실행 파일로 컴파일한 다음 해당 파일을 호출합니다. Selenium 암호.

프록시는 특정 애플리케이션이나 브라우저의 트래픽을 우회하여 주로 IP 주소를 숨기거나 콘텐츠를 필터링합니다. VPN은 시스템 전체의 모든 장치 트래픽을 암호화하여 일반 프록시보다 강력한 개인 정보 보호 기능을 제공합니다.

예. AI 기반 테스트 도구는 인증 대화 상자를 감지하고, 저장된 자격 증명을 삽입하며, 팝업 동작이 변경될 때 자체 복구 기능을 제공하여 브라우저 전반에 걸쳐 불안정한 AutoIt 스크립트에 대한 의존도를 줄여줍니다.

AI 도구는 프록시를 지능적으로 교체하고, 차단된 요청을 감지하며, 인증 프롬프트가 나타날 때 대기 시간을 조정합니다. 이러한 자동화 기능을 통해 기업 또는 콘텐츠 필터링 프록시 뒤에 있는 사이트의 테스트 안정성이 향상됩니다.

예. Selenium 버전 4에서는 Chrome DevTools 프로토콜 지원이 추가되어 HTTP 자격 증명을 프로그래밍 방식으로 설정하고 기본 인증을 처리할 수 있으므로 많은 프록시 시나리오에서 AutoIt을 사용하지 않아도 됩니다.

이 게시물을 요약하면 다음과 같습니다.