INNER CODE UNIT · Rust
ref_selector
keon/browser-control · src/actions.rs:17
pub fn ref_selector(target: &str) -> String {
match target.strip_prefix('@') {
Some(r) => format!(r#"[data-browser-control-ref="{r}"]"#),
None => target.to_string(),
}
}
pub async fn mouse_click(c: &mut Cdp, x: i64, y: i64, button: &str, clicks: u64) -> Result<()> {
if !["left", "right", "middle", "back", "forward"].contains(&button) {
bail!("bad button {button:?}; use left/right/middle/back/forward")
}
for t in ["mousePressed", "mouseReleased"] {
c.call(
"Input.dispatchMouseEvent",
json!({"type":t,"x":x,"y":y,"button":button,"clickCount":clicks}),
true,
)
.await?;