mirror of
https://github.com/servo/servo.git
synced 2025-08-05 21:50:18 +01:00
Implement SwitchToWindow WebDriver command
This commit is contained in:
parent
6824f42b11
commit
96c1ce2dd6
1 changed files with 21 additions and 0 deletions
|
@ -44,6 +44,7 @@ use std::thread;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
use webdriver::capabilities::{Capabilities, CapabilitiesMatching};
|
use webdriver::capabilities::{Capabilities, CapabilitiesMatching};
|
||||||
|
use webdriver::command::SwitchToWindowParameters;
|
||||||
use webdriver::command::{
|
use webdriver::command::{
|
||||||
AddCookieParameters, GetParameters, JavascriptCommandParameters, LocatorParameters,
|
AddCookieParameters, GetParameters, JavascriptCommandParameters, LocatorParameters,
|
||||||
};
|
};
|
||||||
|
@ -841,6 +842,23 @@ impl Handler {
|
||||||
self.switch_to_frame(WebDriverFrameId::Parent)
|
self.switch_to_frame(WebDriverFrameId::Parent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// https://w3c.github.io/webdriver/#switch-to-window
|
||||||
|
fn handle_switch_to_window(
|
||||||
|
&mut self,
|
||||||
|
parameters: &SwitchToWindowParameters,
|
||||||
|
) -> WebDriverResult<WebDriverResponse> {
|
||||||
|
// For now we assume there is only one window which has the current
|
||||||
|
// session's id as window id
|
||||||
|
if parameters.handle == self.session.as_ref().unwrap().id.to_string() {
|
||||||
|
Ok(WebDriverResponse::Void)
|
||||||
|
} else {
|
||||||
|
Err(WebDriverError::new(
|
||||||
|
ErrorStatus::NoSuchWindow,
|
||||||
|
"No such window",
|
||||||
|
))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn switch_to_frame(
|
fn switch_to_frame(
|
||||||
&mut self,
|
&mut self,
|
||||||
frame_id: WebDriverFrameId,
|
frame_id: WebDriverFrameId,
|
||||||
|
@ -1435,6 +1453,9 @@ impl WebDriverHandler<ServoExtensionRoute> for Handler {
|
||||||
self.handle_switch_to_frame(parameters)
|
self.handle_switch_to_frame(parameters)
|
||||||
},
|
},
|
||||||
WebDriverCommand::SwitchToParentFrame => self.handle_switch_to_parent_frame(),
|
WebDriverCommand::SwitchToParentFrame => self.handle_switch_to_parent_frame(),
|
||||||
|
WebDriverCommand::SwitchToWindow(ref parameters) => {
|
||||||
|
self.handle_switch_to_window(parameters)
|
||||||
|
},
|
||||||
WebDriverCommand::FindElement(ref parameters) => self.handle_find_element(parameters),
|
WebDriverCommand::FindElement(ref parameters) => self.handle_find_element(parameters),
|
||||||
WebDriverCommand::FindElements(ref parameters) => self.handle_find_elements(parameters),
|
WebDriverCommand::FindElements(ref parameters) => self.handle_find_elements(parameters),
|
||||||
WebDriverCommand::FindElementElement(ref element, ref parameters) => {
|
WebDriverCommand::FindElementElement(ref element, ref parameters) => {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue