Function goose_eggs::load_static_elements[][src]

pub async fn load_static_elements(user: &GooseUser, html: &str)
Expand description

Extract and load all local static elements from the the provided html.

While you can invoke this function directly, it’s generally preferred to invoke validate_and_load_static_assets which in turn invokes this function.

Example

use goose::prelude::*;
use goose_eggs::load_static_elements;

task!(load_page_and_static_elements).set_on_start();

async fn load_page_and_static_elements(user: &GooseUser) -> GooseTaskResult {
    let mut goose = user.get("/").await?;

    match goose.response {
        Ok(response) => {
            // Copy the headers so we have them for logging if there are errors.
            let headers = &response.headers().clone();
            match response.text().await {
                Ok(html) => {
                    // Load all static elements on page.
                    load_static_elements(user, &html).await;
                }
                Err(e) => {
                    return user.set_failure(
                        &format!("{}: failed to parse page: {}", goose.request.raw.url, e),
                        &mut goose.request,
                        Some(&headers),
                        None,
                    );
                }
            }
        }
        Err(e) => {
            return user.set_failure(
                &format!("{}: no response from server: {}", goose.request.raw.url, e),
                &mut goose.request,
                None,
                None,
            );
        }
    }

    Ok(())
}