[−][src]Struct thirtyfour::WebDriver
The WebDriver struct encapsulates an async Selenium WebDriver browser session. For the async driver, see sync::WebDriver.
Example:
use thirtyfour::WebDriver; let caps = serde_json::json!({ "browserName": "chrome", "version": "", "platform": "any" }); let driver = WebDriver::new("http://localhost:4444/wd/hub", caps).await?; // Navigate to mozilla.org. driver.get("https://mozilla.org").await?;
Methods
impl WebDriver
[src]
pub async fn new<'_>(
remote_server_addr: &'_ str,
capabilities: DesiredCapabilities
) -> WebDriverResult<Self>
[src]
remote_server_addr: &'_ str,
capabilities: DesiredCapabilities
) -> WebDriverResult<Self>
Create a new async WebDriver struct.
Example
use thirtyfour::WebDriver; let caps = serde_json::json!({ "browserName": "chrome", "version": "", "platform": "any" }); let driver = WebDriver::new("http://localhost:4444/wd/hub", caps).await?;
pub fn capabilities(&self) -> &DesiredCapabilities
[src]
Return the actual capabilities as returned by Selenium.
pub async fn close<'_>(&'_ self) -> WebDriverResult<()>
[src]
Close the current window.
pub async fn quit<'_>(&'_ self) -> WebDriverResult<()>
[src]
End the webdriver session.
pub async fn get<'_, S: Into<String>>(&'_ self, url: S) -> WebDriverResult<()>
[src]
Navigate to the specified URL.
pub async fn current_url<'_>(&'_ self) -> WebDriverResult<String>
[src]
Get the current URL as a String.
pub async fn page_source<'_>(&'_ self) -> WebDriverResult<String>
[src]
Get the page source as a String.
pub async fn title<'_>(&'_ self) -> WebDriverResult<String>
[src]
Get the page title as a String.
pub async fn find_element<'a, '_>(
&'_ self,
by: By<'a>
) -> WebDriverResult<WebElement>
[src]
&'_ self,
by: By<'a>
) -> WebDriverResult<WebElement>
Search for an element on the current page using the specified selector.
Example:
use thirtyfour::By; let elem = driver.find_element(By::Id("theElementId")).await?;
pub async fn find_elements<'a, '_>(
&'_ self,
by: By<'a>
) -> WebDriverResult<Vec<WebElement>>
[src]
&'_ self,
by: By<'a>
) -> WebDriverResult<Vec<WebElement>>
Search for all elements on the current page that match the specified selector.
Example:
let elems = driver.find_elements(By::Class("some-class")).await?; for elem in elems { println!("Found element: {}", elem); }
pub async fn execute_script<'_, '_>(
&'_ self,
script: &'_ str,
args: Vec<Value>
) -> WebDriverResult<Value>
[src]
&'_ self,
script: &'_ str,
args: Vec<Value>
) -> WebDriverResult<Value>
Execute the specified Javascript synchronously and return the result as a serde_json::Value.
pub async fn execute_async_script<'_, '_>(
&'_ self,
script: &'_ str,
args: Vec<Value>
) -> WebDriverResult<Value>
[src]
&'_ self,
script: &'_ str,
args: Vec<Value>
) -> WebDriverResult<Value>
Execute the specified Javascrypt asynchronously and return the result as a serde_json::Value.
pub async fn current_window_handle<'_>(
&'_ self
) -> WebDriverResult<WindowHandle>
[src]
&'_ self
) -> WebDriverResult<WindowHandle>
Get the current window handle.
pub async fn window_handles<'_>(&'_ self) -> WebDriverResult<Vec<WindowHandle>>
[src]
Get all window handles for the current session.
pub async fn mazimize_window<'_>(&'_ self) -> WebDriverResult<()>
[src]
Maximize the current window.
pub async fn minimize_window<'_>(&'_ self) -> WebDriverResult<()>
[src]
Minimize the current window.
pub async fn fullscreen_window<'_>(&'_ self) -> WebDriverResult<()>
[src]
Make the current window fullscreen.
pub async fn get_window_rect<'_>(&'_ self) -> WebDriverResult<Rect>
[src]
Get the current window rectangle, in pixels.
The returned Rect struct has members x
, y
, width
, height
,
all i32.
pub async fn set_window_rect<'_>(
&'_ self,
rect: OptionRect
) -> WebDriverResult<()>
[src]
&'_ self,
rect: OptionRect
) -> WebDriverResult<()>
Set the current window rectangle, in pixels.
This requires an OptionRect, which is similar to Rect except all members are wrapped in Option.
Example:
use thirtyfour::OptionRect; let r = OptionRect::new().with_size(1280, 720); driver.set_window_rect(r).await?;
You can also convert from a Rect if you want to get the window size and modify it before setting it again.
let rect = driver.get_window_rect().await?; let option_rect = OptionRect::from(rect); driver.set_window_rect(option_rect.with_width(1024)).await?;
pub async fn back<'_>(&'_ self) -> WebDriverResult<()>
[src]
Go back. This is equivalent to clicking the browser's back button.
pub async fn forward<'_>(&'_ self) -> WebDriverResult<()>
[src]
Go forward. This is equivalent to clicking the browser's forward button.
pub async fn refresh<'_>(&'_ self) -> WebDriverResult<()>
[src]
Refresh the current page.
pub async fn set_timeouts<'_>(
&'_ self,
timeouts: TimeoutConfiguration
) -> WebDriverResult<()>
[src]
&'_ self,
timeouts: TimeoutConfiguration
) -> WebDriverResult<()>
Set all timeouts for the current session.
Example:
use thirtyfour::TimeoutConfiguration; use std::time::Duration; let timeouts = TimeoutConfiguration::new(None, Some(Duration::new(30, 0)), None); driver.set_timeouts(timeouts).await?;
pub async fn implicitly_wait<'_>(
&'_ self,
time_to_wait: Duration
) -> WebDriverResult<()>
[src]
&'_ self,
time_to_wait: Duration
) -> WebDriverResult<()>
Set the implicit wait timeout.
pub async fn set_script_timeout<'_>(
&'_ self,
time_to_wait: Duration
) -> WebDriverResult<()>
[src]
&'_ self,
time_to_wait: Duration
) -> WebDriverResult<()>
Set the script timeout.
pub async fn set_page_load_timeout<'_>(
&'_ self,
time_to_wait: Duration
) -> WebDriverResult<()>
[src]
&'_ self,
time_to_wait: Duration
) -> WebDriverResult<()>
Set the page load timeout.
pub fn action_chain(&self) -> ActionChain
[src]
Create a new action chain for this session.
Example:
driver.action_chain().drag_and_drop_element(elem_src, elem_target).perform().await?;
pub async fn get_cookies<'_>(&'_ self) -> WebDriverResult<Vec<Cookie>>
[src]
Get all cookies.
pub async fn get_cookie<'_, '_>(
&'_ self,
name: &'_ str
) -> WebDriverResult<Cookie>
[src]
&'_ self,
name: &'_ str
) -> WebDriverResult<Cookie>
Get the specified cookie.
pub async fn delete_cookie<'_, '_>(
&'_ self,
name: &'_ str
) -> WebDriverResult<()>
[src]
&'_ self,
name: &'_ str
) -> WebDriverResult<()>
Delete the specified cookie.
pub async fn delete_all_cookies<'_>(&'_ self) -> WebDriverResult<()>
[src]
Delete all cookies.
pub async fn add_cookie<'_>(&'_ self, cookie: Cookie) -> WebDriverResult<()>
[src]
Add the specified cookie.
Example:
use thirtyfour::Cookie; let cookie = Cookie::new("key", serde_json::json!("value")); driver.add_cookie(cookie).await?;
pub async fn screenshot_as_base64<'_>(&'_ self) -> WebDriverResult<String>
[src]
Take a screenshot of the current window and return it as a base64-encoded String.
pub async fn screenshot_as_png<'_>(&'_ self) -> WebDriverResult<Vec<u8>>
[src]
Take a screenshot of the current window and return it as PNG bytes.
pub async fn screenshot<'_, '_>(&'_ self, path: &'_ Path) -> WebDriverResult<()>
[src]
Take a screenshot of the current window and write it to the specified filename.
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for WebDriver
impl Send for WebDriver
impl Sync for WebDriver
impl Unpin for WebDriver
impl !UnwindSafe for WebDriver
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,