Run web script
현재 페이지 컨텍스트에서 임의의 JavaScript 코드를 실행하고 결과를 측정 값에 저장합니다.
현재 페이지의 컨텍스트에서 임의의 JavaScript 코드를 실행하고 결과를 측정 값에 저장합니다. 카테고리 공통 입력 필드는 Web Browser 명령어 개요 페이지를 참고하세요.
매개변수
| Argument | Type | Description |
|---|---|---|
| Browser alias | 텍스트 | 브라우저 세션 별칭. 비우면 default 사용. |
| JavaScript code | 텍스트 | 실행할 JS 코드. return ...; 으로 값을 돌려주거나 단일 표현식만 작성 가능. |
| Delay | 숫자 | 명령어 실행 후 대기 시간 (Milliseconds) |
| Description | 텍스트 | 명령어 설명 (선택). |
반환값
반환값
JSON 문자열로 직렬화된 JS 실행 결과. 성공 시 1, 실패 시 0.
설명
입력한 코드는 내부적으로 JSON.stringify((function(){ <사용자 코드> ; })()) 형태로 감싸 페이지 컨텍스트에서 실행됩니다. 페이지의 document, window, jQuery 등 페이지에 로드된 모든 객체에 접근할 수 있으며, 결과는 항상 JSON 문자열로 직렬화되어 측정 값에 저장됩니다.
핵심 규칙
- 값을 받으려면
return ...;으로 명시적으로 반환. return 이 없으면 측정 값은undefined문자열이 됩니다. - 즉시실행함수로 감싸지므로
var/let/function선언이 페이지 전역을 오염시키지 않습니다. - Promise / await 도 자동 처리됩니다.
fetch결과 등을return await fetch(...).then(r => r.text());형태로 받을 수 있습니다. - Aurora 변수도 코드 내부에 삽입 가능합니다. 예:
const id = "[targetId]"; return document.getElementById(id)?.textContent;
사용 예시
| JavaScript code | 설명 / 측정 값 |
|---|---|
return document.title; | 페이지 제목 문자열 |
return document.querySelectorAll('table#data tr').length; | 표의 행 개수 (숫자) |
return document.getElementById('amount').innerText.trim(); | 특정 요소의 텍스트 |
const r = document.getElementById('item').getBoundingClientRect(); return { x:r.left, y:r.top }; | 객체 반환 → JSON 문자열로 저장 |
return [...document.querySelectorAll('.row')].map(e => e.innerText); | 여러 요소의 텍스트 배열 |
document.querySelector('.disabled').classList.remove('disabled'); return 'ok'; | DOM 직접 수정 후 상태 반환 |
const r = await fetch('/api/health'); return { status:r.status, ok:r.ok }; | 비동기 fetch 결과 |
주의사항
- 측정 값이
undefined로 저장됐다면return누락이 가장 흔한 원인입니다. - CSP(Content-Security-Policy) 가
unsafe-eval을 금지하는 사이트에서는 사용자 코드 내부의eval()호출이 실패합니다 (EvaluateAsync 자체는 동작). - Shadow DOM 내부 요소는
document.querySelector로 접근할 수 없습니다.customElement.shadowRoot.querySelector(...)처럼 명시적으로 진입해야 합니다. - 사용자 코드 내부에서
throw가 발생하면 명령은 실패(반환0) 로 처리되고, 에러 메시지는 디버그 메시지에 기록됩니다.