diff --git a/src/marionette/message.rs b/src/marionette/message.rs index b7af4a0..476213e 100644 --- a/src/marionette/message.rs +++ b/src/marionette/message.rs @@ -117,4 +117,6 @@ pub enum Command { NewWindow, #[serde(rename = "WebDriver:SwitchToWindow")] SwitchToWindow(SwitchToWindowParams), + #[serde(rename = "WebDriver:FullscreenWindow")] + FullscreenWindow, } diff --git a/src/marionette/mod.rs b/src/marionette/mod.rs index 89ec71c..15788d3 100644 --- a/src/marionette/mod.rs +++ b/src/marionette/mod.rs @@ -183,6 +183,13 @@ impl Marionette { Ok(()) } + pub async fn fullscreen(&mut self) -> Result<(), CommandError> { + let res: serde_json::Value = + self.conn.send_message(Command::FullscreenWindow).await?.unwrap(); + debug!("Received message: {:?}", res); + Ok(()) + } + pub async fn get_title(&mut self) -> Result { let res: GetTitleResponse = self.conn.send_message(Command::GetTitle).await?.unwrap(); diff --git a/src/session.rs b/src/session.rs index 1142864..2b004d0 100644 --- a/src/session.rs +++ b/src/session.rs @@ -143,7 +143,10 @@ impl Session { if window.is_none() { window = Some(self.marionette.new_window().await?); } - windowmap.insert(monitor.name, window.take().unwrap()); + let w = window.take().unwrap(); + self.marionette.switch_to_window(w.clone(), false).await?; + self.marionette.fullscreen().await?; + windowmap.insert(monitor.name, w); } trace!("Built window map: {:?}", windowmap); Ok(windowmap)