INNER CODE UNIT · Rust
wait_element
keon/browser-control · src/actions.rs:229
pub async fn wait_element(
c: &mut Cdp,
selector: &str,
seconds: u64,
visible: bool,
) -> Result<bool> {
let check = if visible {
format!(
"(()=>{{const e=document.querySelector({});if(!e)return false;\
if(typeof e.checkVisibility==='function')return e.checkVisibility({{checkOpacity:true,checkVisibilityCSS:true}});\
const s=getComputedStyle(e),r=e.getBoundingClientRect();return r.width>0&&r.height>0&&s.display!=='none'&&s.visibility!=='hidden'&&s.opacity!=='0'}})()",
serde_json::to_string(selector)?
)
} else {
format!(
"!!document.querySelector({})",
serde_json::to_string(selector)?
)