pub trait Driver: Send + Sync {
Show 32 methods
// Required methods
fn platform(&self) -> Platform;
fn tree<'life0, 'async_trait>(
&'life0 self,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<A11yNode, ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn find<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<bool, ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn find_one<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<Option<A11yNode>, ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn find_all<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<Vec<A11yNode>, ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn find_norm_coord<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
) -> Pin<Box<dyn Future<Output = Result<Option<(f64, f64)>, ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn find_text_by_ocr<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
text: &'life1 str,
locales: &'life2 [String],
recognition_level: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<Option<OcrFrame>, ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn system_popups<'life0, 'async_trait>(
&'life0 self,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<Vec<SystemPopup>, ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn system_popup_action<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
popup_id: &'life1 str,
button_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<bool, ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn wait_for<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
timeout: Duration,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<A11yNode, ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn tap<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn tap_with_mode<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
mode: TapMode,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn tap_at_norm_coord<'life0, 'async_trait>(
&'life0 self,
nx: f64,
ny: f64,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn tap_by_id<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn double_tap<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn long_press<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
duration: Duration,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn fill<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
text: &'life2 str,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn clear<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn press_key<'life0, 'async_trait>(
&'life0 self,
key: KeyName,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn scroll<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
direction: SwipeDirection,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn swipe_once<'life0, 'async_trait>(
&'life0 self,
direction: SwipeDirection,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn swipe_at_norm_coord<'life0, 'async_trait>(
&'life0 self,
from: (f64, f64),
to: (f64, f64),
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn hide_keyboard<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn back<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn set_orientation<'life0, 'async_trait>(
&'life0 self,
orientation: Orientation,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn foreground<'life0, 'life1, 'async_trait>(
&'life0 self,
bundle_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn webview_eval<'life0, 'life1, 'async_trait>(
&'life0 self,
js: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Value, ExpectationFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
// Provided methods
fn as_ios_driver(&self) -> Option<&IosDriver> { ... }
fn set_target_bundle_id(&mut self, _bundle: &str) { ... }
fn set_auto_activate(&mut self, _activate: bool) { ... }
fn set_force_key_events(&mut self, _force: bool) { ... }
fn set_session_id(&mut self, _id: Option<String>) { ... }
}Expand description
Sense + act capabilities for a single device. Two-trait architecture
pair with smix_sdk::DeviceControl (sim/host control in smix-sdk).
Signatures intentionally match iOS impl (IosDriver inherent methods)
1:1 so the trait impl is a pure delegation layer.
Required Methods§
Sourcefn tree<'life0, 'async_trait>(
&'life0 self,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<A11yNode, ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn tree<'life0, 'async_trait>(
&'life0 self,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<A11yNode, ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Fetch full a11y tree (GET /tree).
Sourcefn find<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<bool, ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn find<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<bool, ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Boolean existence quick-probe.
Sourcefn find_one<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<Option<A11yNode>, ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn find_one<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<Option<A11yNode>, ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Resolve selector → single matching node.
Sourcefn find_all<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<Vec<A11yNode>, ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn find_all<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<Vec<A11yNode>, ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Resolve selector → all matching nodes.
Sourcefn find_norm_coord<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
) -> Pin<Box<dyn Future<Output = Result<Option<(f64, f64)>, ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn find_norm_coord<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
) -> Pin<Box<dyn Future<Output = Result<Option<(f64, f64)>, ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Resolve selector → centroid as viewport-normalized (nx, ny).
Sourcefn find_text_by_ocr<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
text: &'life1 str,
locales: &'life2 [String],
recognition_level: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<Option<OcrFrame>, ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn find_text_by_ocr<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
text: &'life1 str,
locales: &'life2 [String],
recognition_level: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<Option<OcrFrame>, ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Apple Vision / ML Kit OCR find text in current screenshot.
recognition_level is "accurate" or "fast".
Sourcefn system_popups<'life0, 'async_trait>(
&'life0 self,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<Vec<SystemPopup>, ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn system_popups<'life0, 'async_trait>(
&'life0 self,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<Vec<SystemPopup>, ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
List visible system-level popups (alerts, permission dialogs).
Sourcefn system_popup_action<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
popup_id: &'life1 str,
button_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<bool, ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn system_popup_action<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
popup_id: &'life1 str,
button_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<bool, ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Tap a button on a system popup by id.
Sourcefn wait_for<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
timeout: Duration,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<A11yNode, ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn wait_for<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
timeout: Duration,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<A11yNode, ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Wait until selector resolves (returns matched node when ready).
Sourcefn tap<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn tap<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Tap an element (default mode = element-anchored coord tap).
Sourcefn tap_with_mode<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
mode: TapMode,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn tap_with_mode<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
mode: TapMode,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Tap with explicit mode (Path A vs Path B).
Sourcefn tap_at_norm_coord<'life0, 'async_trait>(
&'life0 self,
nx: f64,
ny: f64,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn tap_at_norm_coord<'life0, 'async_trait>(
&'life0 self,
nx: f64,
ny: f64,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Tap at viewport-normalized coordinate (§9 #3 escape hatch).
Sourcefn tap_by_id<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn tap_by_id<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Tap by accessibility identifier via the swift /tap-by-id
route (IOHID synthesize at element-frame center).
Sourcefn double_tap<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn double_tap<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Double-tap a selector.
Sourcefn long_press<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
duration: Duration,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn long_press<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
duration: Duration,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Long-press a selector for duration.
Sourcefn fill<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
text: &'life2 str,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn fill<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
text: &'life2 str,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Fill text into a focused / matched input.
Sourcefn clear<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn clear<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
include: Option<IncludeScope>,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Clear text from a focused / matched input.
Sourcefn press_key<'life0, 'async_trait>(
&'life0 self,
key: KeyName,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn press_key<'life0, 'async_trait>(
&'life0 self,
key: KeyName,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Press a named key (Return / Tab / Backspace / etc).
Sourcefn scroll<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
direction: SwipeDirection,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn scroll<'life0, 'life1, 'async_trait>(
&'life0 self,
selector: &'life1 Selector,
direction: SwipeDirection,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Scroll until a selector is visible.
Sourcefn swipe_once<'life0, 'async_trait>(
&'life0 self,
direction: SwipeDirection,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn swipe_once<'life0, 'async_trait>(
&'life0 self,
direction: SwipeDirection,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
One-shot swipe in a direction (no probe loop).
Sourcefn swipe_at_norm_coord<'life0, 'async_trait>(
&'life0 self,
from: (f64, f64),
to: (f64, f64),
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn swipe_at_norm_coord<'life0, 'async_trait>(
&'life0 self,
from: (f64, f64),
to: (f64, f64),
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Swipe between two viewport-normalized coords.
Sourcefn hide_keyboard<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn hide_keyboard<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Dismiss the keyboard.
Sourcefn back<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn back<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Trigger “back” gesture (iOS edge-swipe / Android KEYCODE_BACK).
Sourcefn set_orientation<'life0, 'async_trait>(
&'life0 self,
orientation: Orientation,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn set_orientation<'life0, 'async_trait>(
&'life0 self,
orientation: Orientation,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Rotate the device.
Sourcefn foreground<'life0, 'life1, 'async_trait>(
&'life0 self,
bundle_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn foreground<'life0, 'life1, 'async_trait>(
&'life0 self,
bundle_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Bring app to foreground.
Sourcefn webview_eval<'life0, 'life1, 'async_trait>(
&'life0 self,
js: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Value, ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn webview_eval<'life0, 'life1, 'async_trait>(
&'life0 self,
js: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Value, ExpectationFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Evaluate JavaScript in a WebView (iOS: fixture bridge :28080; Android: Chrome DevTools Protocol via adb forward).
Provided Methods§
Sourcefn as_ios_driver(&self) -> Option<&IosDriver>
fn as_ios_driver(&self) -> Option<&IosDriver>
iOS-only escape hatch: access IosDriver’s inherent
runner() for capsule recording (start_record / stop_record) +
describe() aggregation. Android impl returns None. Default
None so non-iOS impls don’t need to implement.
Sourcefn set_target_bundle_id(&mut self, _bundle: &str)
fn set_target_bundle_id(&mut self, _bundle: &str)
Set the target bundle id sent to the runner. For iOS this
becomes the App-Bundle-Id header on every request so the
runner’s resolveApp() rebinds
XCUIApplication(bundleIdentifier:) per request. Default no-op
— only iOS currently uses this; Android path stays unaffected.
Sourcefn set_auto_activate(&mut self, _activate: bool)
fn set_auto_activate(&mut self, _activate: bool)
Enable App-Activate: true header on every request so the iOS
runner calls .activate() on the resolved target before
operating. Default no-op.
Sourcefn set_force_key_events(&mut self, _force: bool)
fn set_force_key_events(&mut self, _force: bool)
Force key-event dispatch for text input, bypassing a11y-focus
resolution. Wires as the Input-Dispatch-Mode: key-events
header. Default no-op.
Sourcefn set_session_id(&mut self, _id: Option<String>)
fn set_session_id(&mut self, _id: Option<String>)
v1.0.3 — attach a Session-Id header to every subsequent
request. Set to Some(id) after POST /session/open; set to
None to revert to the legacy per-request rebind path (which
is rate-limited to at most one .activate() per 5 s per
bundle-id as of v1.0.2). Default no-op — only impls backed by
an HTTP runner override.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".