From 8580c891eb13fa38796475b0ad4a62119d8f739d Mon Sep 17 00:00:00 2001 From: light Date: Fri, 30 Jan 2026 16:26:52 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EC=8B=9C=EB=82=98=EB=A6=AC=EC=98=A4=20U?= =?UTF-8?q?RL=20=EB=B0=8F=20=EB=A9=94=EB=89=B4=20=EC=A1=B4=EC=9E=AC=20?= =?UTF-8?q?=EC=97=AC=EB=B6=80=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - announcement-board.json 삭제 (공지사항 메뉴 미존재) - bank-account-management.json URL 수정: /settings/bank-account → /settings/accounts - company-info.json URL 수정: /settings/company → /company-info Co-Authored-By: Claude Opus 4.5 --- account-info.json | 11 +- announcement-board.json | 186 ---------------------------------- approval-box.json | 11 +- attendance-checkin.json | 16 ++- attendance-management.json | 12 ++- attendance-settings.json | 8 +- bad-debt-collection.json | 11 +- bank-account-management.json | 27 +++-- bank-transactions.json | 14 ++- bill-management.json | 11 +- board-management.json | 11 +- board-test.json | 11 +- card-add.json | 11 +- card-transactions.json | 11 +- company-info.json | 25 +++-- comprehensive-analysis.json | 11 +- customer-inquiry.json | 13 ++- daily-report.json | 8 +- department-add.json | 11 +- deposit-management.json | 8 +- draft-box.json | 8 +- employee-register.json | 14 ++- event-board.json | 11 +- expected-expenses.json | 11 +- faq.json | 11 +- free-board.json | 11 +- inspection-management.json | 11 +- inventory-status.json | 11 +- item-management.json | 16 ++- item-standard-management.json | 11 +- leave-policy.json | 15 ++- notification-settings.json | 13 ++- order-management.json | 11 +- payment-history.json | 16 ++- permission-management.json | 16 ++- popup-management.json | 13 ++- position-management.json | 11 +- price-management.json | 11 +- process-management.json | 11 +- production-dashboard.json | 13 ++- quality-certification.json | 11 +- rank-management.json | 16 ++- receivables-status.json | 17 +++- receiving-management.json | 11 +- reference-box.json | 16 ++- salary-management.json | 11 +- sales-management.json | 16 +-- shipment-management.json | 11 +- subscription-management.json | 11 +- vacation-management.json | 13 ++- vendor-ledger.json | 18 ++-- vendor-management.json | 16 ++- withdrawal-management.json | 16 +-- work-order-management.json | 16 ++- work-performance.json | 11 +- worker-screen.json | 11 +- 56 files changed, 490 insertions(+), 403 deletions(-) delete mode 100644 announcement-board.json diff --git a/account-info.json b/account-info.json index ac73a03..7d33a05 100644 --- a/account-info.json +++ b/account-info.json @@ -48,14 +48,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/announcement-board.json b/announcement-board.json deleted file mode 100644 index 1dc020b..0000000 --- a/announcement-board.json +++ /dev/null @@ -1,186 +0,0 @@ -{ - "id": "announcement-board", - "name": "공지사항 테스트", - "screenshotPolicy": { - "onErrorOnly": true, - "captureOn": ["error", "fail", "timeout", "404", "500", "blocked"] - }, - "description": "고객센터 > 공지사항 페이지의 목록 조회, 상세 보기, 검색/필터 기능을 테스트하는 E2E 테스트", - "baseUrl": "https://dev.codebridge-x.com", - "url": "/support/announcements", - "menuNavigation": { - "level1": "고객센터", - "level2": "공지사항", - "expectedUrl": "/support/announcements" - }, - "menuNavigationEnhanced": { - "strategy": "scroll-and-search", - "sidebar": { - "scrollContainer": ".sidebar-scroll", - "scrollStep": 200, - "maxScrollAttempts": 5, - "waitAfterScroll": 300 - }, - "level1": { - "text": "고객센터", - "expandable": true, - "waitAfterClick": 500 - }, - "level2": { - "text": "공지사항", - "waitAfterClick": 300 - }, - "fallbackUrl": "/support/announcements", - "expectedUrl": "/support/announcements" - }, - "timeout": 90000, - "tags": ["support", "announcement", "read-only"], - - "login": { - "url": "https://dev.codebridge-x.com/login", - "credentials": { - "id": "TestUser5", - "password": "password123!" - }, - "successIndicator": "대시보드" - }, - - "steps": [ - { - "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바를 스크롤하여 메뉴 탐색 준비", - "actions": [ - { - "type": "evaluate", - "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" - }, - { "type": "wait", "duration": 500 } - ] - }, - { - "id": "step-1", - "name": "고객센터 메뉴 진입", - "description": "고객센터 > 공지사항 메뉴로 이동", - "actions": [ - { - "type": "scrollAndFind", - "container": ".sidebar-scroll", - "target": "고객센터", - "scrollStep": 200, - "maxAttempts": 5 - }, - { "type": "click", "target": "고객센터" }, - { "type": "wait", "duration": 500 }, - { "type": "click", "target": "공지사항" } - ], - "expect": { - "url": "/support/announcements", - "visible": ["공지사항"] - }, - "fallback": { - "type": "navigate", - "url": "/support/announcements" - } - }, - { - "id": "step-2", - "name": "페이지 구조 확인", - "description": "공지사항 목록 페이지 구조 확인", - "verify": { - "visible": ["공지사항", "최신순"], - "tableColumns": ["No.", "제목", "작성자", "등록일", "조회수"] - } - }, - { - "id": "step-3", - "name": "날짜 필터 확인", - "description": "날짜 필터 버튼 동작 확인", - "actions": [ - { "type": "click", "target": "당월" }, - { "type": "wait", "duration": 300 } - ], - "expect": { - "filterApplied": true - } - }, - { - "id": "step-4", - "name": "정렬 옵션 확인", - "description": "정렬 드롭다운 옵션 확인", - "actions": [ - { "type": "click", "target": "최신순", "role": "combobox" } - ], - "expect": { - "optionsVisible": true - } - }, - { - "id": "step-5", - "name": "공지사항 상세 보기", - "description": "공지사항 항목 클릭하여 상세 페이지 이동", - "actions": [ - { "type": "press", "key": "Escape" }, - { "type": "wait", "duration": 300 }, - { - "type": "evaluate", - "script": "document.querySelector('tbody tr')?.click()" - } - ], - "expect": { - "pageChange": "/support/announcements/", - "visible": ["공지사항 상세", "목록으로"] - } - }, - { - "id": "step-6", - "name": "상세 페이지 구조 확인", - "description": "상세 페이지 정보 표시 확인", - "verify": { - "visible": ["제목", "작성자", "등록일", "조회수", "내용"] - } - }, - { - "id": "step-7", - "name": "목록으로 돌아가기", - "description": "목록으로 버튼 클릭하여 목록 페이지로 복귀", - "actions": [ - { "type": "click", "target": "목록으로" } - ], - "expect": { - "url": "/support/announcements", - "visible": ["공지사항"] - } - }, - { - "id": "step-8", - "name": "페이지네이션 확인", - "description": "페이지네이션 동작 확인", - "verify": { - "paginationExists": true, - "showsTotalItems": true - } - } - ], - - "assertions": [ - { - "type": "url", - "expected": "/support/announcements", - "message": "공지사항 페이지에 머물러야 함" - }, - { - "type": "elementExists", - "selector": "text=공지사항", - "message": "공지사항 제목이 표시되어야 함" - } - ], - - "notes": { - "testScope": "공지사항 목록 조회 → 상세 보기 → 필터/정렬 테스트", - "pageType": "조회 전용 (일반 사용자 등록/수정/삭제 불가)", - "tableColumns": ["No.", "제목", "작성자", "등록일", "조회수"], - "detailFields": ["제목", "작성자", "등록일", "조회수", "이미지", "내용"], - "prerequisites": "로그인된 사용자" - } -} diff --git a/approval-box.json b/approval-box.json index 0a8a228..54ecd17 100644 --- a/approval-box.json +++ b/approval-box.json @@ -33,16 +33,17 @@ "steps": [ { "id": 0, - "name": "사이드바 메뉴 탐색 준비", - "description": "사이드바를 최상단으로 스크롤하고 메뉴 구조 파악", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "scroll", "target": "sidebar", "direction": "top", "description": "사이드바 최상단으로 스크롤" }, - { "type": "wait", "duration": 500 }, - { "type": "screenshot", "name": "sidebar_initial_state" } + { "type": "wait", "duration": 300 }, + { "type": "evaluate", "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" }, + { "type": "wait", "duration": 2000 } ], "verification": [ "사이드바가 화면에 보이는지 확인", - "메뉴 항목들이 렌더링되었는지 확인" + "모든 메뉴가 펼쳐졌는지 확인" ] }, { diff --git a/attendance-checkin.json b/attendance-checkin.json index df0a6ec..2680ffd 100644 --- a/attendance-checkin.json +++ b/attendance-checkin.json @@ -110,8 +110,8 @@ }, { "id": "step-0-1", - "name": "🗺️ 위치 권한 팝업 처리 (UI)", - "description": "브라우저 상단에 나타나는 위치 권한 요청 팝업에서 '항상 허용' 클릭", + "name": "🗺️ 위치 권한 팝업 처리 및 사이드바 메뉴 전체 펼치기", + "description": "위치 권한 요청 팝업 처리 후 모두 펼치기 버튼을 클릭하여 전체 메뉴 펼침", "critical": true, "actions": [ { "type": "wait", "duration": 1000, "description": "페이지 로드 및 권한 팝업 표시 대기" }, @@ -134,7 +134,17 @@ } }, { "type": "wait", "duration": 500, "description": "권한 설정 적용 대기" }, - { "type": "screenshot", "name": "after_permission_grant" } + { + "type": "evaluate", + "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" + }, + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 }, + { "type": "screenshot", "name": "after_permission_grant_and_menu_expanded" } ], "verification": [ "위치 권한 팝업이 닫혔는지 확인", diff --git a/attendance-management.json b/attendance-management.json index 8356b27..cc1e7b2 100644 --- a/attendance-management.json +++ b/attendance-management.json @@ -76,15 +76,21 @@ "steps": [ { "id": "step-0", - "name": "사이드바 준비", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll, [data-sidebar-scroll], nav[role=\"navigation\"]')?.scrollTo({top: 0, behavior: 'instant'})", "description": "사이드바 최상단으로 스크롤" }, - { "type": "wait", "duration": 500, "description": "스크롤 완료 대기" } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()", + "description": "모두 펼치기 버튼 클릭" + }, + { "type": "wait", "duration": 2000, "description": "메뉴 펼침 완료 대기" } ], "expect": { "sidebarReady": true diff --git a/attendance-settings.json b/attendance-settings.json index 5584f35..0188a05 100644 --- a/attendance-settings.json +++ b/attendance-settings.json @@ -55,11 +55,13 @@ "steps": [ { "id": 0, - "name": "사이드바 준비", - "description": "메뉴 탐색 전 사이드바 스크롤을 최상단으로 초기화", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll, [data-testid=\"sidebar\"], nav[role=\"navigation\"]')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { "type": "evaluate", "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" }, + { "type": "wait", "duration": 2000 } ], "expected": { "sidebarReady": true diff --git a/bad-debt-collection.json b/bad-debt-collection.json index b61b6c0..5080d4c 100644 --- a/bad-debt-collection.json +++ b/bad-debt-collection.json @@ -108,14 +108,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "메뉴 탐색 전 사이드바를 최상단으로 스크롤하여 초기화", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll, [class*=\"sidebar\"] > div')?.scrollTo({top: 0, behavior: 'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ], "expected": { "sidebarReady": true diff --git a/bank-account-management.json b/bank-account-management.json index 670eccf..32771be 100644 --- a/bank-account-management.json +++ b/bank-account-management.json @@ -7,11 +7,11 @@ }, "description": "설정 > 계좌관리 페이지의 계좌 등록/조회/수정/삭제 기능을 테스트하는 E2E 테스트", "baseUrl": "https://dev.codebridge-x.com", - "url": "/settings/bank-account", + "url": "/settings/accounts", "menuNavigation": { "level1": "설정", "level2": "계좌관리", - "expectedUrl": "/settings/bank-account" + "expectedUrl": "/settings/accounts" }, "menuNavigationEnhanced": { "strategy": "scroll-and-search", @@ -30,8 +30,8 @@ "text": "계좌관리", "waitAfterClick": 300 }, - "fallbackUrl": "/settings/bank-account", - "expectedUrl": "/settings/bank-account" + "fallbackUrl": "/settings/accounts", + "expectedUrl": "/settings/accounts" }, "timeout": 90000, "tags": ["settings", "bank-account", "crud"], @@ -58,14 +58,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ] }, { @@ -85,12 +90,12 @@ { "type": "click", "target": "계좌관리" } ], "expect": { - "url": "/settings/bank-account", + "url": "/settings/accounts", "visible": ["계좌관리", "계좌 등록"] }, "fallback": { "type": "navigate", - "url": "/settings/bank-account" + "url": "/settings/accounts" } }, { @@ -173,7 +178,7 @@ "modalClosed": true }, "verify": { - "apiCall": "POST /api/settings/bank-account" + "apiCall": "POST /api/settings/accounts" } }, { @@ -291,7 +296,7 @@ "assertions": [ { "type": "url", - "expected": "/settings/bank-account", + "expected": "/settings/accounts", "message": "계좌관리 페이지에 머물러야 함" }, { diff --git a/bank-transactions.json b/bank-transactions.json index fc85a5a..c90a4c4 100644 --- a/bank-transactions.json +++ b/bank-transactions.json @@ -63,18 +63,24 @@ "steps": [ { "id": "step-0", - "name": "사이드바 준비", - "description": "사이드바 스크롤을 최상단으로 이동하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll, [class*=\"sidebar\"] > div, nav[class*=\"menu\"]')?.scrollTo({top: 0, behavior: 'instant'})", "description": "사이드바 스크롤 최상단 이동" }, + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()", + "description": "모두 펼치기 버튼 클릭" + }, { "type": "wait", - "duration": 500, - "description": "스크롤 안정화 대기" + "duration": 2000, + "description": "메뉴 펼침 완료 대기" } ], "expect": { diff --git a/bill-management.json b/bill-management.json index 7796897..dbd3897 100644 --- a/bill-management.json +++ b/bill-management.json @@ -59,14 +59,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/board-management.json b/board-management.json index 0e4cec5..3b3b20c 100644 --- a/board-management.json +++ b/board-management.json @@ -61,16 +61,21 @@ "steps": [ { "step": 0, - "name": "사이드바 초기화", - "description": "메뉴 탐색 전 사이드바를 최상단으로 스크롤하여 초기화", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, { "type": "wait", - "duration": 500 + "duration": 2000 } ], "expected": { diff --git a/board-test.json b/board-test.json index bf45322..777333e 100644 --- a/board-test.json +++ b/board-test.json @@ -30,14 +30,19 @@ "steps": [ { "step": 0, - "name": "사이드바 준비", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll, [data-sidebar], nav')?.scrollTo({top: 0, behavior: 'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ], "expected": { "sidebarReady": true diff --git a/card-add.json b/card-add.json index d5019ff..d70b721 100644 --- a/card-add.json +++ b/card-add.json @@ -89,14 +89,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 준비", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/card-transactions.json b/card-transactions.json index 3fc996b..ecfff08 100644 --- a/card-transactions.json +++ b/card-transactions.json @@ -58,14 +58,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 준비", - "description": "메뉴 탐색 전 사이드바를 최상단으로 스크롤하여 초기화", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll, [class*=\"sidebar\"], nav[role=\"navigation\"]')?.scrollTo({top: 0, behavior: 'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ], "expected": { "sidebarScrollTop": 0, diff --git a/company-info.json b/company-info.json index ab2e0fe..41902b8 100644 --- a/company-info.json +++ b/company-info.json @@ -16,11 +16,10 @@ "alternativeLevel1Names": ["설정", "Settings", "환경설정", "시스템설정", "관리"], "alternativeLevel2Names": ["회사정보", "회사 정보", "Company Info", "회사관리", "기업정보"], "fallbackUrls": [ - "/ko/settings/company-info", - "/ko/settings/company", - "/ko/admin/company-info", + "/company-info", + "/ko/company-info", "/settings/company-info", - "/ko/management/company" + "/ko/settings/company-info" ], "scrollConfig": { "sidebarSelector": "nav, aside, [role='navigation'], .sidebar, #sidebar", @@ -52,16 +51,17 @@ "steps": [ { "id": 0, - "name": "사이드바 메뉴 탐색 준비", - "description": "사이드바를 최상단으로 스크롤하고 메뉴 구조 파악", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "scroll", "target": "sidebar", "direction": "top", "description": "사이드바 최상단으로 스크롤" }, - { "type": "wait", "duration": 500 }, - { "type": "screenshot", "name": "sidebar_initial_state" } + { "type": "wait", "duration": 300 }, + { "type": "evaluate", "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" }, + { "type": "wait", "duration": 2000 } ], "verification": [ "사이드바가 화면에 보이는지 확인", - "메뉴 항목들이 렌더링되었는지 확인" + "모든 메뉴가 펼쳐졌는지 확인" ] }, { @@ -139,9 +139,8 @@ { "type": "tryAlternativeUrls", "urls": [ - "/ko/settings/company-info", - "/ko/settings/company", - "/ko/admin/company-info" + "/company-info", + "/ko/company-info" ], "stopOnSuccess": true }, @@ -167,7 +166,7 @@ "콘텐츠가 정상 렌더링됨" ], "successCriteria": { - "urlPattern": "/settings/company", + "urlPattern": "/company-info", "requiredElements": ["회사", "회사명", "대표자명"] } }, diff --git a/comprehensive-analysis.json b/comprehensive-analysis.json index 958a97b..5d04a87 100644 --- a/comprehensive-analysis.json +++ b/comprehensive-analysis.json @@ -48,14 +48,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/customer-inquiry.json b/customer-inquiry.json index e59bb27..6f38343 100644 --- a/customer-inquiry.json +++ b/customer-inquiry.json @@ -70,21 +70,26 @@ "steps": [ { "id": "step-0", - "name": "사이드바 준비", - "description": "메뉴 탐색 전 사이드바를 초기 상태로 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll, [data-sidebar-content], nav[role=\"navigation\"]')?.scrollTo({top: 0, behavior: 'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ], "expected": { "sidebarReady": true }, "verification": [ "사이드바가 최상단으로 스크롤됨", - "메뉴 탐색 준비 완료" + "모든 메뉴가 펼쳐짐" ] }, { diff --git a/daily-report.json b/daily-report.json index 4abf442..b09d2ac 100644 --- a/daily-report.json +++ b/daily-report.json @@ -68,11 +68,13 @@ "steps": [ { "id": "step-0", - "name": "사이드바 메뉴 탐색 준비", - "description": "사이드바를 최상단으로 스크롤하고 메뉴 구조 파악", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "scroll", "target": "sidebar", "direction": "top", "description": "사이드바 최상단으로 스크롤" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { "type": "evaluate", "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/department-add.json b/department-add.json index ff38e26..2d060af 100644 --- a/department-add.json +++ b/department-add.json @@ -78,14 +78,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바 스크롤을 최상단으로 초기화하고 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll, [data-sidebar], nav, aside')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ], "expect": { "sidebarReady": true diff --git a/deposit-management.json b/deposit-management.json index 39957f2..1b72ced 100644 --- a/deposit-management.json +++ b/deposit-management.json @@ -43,11 +43,13 @@ "steps": [ { "id": "step-0", - "name": "사이드바 메뉴 탐색 준비", - "description": "사이드바를 최상단으로 스크롤하고 메뉴 구조 파악", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "scroll", "target": "sidebar", "direction": "top", "description": "사이드바 최상단으로 스크롤" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { "type": "evaluate", "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/draft-box.json b/draft-box.json index 8b63e64..0f67a2d 100644 --- a/draft-box.json +++ b/draft-box.json @@ -72,11 +72,13 @@ "steps": [ { "id": "step-0", - "name": "사이드바 메뉴 탐색 준비", - "description": "사이드바를 최상단으로 스크롤하고 메뉴 구조 파악", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "scroll", "target": "sidebar", "direction": "top", "description": "사이드바 최상단으로 스크롤" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { "type": "evaluate", "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/employee-register.json b/employee-register.json index a0c816b..8063afd 100644 --- a/employee-register.json +++ b/employee-register.json @@ -43,18 +43,24 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "메뉴 탐색 전 사이드바 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll, [class*=\"sidebar\"], nav')?.scrollTo({top: 0, behavior: 'instant'})", "description": "사이드바 스크롤 최상단으로 이동" }, + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()", + "description": "모두 펼치기 버튼 클릭" + }, { "type": "wait", - "duration": 500, - "description": "스크롤 안정화 대기" + "duration": 2000, + "description": "메뉴 펼침 완료 대기" } ] }, diff --git a/event-board.json b/event-board.json index c86006e..6cab40c 100644 --- a/event-board.json +++ b/event-board.json @@ -48,14 +48,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바를 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/expected-expenses.json b/expected-expenses.json index c06a9fc..ef31a5b 100644 --- a/expected-expenses.json +++ b/expected-expenses.json @@ -76,14 +76,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll, [data-sidebar], nav[role=\"navigation\"]')?.scrollTo({top: 0, behavior: 'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ], "expected": { "sidebarReady": true, diff --git a/faq.json b/faq.json index 2f7dcea..1bfcef1 100644 --- a/faq.json +++ b/faq.json @@ -48,14 +48,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바를 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/free-board.json b/free-board.json index ffd9202..242c579 100644 --- a/free-board.json +++ b/free-board.json @@ -30,16 +30,21 @@ "steps": [ { "step": 0, - "name": "사이드바 초기화", - "description": "메뉴 탐색 전 사이드바를 최상단으로 스크롤", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll, [data-sidebar=\"content\"], nav')?.scrollTo({top: 0, behavior: 'instant'})" }, + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, { "type": "wait", - "duration": 500 + "duration": 2000 } ] }, diff --git a/inspection-management.json b/inspection-management.json index 209a252..53d8fca 100644 --- a/inspection-management.json +++ b/inspection-management.json @@ -58,14 +58,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ], "expect": { "sidebarReady": true diff --git a/inventory-status.json b/inventory-status.json index c4a9275..4e0c9a9 100644 --- a/inventory-status.json +++ b/inventory-status.json @@ -48,14 +48,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/item-management.json b/item-management.json index 24a5c85..d4d69b2 100644 --- a/item-management.json +++ b/item-management.json @@ -82,11 +82,19 @@ "steps": [ { "step": 0, - "name": "사이드바 메뉴 탐색 준비", - "description": "사이드바를 최상단으로 스크롤하고 메뉴 구조 파악", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ - { "type": "scroll", "target": "sidebar", "direction": "top", "description": "사이드바 최상단으로 스크롤" }, - { "type": "wait", "duration": 500 } + { + "type": "evaluate", + "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" + }, + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/item-standard-management.json b/item-standard-management.json index 8b2cdd0..0cf0fea 100644 --- a/item-standard-management.json +++ b/item-standard-management.json @@ -59,14 +59,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ], "expect": { "sidebarReady": true diff --git a/leave-policy.json b/leave-policy.json index fdeec33..ec4f21d 100644 --- a/leave-policy.json +++ b/leave-policy.json @@ -49,14 +49,19 @@ "steps": [ { "id": 0, - "name": "사이드바 준비", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { - "type": "execute", - "script": "document.querySelector('.sidebar-scroll, [class*=\"sidebar\"], nav')?.scrollTo({top: 0, behavior: 'instant'})" + "type": "evaluate", + "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ], "expected": { "sidebarReady": true diff --git a/notification-settings.json b/notification-settings.json index 5649dd6..d12da1a 100644 --- a/notification-settings.json +++ b/notification-settings.json @@ -59,14 +59,19 @@ "steps": [ { "id": 0, - "name": "사이드바 초기화", - "description": "메뉴 탐색 전 사이드바를 최상단으로 스크롤하여 초기화", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", - "script": "document.querySelector('.sidebar-scroll, [class*=\"sidebar\"], nav[class*=\"menu\"]')?.scrollTo({top: 0, behavior: 'instant'})" + "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ], "expected": { "sidebarScrollPosition": "top" diff --git a/order-management.json b/order-management.json index 114553e..853cf36 100644 --- a/order-management.json +++ b/order-management.json @@ -58,14 +58,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/payment-history.json b/payment-history.json index 414fefd..3fede7a 100644 --- a/payment-history.json +++ b/payment-history.json @@ -54,11 +54,19 @@ "steps": [ { "id": 0, - "name": "사이드바 메뉴 탐색 준비", - "description": "사이드바를 스크롤하여 회계관리 메뉴 찾기", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ - { "type": "scroll", "target": "sidebar", "direction": "bottom", "description": "사이드바 하단으로 스크롤" }, - { "type": "wait", "duration": 500 } + { + "type": "evaluate", + "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" + }, + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ], "verification": [ "사이드바가 화면에 보이는지 확인", diff --git a/permission-management.json b/permission-management.json index dd8a8bc..dfe8a70 100644 --- a/permission-management.json +++ b/permission-management.json @@ -71,11 +71,19 @@ "steps": [ { "id": "step-00", - "name": "사이드바 메뉴 탐색 준비", - "description": "사이드바를 최상단으로 스크롤하고 메뉴 구조 파악", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ - { "type": "scroll", "target": "sidebar", "direction": "top", "description": "사이드바 최상단으로 스크롤" }, - { "type": "wait", "duration": 500 } + { + "type": "evaluate", + "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" + }, + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/popup-management.json b/popup-management.json index c5100c8..d45bc46 100644 --- a/popup-management.json +++ b/popup-management.json @@ -69,14 +69,19 @@ "steps": [ { "step": 0, - "name": "사이드바 준비", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", - "script": "document.querySelector('.sidebar-scroll, [data-testid=\"sidebar\"], nav[role=\"navigation\"]')?.scrollTo({top: 0, behavior: 'instant'})" + "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ], "expected": { "sidebarReady": true diff --git a/position-management.json b/position-management.json index 640b10b..77c74d7 100644 --- a/position-management.json +++ b/position-management.json @@ -54,14 +54,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/price-management.json b/price-management.json index 0064040..6e8337c 100644 --- a/price-management.json +++ b/price-management.json @@ -57,14 +57,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/process-management.json b/process-management.json index 9242644..a97257a 100644 --- a/process-management.json +++ b/process-management.json @@ -58,14 +58,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ], "expect": { "sidebarReady": true diff --git a/production-dashboard.json b/production-dashboard.json index 1eb2a6e..99b3c70 100644 --- a/production-dashboard.json +++ b/production-dashboard.json @@ -55,14 +55,19 @@ "steps": [ { "step": 0, - "name": "사이드바 초기화", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", - "script": "document.querySelector('.sidebar-scroll, [class*=\"sidebar\"], nav[role=\"navigation\"]')?.scrollTo({top: 0, behavior: 'instant'})" + "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ], "expected": { "sidebarReady": true diff --git a/quality-certification.json b/quality-certification.json index fc5e01d..1f20524 100644 --- a/quality-certification.json +++ b/quality-certification.json @@ -55,14 +55,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ], "expect": { "sidebarReady": true diff --git a/rank-management.json b/rank-management.json index 0de1b39..f7485cf 100644 --- a/rank-management.json +++ b/rank-management.json @@ -56,11 +56,19 @@ "steps": [ { "id": "step-00", - "name": "사이드바 메뉴 탐색 준비", - "description": "사이드바를 최상단으로 스크롤하고 메뉴 구조 파악", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ - { "type": "scroll", "target": "sidebar", "direction": "top", "description": "사이드바 최상단으로 스크롤" }, - { "type": "wait", "duration": 500 } + { + "type": "evaluate", + "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" + }, + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/receivables-status.json b/receivables-status.json index 9b3718f..3a3695b 100644 --- a/receivables-status.json +++ b/receivables-status.json @@ -47,12 +47,19 @@ "steps": [ { "id": 0, - "name": "사이드바 메뉴 탐색 준비", - "description": "사이드바를 최상단으로 스크롤하고 메뉴 구조 파악", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ - { "type": "scroll", "target": "sidebar", "direction": "top", "description": "사이드바 최상단으로 스크롤" }, - { "type": "wait", "duration": 500 }, - { "type": "screenshot", "name": "sidebar_initial_state" } + { + "type": "evaluate", + "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" + }, + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ], "verification": [ "사이드바가 화면에 보이는지 확인", diff --git a/receiving-management.json b/receiving-management.json index 791c21c..4ccff89 100644 --- a/receiving-management.json +++ b/receiving-management.json @@ -48,14 +48,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/reference-box.json b/reference-box.json index 866f34e..fe98c62 100644 --- a/reference-box.json +++ b/reference-box.json @@ -48,11 +48,19 @@ "steps": [ { "id": 0, - "name": "사이드바 메뉴 탐색 준비", - "description": "사이드바를 최상단으로 스크롤하고 메뉴 구조 파악", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ - { "type": "scroll", "target": "sidebar", "direction": "top", "description": "사이드바 최상단으로 스크롤" }, - { "type": "wait", "duration": 500 } + { + "type": "evaluate", + "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" + }, + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/salary-management.json b/salary-management.json index e1e46ae..723f839 100644 --- a/salary-management.json +++ b/salary-management.json @@ -56,14 +56,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ], "expect": { "sidebarReady": true diff --git a/sales-management.json b/sales-management.json index ed892c1..a1d69a7 100644 --- a/sales-management.json +++ b/sales-management.json @@ -45,19 +45,21 @@ "steps": [ { "id": 0, - "name": "사이드바 초기화", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", - "script": "document.querySelector('.sidebar-scroll, [class*=\"sidebar\"] > div, nav[class*=\"menu\"]')?.scrollTo({top: 0, behavior: 'instant'})" + "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, + { "type": "wait", "duration": 300 }, { - "type": "wait", - "duration": 500 - } + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ], - "expected": "사이드바가 최상단으로 스크롤됨" + "expected": "사이드바 전체 메뉴가 펼쳐짐" }, { "id": 1, diff --git a/shipment-management.json b/shipment-management.json index 5b548e2..382d3a7 100644 --- a/shipment-management.json +++ b/shipment-management.json @@ -55,14 +55,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/subscription-management.json b/subscription-management.json index c9da87a..b36d9eb 100644 --- a/subscription-management.json +++ b/subscription-management.json @@ -48,14 +48,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/vacation-management.json b/vacation-management.json index 85cdd81..fe87757 100644 --- a/vacation-management.json +++ b/vacation-management.json @@ -71,14 +71,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바 스크롤을 최상단으로 이동하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", - "script": "document.querySelector('.sidebar-scroll, [data-sidebar], nav[class*=\"sidebar\"]')?.scrollTo({top: 0, behavior: 'instant'})" + "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ], "expect": { "sidebarReady": true diff --git a/vendor-ledger.json b/vendor-ledger.json index 51481b5..03e2d6a 100644 --- a/vendor-ledger.json +++ b/vendor-ledger.json @@ -42,19 +42,21 @@ "steps": [ { "id": 0, - "name": "사이드바 준비", - "description": "메뉴 탐색 전 사이드바를 최상단으로 스크롤", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { - "type": "scrollSidebarToTop", - "script": "document.querySelector('.sidebar-scroll, [class*=\"sidebar\"], nav')?.scrollTo({top:0,behavior:'smooth'})" + "type": "evaluate", + "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, + { "type": "wait", "duration": 300 }, { - "type": "wait", - "duration": 300 - } + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ], - "expected": "사이드바 최상단으로 스크롤 완료" + "expected": "사이드바 전체 메뉴가 펼쳐짐" }, { "id": 1, diff --git a/vendor-management.json b/vendor-management.json index 716ce94..269b24a 100644 --- a/vendor-management.json +++ b/vendor-management.json @@ -38,11 +38,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 메뉴 탐색 준비", - "description": "사이드바를 최상단으로 스크롤하고 메뉴 구조 파악", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ - { "type": "scroll", "target": "sidebar", "direction": "top", "description": "사이드바 최상단으로 스크롤" }, - { "type": "wait", "duration": 500 } + { + "type": "evaluate", + "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" + }, + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/withdrawal-management.json b/withdrawal-management.json index 49e216d..ce9df72 100644 --- a/withdrawal-management.json +++ b/withdrawal-management.json @@ -52,19 +52,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 준비", - "description": "사이드바 스크롤을 최상단으로 이동하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", - "script": "document.querySelector('.sidebar-scroll, [data-sidebar], nav[role=\"navigation\"]')?.scrollTo({top: 0, behavior: 'instant'})", - "description": "사이드바 스크롤 최상단 이동" + "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, + { "type": "wait", "duration": 300 }, { - "type": "wait", - "duration": 500, - "description": "스크롤 완료 대기" - } + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ], "expect": { "sidebarReady": true diff --git a/work-order-management.json b/work-order-management.json index 6da2df5..a3c962d 100644 --- a/work-order-management.json +++ b/work-order-management.json @@ -49,11 +49,19 @@ "steps": [ { "step": 0, - "name": "사이드바 메뉴 탐색 준비", - "description": "사이드바를 최상단으로 스크롤하고 메뉴 구조 파악", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ - { "type": "scroll", "target": "sidebar", "direction": "top", "description": "사이드바 최상단으로 스크롤" }, - { "type": "wait", "duration": 500 } + { + "type": "evaluate", + "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" + }, + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/work-performance.json b/work-performance.json index 47872c0..5d49bdf 100644 --- a/work-performance.json +++ b/work-performance.json @@ -48,14 +48,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ] }, { diff --git a/worker-screen.json b/worker-screen.json index 37c071f..df7053d 100644 --- a/worker-screen.json +++ b/worker-screen.json @@ -48,14 +48,19 @@ "steps": [ { "id": "step-0", - "name": "사이드바 초기화", - "description": "사이드바를 최상단으로 스크롤하여 메뉴 탐색 준비", + "name": "사이드바 메뉴 전체 펼치기", + "description": "모두 펼치기 버튼을 클릭하여 전체 메뉴를 펼친 후 메뉴 탐색 준비", "actions": [ { "type": "evaluate", "script": "document.querySelector('.sidebar-scroll')?.scrollTo({top:0,behavior:'instant'})" }, - { "type": "wait", "duration": 500 } + { "type": "wait", "duration": 300 }, + { + "type": "evaluate", + "script": "Array.from(document.querySelectorAll('button')).find(b => b.innerText?.includes('모두 펼치기'))?.click()" + }, + { "type": "wait", "duration": 2000 } ] }, {