pub struct JsHandle {
inner: Weak<JsHandle>,
}Expand description
JsHandle represents an in-page JavaScript object. JsHandles can be created with the [method: Page.evaluateHandle]
method.
const windowHandle = await page.evaluateHandle(() => window);JsHandle prevents the referenced JavaScript object being garbage collected unless the handle is exposed with
[method: JsHandle.dispose]. JsHandles are auto-disposed when their origin frame gets navigated or the parent context
gets destroyed.
JsHandle instances can be used as an argument in [method: Page.evalOnSelector], [method: Page.evaluate] and
[method: Page.evaluateHandle] methods.
Fields§
§inner: Weak<JsHandle>Implementations§
Source§impl JsHandle
impl JsHandle
pub(crate) fn new(inner: Weak<Impl>) -> Self
pub(crate) fn guid(&self) -> Result<Str<Guid>, Error>
Sourcepub async fn get_property(&mut self, name: &str) -> Result<JsHandle, Arc<Error>>
pub async fn get_property(&mut self, name: &str) -> Result<JsHandle, Arc<Error>>
Fetches a single property from the referenced object.
Sourcepub async fn get_properties(
&mut self,
) -> Result<HashMap<String, JsHandle>, Arc<Error>>
pub async fn get_properties( &mut self, ) -> Result<HashMap<String, JsHandle>, Arc<Error>>
The method returns a map with own property names as keys and JsHandle instances for the property values.
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();pub async fn dispose(&mut self) -> Result<(), Arc<Error>>
Sourcepub async fn json_value<U>(&mut self) -> Result<U, Arc<Error>>where
U: DeserializeOwned,
pub async fn json_value<U>(&mut self) -> Result<U, Arc<Error>>where
U: DeserializeOwned,
Returns a JSON representation of the object. If the object has a toJSON function, it will not be called.
NOTE: The method will return an empty JSON object if the referenced object is not stringifiable. It will throw an error if the object has circular references.