diff options
author | George Roman <george.roman.99@gmail.com> | 2019-06-17 16:35:34 +0300 |
---|---|---|
committer | George Roman <george.roman.99@gmail.com> | 2019-07-21 15:56:23 +0300 |
commit | dec73e4cea93d34736c925d4bd62e57b7d664f6b (patch) | |
tree | e377a927b1f60cf6d0ffa46a682ff14275deb5ae /components/script/webdriver_handlers.rs | |
parent | 7d5b324bdac227d173d595116219cb8b9cbf1282 (diff) | |
download | servo-dec73e4cea93d34736c925d4bd62e57b7d664f6b.tar.gz servo-dec73e4cea93d34736c925d4bd62e57b7d664f6b.zip |
Implement tag name selector for FindElements WebDriver command
Diffstat (limited to 'components/script/webdriver_handlers.rs')
-rw-r--r-- | components/script/webdriver_handlers.rs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/components/script/webdriver_handlers.rs b/components/script/webdriver_handlers.rs index 05f02cebe93..2a5c6179da9 100644 --- a/components/script/webdriver_handlers.rs +++ b/components/script/webdriver_handlers.rs @@ -223,6 +223,25 @@ pub fn handle_find_elements_css( reply.send(node_ids).unwrap(); } +pub fn handle_find_elements_tag_name( + documents: &Documents, + pipeline: PipelineId, + selector: String, + reply: IpcSender<Result<Vec<String>, ()>>, +) { + let node_ids = documents + .find_document(pipeline) + .ok_or(()) + .and_then(|doc| Ok(doc.GetElementsByTagName(DOMString::from(selector)))) + .map(|nodes| { + nodes + .elements_iter() + .map(|x| x.upcast::<Node>().unique_id()) + .collect::<Vec<String>>() + }); + reply.send(node_ids).unwrap(); +} + pub fn handle_find_element_element_css( documents: &Documents, pipeline: PipelineId, |