Struct Locator
pub struct Locator { /* private fields */ }Implementations§
§impl Locator
impl Locator
pub fn new(
provider: Arc<dyn Provider>,
root: Option<ElementData>,
selector: &str,
) -> Locator
pub fn new( provider: Arc<dyn Provider>, root: Option<ElementData>, selector: &str, ) -> Locator
Create a new Locator.
Pass root: None to search the entire accessibility tree, or
Some(element) to scope the search to that element’s subtree.
pub fn with_timeout(self, timeout: Duration) -> Locator
pub fn with_timeout(self, timeout: Duration) -> Locator
Return a new Locator with a custom auto-wait timeout for action methods.
pub fn nth(self, n: usize) -> Locator
pub fn nth(self, n: usize) -> Locator
Return a new Locator that selects the nth match (1-based).
§Panics
Panics if n is 0. Use .first() or .nth(1) for the first match.
pub fn child(self, child_selector: &str) -> Locator
pub fn child(self, child_selector: &str) -> Locator
Return a new Locator scoped to a direct child matching child_selector.
Appends > {child_selector} to the current selector. If either side
is a comma-separated selector group, the combinator distributes over
every clause: e.g. "a, b".child("c") => "a > c, b > c".
pub fn descendant(self, desc_selector: &str) -> Locator
pub fn descendant(self, desc_selector: &str) -> Locator
Return a new Locator scoped to a descendant matching desc_selector.
Appends {desc_selector} to the current selector. If either side is
a comma-separated selector group, the combinator distributes over
every clause: e.g. "a, b".descendant("c") => "a c, b c".
pub fn tree(&self, max_depth: Option<usize>) -> Result<TreeNode, Error>
pub fn tree(&self, max_depth: Option<usize>) -> Result<TreeNode, Error>
Capture the subtree rooted at the matched element as a recursive
snapshot. Resolves the selector once (no auto-wait — inspection ops
should fail fast on selector miss). See Element::tree for
max_depth semantics.
pub fn dump(&self, max_depth: Option<usize>) -> Result<String, Error>
pub fn dump(&self, max_depth: Option<usize>) -> Result<String, Error>
Render the subtree rooted at the matched element as an indented
string. Resolves the selector once (no auto-wait). See
Element::dump for the output format.
Show the context menu for the matched element.
pub fn scroll_into_view(&self) -> Result<(), Error>
pub fn scroll_into_view(&self) -> Result<(), Error>
Scroll the matched element into view.
pub fn set_numeric_value(&self, value: f64) -> Result<(), Error>
pub fn set_numeric_value(&self, value: f64) -> Result<(), Error>
Set the numeric value of the matched element (slider, spinner).
pub fn type_text(&self, text: &str) -> Result<(), Error>
pub fn type_text(&self, text: &str) -> Result<(), Error>
Type text at the current cursor position on the matched element.
pub fn select_text(&self, start: u32, end: u32) -> Result<(), Error>
pub fn select_text(&self, start: u32, end: u32) -> Result<(), Error>
Select a text range within the matched element.
pub fn perform_action(&self, action: &str) -> Result<(), Error>
pub fn perform_action(&self, action: &str) -> Result<(), Error>
Perform an action by name (with auto-wait).
This is the escape hatch for platform-specific actions not covered by the named methods above. Also works for well-known action names.
pub fn wait_visible(&self, timeout: Duration) -> Result<Element, Error>
pub fn wait_visible(&self, timeout: Duration) -> Result<Element, Error>
Wait until the element is visible, polling the provider.
pub fn wait_attached(&self, timeout: Duration) -> Result<Element, Error>
pub fn wait_attached(&self, timeout: Duration) -> Result<Element, Error>
Wait until the element exists.
pub fn wait_detached(&self, timeout: Duration) -> Result<(), Error>
pub fn wait_detached(&self, timeout: Duration) -> Result<(), Error>
Wait until the element is removed.
pub fn wait_enabled(&self, timeout: Duration) -> Result<Element, Error>
pub fn wait_enabled(&self, timeout: Duration) -> Result<Element, Error>
Wait until the element is enabled.
pub fn wait_disabled(&self, timeout: Duration) -> Result<Element, Error>
pub fn wait_disabled(&self, timeout: Duration) -> Result<Element, Error>
Wait until the element is disabled (exists but not enabled).
Wait until the element is hidden or removed.
pub fn wait_focused(&self, timeout: Duration) -> Result<Element, Error>
pub fn wait_focused(&self, timeout: Duration) -> Result<Element, Error>
Wait until the element has keyboard focus.
pub fn wait_unfocused(&self, timeout: Duration) -> Result<Element, Error>
pub fn wait_unfocused(&self, timeout: Duration) -> Result<Element, Error>
Wait until the element does not have keyboard focus.
pub fn wait_for_state(
&self,
state: ElementState,
timeout: Duration,
) -> Result<Option<Element>, Error>
pub fn wait_for_state( &self, state: ElementState, timeout: Duration, ) -> Result<Option<Element>, Error>
Wait for an ElementState condition to be met.
pub fn wait_until(
&self,
predicate: impl Fn(Option<&ElementData>) -> bool,
timeout: Duration,
) -> Result<Option<Element>, Error>
pub fn wait_until( &self, predicate: impl Fn(Option<&ElementData>) -> bool, timeout: Duration, ) -> Result<Option<Element>, Error>
Wait until an arbitrary predicate is satisfied, polling at ~100 ms intervals.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Locator
impl !RefUnwindSafe for Locator
impl Send for Locator
impl Sync for Locator
impl Unpin for Locator
impl UnsafeUnpin for Locator
impl !UnwindSafe for Locator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.