aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/webdriver_handlers.rs
diff options
context:
space:
mode:
authorGeorge Roman <george.roman.99@gmail.com>2019-03-03 10:28:10 +0200
committerGeorge Roman <george.roman.99@gmail.com>2019-03-09 16:56:51 +0200
commit46cd0d17ee728c2ff28553e560b8d3458149f76c (patch)
treee33bfb1bcc2cf771ea5ebf9c03e2f0566627f31a /components/script/webdriver_handlers.rs
parentdb29cb01b0450c29d0ac45c6de2819a4f87e400a (diff)
downloadservo-46cd0d17ee728c2ff28553e560b8d3458149f76c.tar.gz
servo-46cd0d17ee728c2ff28553e560b8d3458149f76c.zip
Implement WebDriver FindElementFromElement command
Diffstat (limited to 'components/script/webdriver_handlers.rs')
-rw-r--r--components/script/webdriver_handlers.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/components/script/webdriver_handlers.rs b/components/script/webdriver_handlers.rs
index 3113fb0a527..89e2df12c9d 100644
--- a/components/script/webdriver_handlers.rs
+++ b/components/script/webdriver_handlers.rs
@@ -203,6 +203,23 @@ pub fn handle_find_elements_css(
reply.send(node_ids).unwrap();
}
+pub fn handle_find_element_element_css(
+ documents: &Documents,
+ pipeline: PipelineId,
+ element_id: String,
+ selector: String,
+ reply: IpcSender<Result<Option<String>, ()>>,
+) {
+ let node_id = find_node_by_unique_id(documents, pipeline, element_id)
+ .ok_or(())
+ .and_then(|node| {
+ node.query_selector(DOMString::from(selector))
+ .map_err(|_| ())
+ })
+ .map(|node| node.map(|x| x.upcast::<Node>().unique_id()));
+ reply.send(node_id).unwrap();
+}
+
pub fn handle_focus_element(
documents: &Documents,
pipeline: PipelineId,