성장기의 히동

[Playwright/Python] Chromium이 열리지 않는 경우, 메모리 충돌이 발생하는 경우 이슈 해결기 본문

☁️ QA

[Playwright/Python] Chromium이 열리지 않는 경우, 메모리 충돌이 발생하는 경우 이슈 해결기

용히동 2026. 3. 11. 16:07

🌼

이번 글은 Playwright와 Python을 설치하던 중, 가장 기본적인 Chromium이라는 테스트용 웹이 열리지 않는 이슈를 해결한 경험을 서술했다.


🌱 Playwright / Python을 공부하게 된 계기

더보기

Java와 Appium을 통해 iOS 앱 자동화 테스트 환경을 구축했었다.

QA로서 앱만 테스트하는 경우 보다, 웹과 같이 테스트 하는 경우가 많을 것이라고 생각한다.

이전에 내가 직접 개발했던 실시간 채팅 서비스를 직접 QA 해보면서, 개발할 때 고려했던 부분이 품질에 어떤 영향을 미치는지, 그리고 QA로서 어떤 관점으로 테스트 대상을 바라봐야 하는지 깨달을 수 있을 것이라고 생각했다.

새로 나온 Vibium 이라는 웹 자동화 테스트 도구를 이용할까 하다가, 현업에서 실제로 많이 쓰이고 있는 Playwright와 Python을 이용해 기술 스택을 넓히고 보다 다양한 환경에서 안정적인 테스트를 구축하기 위해 경험을 쌓기로 결정했다.

 


💭 상황 설명

- Python 3.13.12 버전의 가상환경 생성

- Playwright 1.58.0 설치 완료

- Playwright install 명령어를 통해 패키지 설치 완료

아래는 Playwright 공식 홈페이지에서 가져온 예제 코드이다.

import re
from playwright.sync_api import Page, expect

def test_has_title(page: Page):
    page.goto("https://playwright.dev/")

    # Expect a title "to contain" a substring.
    expect(page).to_have_title(re.compile("Playwright"))

def test_get_started_link(page: Page):
    page.goto("https://playwright.dev/")

    # Click the get started link.
    page.get_by_role("link", name="Get started").click()

    # Expects page to have a heading with the name of Installation.
    expect(page.get_by_role("heading", name="Installation")).to_be_visible()

그런데 아래와 같이 오류가 발생했다.

 

잘 살펴보면 문제는 아래와 같다.

1. Chromium이 열리지 않았다.
왜냐면, Target page, context or browser has benn closed 에러가 발생했기 때문이다. 그리고 캡쳐하진 않았지만 프로그램이 예기치않게 종료됐다는 팝업도 떴었다!

2. BUS_ADRLN 에러가 발생했다.

3. 부모 프로세스가 죽었다.

 

태어나서 이런 에러는 처음 봤다. 자바만 하다가, 스크립트 언어로 에러를 읽으려니까 또 눈알이 빠질 것 같았지만~? 해내야 했다.

그래서 AI의 도움을 좀 받아봤다. 여기서 가장 중요한 에러는 BUS_ADRLN 에러였다.

 

‼️ BUS_ADRLN 에러란?

BUS_ADRALN (Invalid address alignment) 에러는 프로그램이 메모리의 잘못된 정렬 주소에 접근할 때 발생하는 시그널 7(SIGBUS) 에러입니다. 주로 64비트 환경에서 4바이트/8바이트 단위로 정렬되어야 할 데이터가 1바이트 단위로 비정렬 접근될 때 발생하며, 포인터 오류, 잘못된 형변환, 라이브러리 버전 불일치가 주원인입니다.

 

라고 하더라고요.

 

그러면 여기서 의심해볼만 한 것들은?

- 내 Mac이 Apple Silicon인가 Intel인가?

안녕? 난 M2칩 Apple Silicon 이라고 해

그리고 가상환경도 arm64로 잘 돌아가고 있었다구~!

 

- Playwright와 Python이 호환되지 않는 버전인가?

 

- 그래도 Apple에서 에러 팝업을 띄워줬다는 건 보안 정책에 걸린 건 아닐까?

딱히 걸린 것도 없고.. 전체 디스크 접근 허용 해줘도... 에러가 났다.

 

그래서 내린 결론이 뭐냐?

 

Tahoe는 사실 베타 버전이다. 그러니까? OS 버전이랑 꼬였다고 볼 수밖에 없다~!

메모리 충돌이라는데.. 내가 해줄 수 있는 조치는 다 해줬다... 그래서 다운그레이드를 해보기로 했다.


🩵 최종 해결책

 

 

Sequoia로 MacOS를 다운그레이드 했다.

해결되지 않던 메모리 충돌 문제가 다운그레이드 한 번으로 해결됐다.

USB 만들고 백업하고 초기화 하고,, 많은 시간이 걸렸지만, 그래도 다운그레이드로 해결되는 일이어서 다행이었다.

 

사실 중간에 다운그레이드에 실패해서 초기화된 Tahoe에서 다시 시도해봤는데, 역시나 안 됐다. 내 잘못은 아닌듯 하오..

 

이번 일을 계기로 역시 베타 버전을 설치할 때는 백업을 먼저 해둘 것 ! 을 깨달았다..

진짜 힘들었는데, 그래도 다운그레이드로 해결돼서 다행이다.