ferridriver 0.4.0

Browser automation in Rust with a Playwright-compatible API. Four pluggable backends: CDP pipe, CDP WebSocket, Playwright WebKit, Firefox BiDi.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use super::{StepCategory, StepDef, q};

pub fn register(steps: &mut Vec<Box<dyn StepDef>>) {
  steps.push(Box::new(Evaluate));
}

step!(Evaluate {
    category: StepCategory::JavaScript,
    pattern: r"^I evaluate (.+)$",
    description: "Execute JavaScript and return the result",
    example: "When I evaluate \"document.title\"",
    execute(page, caps, _table, _vars) {
        let expr = q(&caps[1]);
        let result = page.inner().evaluate(expr.as_str()).await?;
        Ok(result)
    }
});