“저장 버튼을 눌러 줘”라는 요청은 단순해 보인다. 그런데 페이지에 같은 이름이 두 개라면 목록의 첫 항목이 맞는지 알 수 없다. 나는 북극성에서 하나를 골라 진행하는 대신 모호함을 남기고, 실제 요청에 맞는 조건을 더 읽도록 했다.

순서로 고르면 화면 변화가 의미를 바꾼다

같은 버튼이 상단과 하단, 본문과 팝업에 함께 있을 수 있다. DOM 순서는 사용자에게 보이는 업무 순서와 같지 않다. 반응형 레이아웃이나 새 패널 때문에 순서가 바뀌면 어제 맞던 첫 항목이 오늘 다른 동작이 된다.

그래서 현재 목록에서 이름과 역할, 필요한 경우 링크까지 비교한 뒤 정확히 하나일 때만 진행한다. 이것은 단순히 오류를 많이 내는 정책이 아니라 근거 없는 선택을 실행하지 않는 정책이다. 자료가 부족한 상태를 드러내야 다음 조회에서 실제로 부족한 조건을 채울 수 있다.

부분 이름은 검색 단서이고 선택 조건은 따로다

find의 검색어는 후보를 모으는 데 쓰지만 최종 이름 비교는 부분 문자열 포함으로 끝내지 않는다. core의 matchingTargets는 공백과 대소문자를 정리해 이름을 정확히 비교한다. “저장”과 “임시저장”을 같은 의미라고 자동 합치지 않는다.

편의 page API의 locator는 정확한 role과 name, 선택적인 href를 요구한다. 이 래퍼의 비교와 core의 정규화 방식은 완전히 같은 구현은 아니다. 실제로 어떤 API를 쓰는지에 맞춰 조건을 확인해야 한다. 한쪽의 관대한 비교를 다른 쪽의 자동 보완이라고 기대하지 않게 설명한다.

현재 조각이 전부인지도 확인한다

이번 반환 목록에서 하나만 맞아도 hasMore가 있으면 아직 다른 후보가 남아 있을 수 있다. browser.flow와 page locator는 이 경우 잘린 목록으로 멈춘다. 목록 한도를 넘는 페이지에서 첫 조각만 보고 유일하다고 판단하지 않는다.

더 읽을 때는 조건을 좁히고 실제 위치와 역할을 확인한다. 단순히 limit를 키우는 것만으로 대상의 의미가 명확해지는 것은 아니다. 같은 이름이 많은 경우에는 해당 패널이나 링크, 문서의 소속부터 알아야 한다. “하나만 남았다”는 숫자와 “그 하나가 요청한 대상이다”라는 판단을 나눴다.

모호함을 고치는 방법도 제한한다

화면 안에 있는 항목만 보겠다는 조건이 실제 요청과 맞으면 유용할 수 있다. 하지만 실패를 없애려고 보이는 첫 항목을 임의로 고르면 모호함을 숨기는 것뿐이다. 이전 재사용 시험에서도 대상 표현의 보완과 원래 단계 보존을 따로 기록했다. 같은 중복이 계속 보인다면 대기 시간만 늘려도 선택 근거가 생기지 않는다. 달라진 조건 없이 같은 조회를 반복하는 대신 표현을 다시 읽어야 한다.

현재 flow는 유일한 대상이어도 disabled나 sensitive면 행동을 거절한다. 유일성은 행동 가능성의 한 조건일 뿐 전체 허가가 아니다. 역할과 이름이 맞는다는 이유로 비활성 상태나 사용자 인증 인계를 무시하지 않는다. 선택의 정밀도와 실제 실행 경계를 함께 유지했다.

입력 0회라는 결과도 성공 근거다

page API의 fixture 시험은 이름 중복을 만들고 fill이 TARGET_AMBIGUOUS로 끝나는지 본다. 그 뒤 mutations가 0인지 확인한다. 오류 문구만 맞아도 앞에서 이미 입력했을 수 있으므로 실제 변경 횟수까지 보는 것이 중요하다.

여기서는 현재 선택 코드와 해당 시험을 읽었다. 새로 실제 계정의 버튼을 눌러 비교한 결과는 아니다. 별도로 만든 합성 모듈은 잘림과 중복, 명시 범위를 독립 시험하고 공개 ZIP으로 제공한다. 원래 제품 코드의 검토와 새 공유 모듈의 실행 시험은 서로 다른 근거로 남긴다.

멈추는 이유를 다음 입력의 재료로 남긴다

업무 도구가 모호하다고 멈출 때는 무엇이 중복됐는지와 어떤 조건이 부족한지 알 수 있어야 한다. 그래야 에이전트가 같은 명령을 반복하지 않고 더 정확한 조회를 선택한다. 무조건 실행하는 편의보다 잘못된 선택 전에 멈출 수 있는 설명이 필요했다.

홈페이지와 업무 프로그램의 버튼도 이름과 역할을 명확히 만들면 이런 비용을 줄일 수 있다. 나는 선택 실패를 숨기지 않고 구조를 개선하는 자료로 삼으려 한다. 아래 공유 모듈에서 유일·모호·잘림·이전 관찰·프레임 조건의 실제 합성 기록을 직접 비교할 수 있다.