콘텐츠로 이동

JSHandle

Source URL: https://playwright.dev/docs/api/class-jshandle

JSHandle은 페이지 내 JavaScript 객체를 나타냅니다. JSHandle은 page.evaluateHandle() 메서드로 생성할 수 있습니다.

const windowHandle = await page.evaluateHandle(() => window);
// ...

JSHandle은 jsHandle.dispose()로 핸들을 해제하지 않는 한, 참조된 JavaScript 객체가 가비지 컬렉션되지 않도록 합니다. JSHandle은 원본 프레임이 탐색되거나 부모 컨텍스트가 파괴되면 자동으로 해제됩니다.

JSHandle 인스턴스는 page.$eval(), page.evaluate(), page.evaluateHandle() 메서드의 인수로 사용할 수 있습니다.


v1.9 이전에 추가됨 jsHandle.asElement

객체 핸들이 ElementHandle의 인스턴스인 경우 null 또는 객체 핸들 자체를 반환합니다.

사용법

jsHandle.asElement();

반환값


v1.9 이전에 추가됨 jsHandle.dispose

jsHandle.dispose 메서드는 element handle에 대한 참조를 중지합니다.

사용법

await jsHandle.dispose();

반환값


v1.9 이전에 추가됨 jsHandle.evaluate

pageFunction의 반환값을 반환합니다.

이 메서드는 이 핸들을 pageFunction의 첫 번째 인수로 전달합니다.

pageFunctionPromise를 반환하면, handle.evaluate는 해당 promise가 resolve될 때까지 기다린 뒤 그 값을 반환합니다.

사용법

const tweetHandle = await page.$('.tweet .retweets');
expect(await tweetHandle.evaluate(node => node.innerText)).toBe('10 retweets');

인수

페이지 컨텍스트에서 평가할 함수입니다.

pageFunction에 전달할 선택적 인수입니다.

반환값


v1.9 이전에 추가됨 jsHandle.evaluateHandle

pageFunction의 반환값을 JSHandle로 반환합니다.

이 메서드는 이 핸들을 pageFunction의 첫 번째 인수로 전달합니다.

jsHandle.evaluatejsHandle.evaluateHandle의 유일한 차이는 jsHandle.evaluateHandleJSHandle을 반환한다는 점입니다.

jsHandle.evaluateHandle에 전달된 함수가 Promise를 반환하면, jsHandle.evaluateHandle은 해당 promise가 resolve될 때까지 기다린 뒤 그 값을 반환합니다.

자세한 내용은 page.evaluateHandle()을 참고하세요.

사용법

await jsHandle.evaluateHandle(pageFunction);
await jsHandle.evaluateHandle(pageFunction, arg);

인수

페이지 컨텍스트에서 평가할 함수입니다.

pageFunction에 전달할 선택적 인수입니다.

반환값


v1.9 이전에 추가됨 jsHandle.getProperties

이 메서드는 자체 속성 이름(own property names) 을 키로 하고, 해당 속성 값의 JSHandle 인스턴스를 값으로 하는 맵을 반환합니다.

사용법

const handle = await page.evaluateHandle(() => ({ window, document }));
const properties = await handle.getProperties();
const windowHandle = properties.get('window');
const documentHandle = properties.get('document');
await handle.dispose();

반환값


v1.9 이전에 추가됨 jsHandle.getProperty

참조된 객체에서 단일 속성을 가져옵니다.

사용법

await jsHandle.getProperty(propertyName);

인수

가져올 속성

반환값


v1.9 이전에 추가됨 jsHandle.jsonValue

객체의 JSON 표현을 반환합니다. 객체에 toJSON 함수가 있어도 호출되지 않습니다.

note

참조된 객체를 문자열화할 수 없는 경우 이 메서드는 빈 JSON 객체를 반환합니다. 객체에 순환 참조가 있으면 오류를 발생시킵니다.

사용법

await jsHandle.jsonValue();

반환값