Loading...
Loading...
agent-browser CLI로 Chrome Beta CDP에 연결하여 페이지 탐색, 데이터 확인, 요소 조작을 수행하는 스킬. "브라우저 확인", "페이지 봐줘", "DOM 확인", "데이터 점검", "클릭해줘", "화면 확인" 키워드로 트리거. E2E 시나리오 작성 중 셀렉터 확인이나 실행 실패 디버깅에도 사용한다.
npx skill4agent add peachsolution/peach-harness peach-e2e-browseagent-browser./e2e/pwc.sh| 용도 | 도구 | 이유 |
|---|---|---|
| 탐색/검증/확인 | agent-browser | eval 6.6x 빠름, 토큰 2.3x 절약 |
| 시나리오 실행 | playwright-cli ( | lib/connect.js 기반 시나리오 인프라 |
| fallback | playwright-cli ( | iframe 등 agent-browser 미지원 기능 |
목표가 무엇인가?
├─ 데이터 읽기 (텍스트, 개수, 값 확인)
│ → eval 한 줄로 해결
│
├─ 요소 조작 (클릭, 입력)
│ ├─ CSS 셀렉터를 알고 있다 → eval로 click/value 설정
│ └─ 셀렉터를 모른다 → snapshot -i -c + grep으로 ref 찾기 → click ref
│
├─ iframe 내부 접근
│ → playwright-cli fallback (references/iframe-모달-패턴.md 참조)
│
└─ 페이지 전체 구조 파악 (부득이할 때만)
→ snapshot -i -c (절대 전체 snapshot 금지)핵심: eval부터 시도. snapshot은 최후수단.
1. 환경 확인 (setup)
2. CDP 연결 (agent-browser connect 9222)
3. tab list → 사용자에게 탭 목록 보여주고 작업 탭 확인
4. 선택된 탭에서 작업 (eval/click/snapshot)
5. 결과를 사용자에게 보고cd e2e && ./e2e.sh setupsetup./e2e.sh chromeagent-browser connect 92221회 연결하면 세션 유지. 매 명령마다 재연결 불필요.
agent-browser tab list [0] Daum - https://www.daum.net/
[1] - chrome://webui-toolbar.top-chrome/
→ [2] NAVER - https://www.naver.com/
[3] Google - https://www.google.com/표시는 agent-browser 내부 포커스이지 Chrome UI 포커스가 아니다. CDP는 사용자가 Chrome에서 보고 있는 탭을 알 수 없다. 따라서 작업 시작 전 반드시 사용자에게 탭 번호를 확인해야 한다.→
agent-browser tab Nagent-browser open "URL"agent-browser tab Nagent-browser tab new "URL"사용 금지! 기존 탭을 덮어쓴다. 새 탭은 반드시open URL --new-tab사용.tab new "URL"
agent-browser open "https://대상URL"# 값 읽기
agent-browser eval "document.title"
agent-browser eval "document.querySelector('#field').value"
agent-browser eval "document.querySelectorAll('tr').length"
# 조건부 읽기
agent-browser eval "document.querySelector('.cls') ? document.querySelector('.cls').innerText.trim() : '없음'"
# 목록 추출 (JSON.stringify 패턴)
agent-browser eval "JSON.stringify(Array.from(document.querySelectorAll('li')).map(function(el){return el.innerText}))"
# 클릭
agent-browser eval "document.querySelector('a.link').click()"
# 값 입력
agent-browser eval "document.querySelector('#keyword').value = '검색어'"eval은 단순 표현식만. IIFE사용 금지 -- 직렬화 오류 발생. 여러 동작은 각각 별도 eval로 나눠서 실행한다.(function(){...})()
# 인터랙티브 요소만 + 컴팩트 출력 (필수 옵션)
agent-browser snapshot -i -c
# CSS 범위 제한 (더 절약)
agent-browser snapshot -i -c -s "table"전체 snapshot 금지. 토큰 비교:
- 전체 snapshot: ~65,700 토큰
- snapshot -i -c: ~9,800 토큰
- eval:
1460 토큰
agent-browser click e10
agent-browser fill e37 "검색어"
agent-browser press Enterref는 DOM 변경 시 무효. 클릭/이동 후 반드시 다시 snapshot.
agent-browser click e10
agent-browser fill e37 "검색어"
agent-browser press Enteragent-browser screenshot # 터미널 출력
agent-browser screenshot result.png # 파일 저장 (토큰 미소비)# playwright-cli 세션 오픈 (1회)
./e2e/pwc.sh open
# 탭 전환
./e2e/pwc.sh tab-select N
# iframe 내부 읽기
./e2e/pwc.sh eval "document.querySelector('iframe[src*=대상]').contentDocument.querySelector('#element').innerText"
# iframe 내부 입력 + 클릭 -- 별도 eval로 분리
./e2e/pwc.sh eval "document.querySelector('iframe[src*=대상]').contentDocument.querySelector('#keyword').value = '검색어'"
./e2e/pwc.sh eval "document.querySelector('iframe[src*=대상]').contentDocument.querySelector('input[type=submit]').click()"상세 패턴은참조 playwright-cli 명령어는references/iframe-모달-패턴.md참조references/playwright-cli-명령어.md
| 항목 | agent-browser | playwright-cli | 배율 |
|---|---|---|---|
| eval 평균 속도 | 189ms | 1,249ms | 6.6x |
| 총 명령 시간 | 1,521ms | 6,257ms | 4.1x |
| 총 출력 바이트 | 1,918B | 4,343B | 2.3x |
| eval 출력 형식 | 결과값만 | 결과+코드+탭목록+페이지정보 | - |
tab listtab new URLopen URL --new-tab-i -c| 문서 | 용도 |
|---|---|
| agent-browser 전체 명령어 레퍼런스 |
| fallback 전용 (iframe 등 agent-browser 미지원 시) |
| jQuery UI Dialog + iframe 모달 접근 패턴 |