pub struct Element {
pub remote_object_id: RemoteObjectId,
pub backend_node_id: BackendNodeId,
pub node_id: NodeId,
/* private fields */
}Expand description
Represents a DOM Element.
Fields§
§remote_object_id: RemoteObjectIdThe Unique object identifier
backend_node_id: BackendNodeIdIdentifier of the backend node.
node_id: NodeIdThe identifier of the node this element represents.
Implementations§
Source§impl Element
impl Element
Sourcepub async fn find_element(&self, selector: impl Into<String>) -> Result<Self>
pub async fn find_element(&self, selector: impl Into<String>) -> Result<Self>
Returns the first element in the document which matches the given CSS selector.
Sourcepub async fn find_elements(
&self,
selector: impl Into<String>,
) -> Result<Vec<Element>>
pub async fn find_elements( &self, selector: impl Into<String>, ) -> Result<Vec<Element>>
Return all Elements in the document that match the given selector
Sourcepub async fn bounding_box(&self) -> Result<BoundingBox>
pub async fn bounding_box(&self) -> Result<BoundingBox>
Returns the bounding box of the element (relative to the main frame)
Sourcepub async fn clickable_point(&self) -> Result<Point>
pub async fn clickable_point(&self) -> Result<Point>
Returns the best Point of this node to execute a click on.
Sourcepub async fn call_js_fn(
&self,
function_declaration: impl Into<String>,
await_promise: bool,
) -> Result<CallFunctionOnReturns>
pub async fn call_js_fn( &self, function_declaration: impl Into<String>, await_promise: bool, ) -> Result<CallFunctionOnReturns>
Submits a javascript function to the page and returns the evaluated result
§Example get the element as JSON object
let js_fn = "function() { return this; }";
let element_json = element.call_js_fn(js_fn, false).await?;§Execute an async javascript function
let js_fn = "async function() { return this; }";
let element_json = element.call_js_fn(js_fn, true).await?;Sourcepub async fn json_value(&self) -> Result<Value>
pub async fn json_value(&self) -> Result<Value>
Returns a JSON representation of this element.
Sourcepub async fn hover(&self) -> Result<&Self>
pub async fn hover(&self) -> Result<&Self>
Scrolls the element into view and uses a mouse event to move the mouse over the center of this element.
Sourcepub async fn scroll_into_view(&self) -> Result<&Self>
pub async fn scroll_into_view(&self) -> Result<&Self>
Scrolls the element into view.
Fails if the element’s node is not a HTML element or is detached from the document
Sourcepub async fn click(&self) -> Result<&Self>
pub async fn click(&self) -> Result<&Self>
This focuses the element by click on it
Bear in mind that if click() triggers a navigation this element may be
not exist anymore.
Sourcepub async fn type_str(&self, input: impl AsRef<str>) -> Result<&Self>
pub async fn type_str(&self, input: impl AsRef<str>) -> Result<&Self>
Type the input
§Example type text into an input element
let element = page.find_element("input#searchInput").await?;
element.click().await?.type_str("this goes into the input field").await?;Sourcepub async fn type_str_with_modifier(
&self,
input: impl AsRef<str>,
modifiers: i64,
) -> Result<&Self>
pub async fn type_str_with_modifier( &self, input: impl AsRef<str>, modifiers: i64, ) -> Result<&Self>
Type the input
§Example type text into an input element
let element = page.find_element("input#searchInput").await?;
element.click().await?.type_str("this goes into the input field").await?;Sourcepub async fn press_key(&self, key: impl AsRef<str>) -> Result<&Self>
pub async fn press_key(&self, key: impl AsRef<str>) -> Result<&Self>
Presses the key.
§Example type text into an input element and hit enter
let element = page.find_element("input#searchInput").await?;
element.click().await?.type_str("this goes into the input field").await?
.press_key("Enter").await?;Sourcepub async fn description(&self) -> Result<Node>
pub async fn description(&self) -> Result<Node>
The description of the element’s node
Sourcepub async fn attributes(&self) -> Result<Vec<String>>
pub async fn attributes(&self) -> Result<Vec<String>>
Attributes of the Element node in the form of flat array `[name1,
value1, name2, value2]
Sourcepub async fn attribute(
&self,
attribute: impl AsRef<str>,
) -> Result<Option<String>>
pub async fn attribute( &self, attribute: impl AsRef<str>, ) -> Result<Option<String>>
Returns the value of the element’s attribute
Sourcepub async fn iter_attributes(
&self,
) -> Result<impl Stream<Item = (String, Result<Option<String>>)> + '_>
pub async fn iter_attributes( &self, ) -> Result<impl Stream<Item = (String, Result<Option<String>>)> + '_>
A Stream over all attributes and their values
Sourcepub async fn inner_text(&self) -> Result<Option<String>>
pub async fn inner_text(&self) -> Result<Option<String>>
The inner text of this element.
Sourcepub async fn inner_html(&self) -> Result<Option<String>>
pub async fn inner_html(&self) -> Result<Option<String>>
The inner HTML of this element.
Sourcepub async fn outer_html(&self) -> Result<Option<String>>
pub async fn outer_html(&self) -> Result<Option<String>>
The outer HTML of this element.
Sourcepub async fn string_property(
&self,
property: impl AsRef<str>,
) -> Result<Option<String>>
pub async fn string_property( &self, property: impl AsRef<str>, ) -> Result<Option<String>>
Returns the string property of the element.
If the property is an empty String, None is returned.
Sourcepub async fn property(&self, property: impl AsRef<str>) -> Result<Option<Value>>
pub async fn property(&self, property: impl AsRef<str>) -> Result<Option<Value>>
Returns the javascript property of this element where property is
the name of the requested property of this element.
See also Element::inner_html.
Sourcepub async fn properties(&self) -> Result<HashMap<String, PropertyDescriptor>>
pub async fn properties(&self) -> Result<HashMap<String, PropertyDescriptor>>
Returns a map with all PropertyDescriptors of this element keyed by
their names
Sourcepub async fn screenshot(
&self,
format: CaptureScreenshotFormat,
) -> Result<Vec<u8>>
pub async fn screenshot( &self, format: CaptureScreenshotFormat, ) -> Result<Vec<u8>>
Scrolls the element into and takes a screenshot of it
Sourcepub async fn save_screenshot(
&self,
format: CaptureScreenshotFormat,
output: impl AsRef<Path>,
) -> Result<Vec<u8>>
pub async fn save_screenshot( &self, format: CaptureScreenshotFormat, output: impl AsRef<Path>, ) -> Result<Vec<u8>>
Save a screenshot of the element and write it to output