Python Playwright로 Edge 브라우저 제어하기

Python에서 Playwright를 사용하면 Chromium 기반의 Edge 브라우저를 다양한 방식으로 제어할 수 있습니다.
이 글에서는 브라우저를 실행하거나 연결하는 대표적인 방법 세 가지를 정리했습니다.


1. launch – 새 브라우저 실행

async with async_playwright() as p:
    browser = await p.chromium.launch(
        channel="msedge",
        headless=False,
        args=[
            "--remote-debugging-port=9222",  # 선택 사항
            "--start-maximized",
            "--disable-infobars",
        ],
    )
    context = await browser.new_context(no_viewport=True)
    page = await context.new_page()
  • 완전히 새로운 브라우저 프로세스를 실행합니다.
  • --remote-debugging-port는 Playwright 단독 사용 시 필요하지 않지만, Puppeteer나 DevTools 같은 다른 툴과 병행할 때 유용합니다.
  • 항상 깨끗한 환경에서 시작할 수 있다는 장점이 있습니다.

2. connect_over_cdp – 실행 중인 브라우저에 접속

async with async_playwright() as p:
    browser = await p.chromium.connect_over_cdp("http://127.0.0.1:9222")
    context = browser.contexts[0]
    page = context.pages[0] if context.pages else await context.new_page()
  • 이미 실행 중인 브라우저에 연결해 제어할 수 있습니다.
  • 이 방식을 쓰려면 브라우저를 --remote-debugging-port=9222 옵션과 함께 실행해야 합니다.
  • 기존에 열려 있던 탭, 세션 등을 그대로 활용할 수 있습니다.

3. launch_persistent_context – 프로필 기반 실행

async with async_playwright() as p:
    context = await p.chromium.launch_persistent_context(
        channel="msedge",
        user_data_dir=data_dir,
        headless=False,
        args=[
            "--start-maximized",
            "--disable-infobars",
            "--test-type"
        ],
        ignore_https_errors=True,
        no_viewport=True,
    )

    page = context.pages[0] if context.pages else await context.new_page()
  • user_data_dir을 지정해 특정 프로필 디렉토리를 사용합니다.
  • 쿠키, 로그인 상태, 확장 프로그램 등을 유지하면서 자동화를 실행할 수 있습니다.
  • 이 방식에서는 remote-debugging-port 옵션이 필요하지 않습니다.

コメント

お役立ち掲示板

Python Python Playwright로 Edge 브라우저 제어하기
Delphi TDirectory.Delete 대신 CMD 으로 폴더 삭제
Windows Chrome 및 Edge를 TLS 1.2 모드로 실행
開発のヒント 애드센스 자동 광고 사용 시 빈 화면이 출력된다면?
Windows 브라우저 환경설정 추출
WordPress xmlrpc.php 차단으로 보안 강화하기
Delphi 폼이 모니터 한 가운데 있는 경우 자연스럽게 왼쪽으로 …
Windows WSH script registration is not valid.
WordPress 제목 블록 기본값을 H5로 변경하는 방법
Python 동영상 특정 영역 모자이크(흐리게) 하기
Linux 구글 크롬 콘솔 'Attestation check for Topics on' 에…
その他 크롬 - 개발자 도구(DevTools)에서 붙여넣기 안될때
GnuBoard SmartEditor2Skin.html 다운로드 되는 현상
Windows 네트워크 탐지
Delphi TrayIcon 이 흐릿하게 보이는 버그? 수정
Delphi 실행 중인 프로세스가 활성 창인지 확인하는 함수
Delphi 메세지 다이어그램(Message Dialog) 에 체크박스(CheckB…
GnuBoard 부트스트랩 테마 예제로 사용중인 main.php
GnuBoard 유튜브 스킨
Windows TLS 연결 끊김 해결 방법 - Kyber 비활성화
開発のヒント 검색 로봇 접속시 종료
Windows WinDivert 사용중인 어플리케이션 검색
WordPress 답글 남기기 메시지 변경
Linux PHP-FPM 튜닝을 위한 메모리 계산
Windows 아이폰 벨소리 쉽게 추가하기
Windows C:\Windows\Installer 폴더 다른 드라이브로 옮기기
Windows 작업 표시줄 (기타 시스템 트레이 아이콘) 제거 프로그…
WordPress cdn.jsdelivr.net 에서 ssl 인증서 오류 문제
GnuBoard cdn.jsdelivr.net 에서 ssl 인증서 오류 문제
開発のヒント REQUEST 값 받기(application/json 포함)