зеркало из https://github.com/mozilla/gecko-dev.git
servo: Merge #6008 - Add support for getActiveElement webdriver command (from jgraham:webdriver_get_active_element); r=jdm
Source-Repo: https://github.com/servo/servo Source-Revision: 263b69cf7fd99bfc13eecc840f27cdcf1e8178cc
This commit is contained in:
Родитель
d5112b4904
Коммит
862596c885
|
@ -795,6 +795,8 @@ impl ScriptTask {
|
|||
webdriver_handlers::handle_find_element_css(&page, pipeline_id, selector, reply),
|
||||
WebDriverScriptCommand::FindElementsCSS(selector, reply) =>
|
||||
webdriver_handlers::handle_find_elements_css(&page, pipeline_id, selector, reply),
|
||||
WebDriverScriptCommand::GetActiveElement(reply) =>
|
||||
webdriver_handlers::handle_get_active_element(&page, pipeline_id, reply),
|
||||
WebDriverScriptCommand::GetElementTagName(node_id, reply) =>
|
||||
webdriver_handlers::handle_get_name(&page, pipeline_id, node_id, reply),
|
||||
WebDriverScriptCommand::GetElementText(node_id, reply) =>
|
||||
|
|
|
@ -85,6 +85,11 @@ pub fn handle_find_elements_css(page: &Rc<Page>, _pipeline: PipelineId, selector
|
|||
}).unwrap();
|
||||
}
|
||||
|
||||
pub fn handle_get_active_element(page: &Rc<Page>, _pipeline: PipelineId, reply: Sender<Option<String>>) {
|
||||
reply.send(page.document().root().r().GetActiveElement().map(
|
||||
|elem| NodeCast::from_ref(elem.root().r()).get_unique_id())).unwrap();
|
||||
}
|
||||
|
||||
pub fn handle_get_title(page: &Rc<Page>, _pipeline: PipelineId, reply: Sender<String>) {
|
||||
reply.send(page.document().root().r().Title()).unwrap();
|
||||
}
|
||||
|
|
|
@ -1253,7 +1253,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "webdriver"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/jgraham/webdriver-rust.git#c2038b4195ee8cd982079cc48d6a9d039f59f1fb"
|
||||
source = "git+https://github.com/jgraham/webdriver-rust.git#4065017191f1054b62f8c17c2b07c412111e0022"
|
||||
dependencies = [
|
||||
"hyper 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
|
|
@ -213,6 +213,17 @@ impl Handler {
|
|||
}
|
||||
}
|
||||
|
||||
fn handle_get_active_element(&self) -> WebDriverResult<WebDriverResponse> {
|
||||
let pipeline_id = self.get_root_pipeline();
|
||||
|
||||
let (sender, reciever) = channel();
|
||||
let ConstellationChan(ref const_chan) = self.constellation_chan;
|
||||
let cmd = WebDriverScriptCommand::GetActiveElement(sender);
|
||||
const_chan.send(ConstellationMsg::WebDriverCommand(pipeline_id, cmd)).unwrap();
|
||||
let value = reciever.recv().unwrap().map(|x| WebElement::new(x).to_json());
|
||||
Ok(WebDriverResponse::Generic(ValueResponse::new(value.to_json())))
|
||||
}
|
||||
|
||||
fn handle_get_element_tag_name(&self, element: &WebElement) -> WebDriverResult<WebDriverResponse> {
|
||||
let pipeline_id = self.get_root_pipeline();
|
||||
|
||||
|
@ -306,6 +317,7 @@ impl WebDriverHandler for Handler {
|
|||
WebDriverCommand::GetWindowHandles => self.handle_get_window_handles(),
|
||||
WebDriverCommand::FindElement(ref parameters) => self.handle_find_element(parameters),
|
||||
WebDriverCommand::FindElements(ref parameters) => self.handle_find_elements(parameters),
|
||||
WebDriverCommand::GetActiveElement => self.handle_get_active_element(),
|
||||
WebDriverCommand::GetElementText(ref element) => self.handle_get_element_text(element),
|
||||
WebDriverCommand::GetElementTagName(ref element) => self.handle_get_element_tag_name(element),
|
||||
WebDriverCommand::ExecuteScript(ref x) => self.handle_execute_script(x),
|
||||
|
|
|
@ -14,6 +14,7 @@ pub enum WebDriverScriptCommand {
|
|||
EvaluateJS(String, Sender<Result<EvaluateJSReply, ()>>),
|
||||
FindElementCSS(String, Sender<Result<Option<String>, ()>>),
|
||||
FindElementsCSS(String, Sender<Result<Vec<String>, ()>>),
|
||||
GetActiveElement(Sender<Option<String>>),
|
||||
GetElementTagName(String, Sender<Result<String, ()>>),
|
||||
GetElementText(String, Sender<Result<String, ()>>),
|
||||
GetTitle(Sender<String>)
|
||||
|
|
|
@ -1238,7 +1238,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "webdriver"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/jgraham/webdriver-rust.git#c2038b4195ee8cd982079cc48d6a9d039f59f1fb"
|
||||
source = "git+https://github.com/jgraham/webdriver-rust.git#4065017191f1054b62f8c17c2b07c412111e0022"
|
||||
dependencies = [
|
||||
"hyper 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
|
|
@ -1100,7 +1100,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "webdriver"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/jgraham/webdriver-rust.git#c2038b4195ee8cd982079cc48d6a9d039f59f1fb"
|
||||
source = "git+https://github.com/jgraham/webdriver-rust.git#4065017191f1054b62f8c17c2b07c412111e0022"
|
||||
dependencies = [
|
||||
"hyper 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
|
Загрузка…
Ссылка в новой задаче