pub struct GotoBuilder<'a> { /* private fields */ }Expand description
Builder for configuring page navigation.
Implementations§
Source§impl<'a> GotoBuilder<'a>
impl<'a> GotoBuilder<'a>
Sourcepub fn wait_until(self, state: DocumentLoadState) -> Self
pub fn wait_until(self, state: DocumentLoadState) -> Self
Set the load state to wait for.
Default is DocumentLoadState::Load.
§Example
use viewpoint_core::DocumentLoadState;
// Wait only for DOM content loaded (faster)
page.goto("https://example.com")
.wait_until(DocumentLoadState::DomContentLoaded)
.goto()
.await?;
// Wait for network idle (slower but more complete)
page.goto("https://example.com")
.wait_until(DocumentLoadState::NetworkIdle)
.goto()
.await?;Examples found in repository?
examples/basic_navigation.rs (line 48)
19async fn main() -> Result<(), Box<dyn std::error::Error>> {
20 println!("Launching browser...");
21
22 // Launch a headless browser
23 let browser = Browser::launch()
24 .headless(true)
25 .timeout(Duration::from_secs(30))
26 .launch()
27 .await?;
28
29 println!("Browser launched successfully!");
30
31 // Create a new browser context (isolated environment)
32 let context = browser.new_context().await?;
33 println!("Created browser context: {}", context.id());
34
35 // Create a new page
36 let page = context.new_page().await?;
37 println!("Created page with target: {}", page.target_id());
38
39 // Navigate to a URL with default wait (Load event)
40 println!("\nNavigating to example.com...");
41 let response = page.goto("https://example.com").goto().await?;
42 println!("Navigation complete! URL: {}", response.url());
43
44 // Navigate with DomContentLoaded wait (faster)
45 println!("\nNavigating to httpbin.org with DomContentLoaded wait...");
46 let response = page
47 .goto("https://httpbin.org/html")
48 .wait_until(DocumentLoadState::DomContentLoaded)
49 .timeout(Duration::from_secs(15))
50 .goto()
51 .await?;
52 println!("Navigation complete! URL: {}", response.url());
53
54 // Navigate with custom referer
55 println!("\nNavigating with custom referer...");
56 let response = page
57 .goto("https://httpbin.org/headers")
58 .referer("https://google.com")
59 .wait_until(DocumentLoadState::Load)
60 .goto()
61 .await?;
62 println!("Navigation complete! URL: {}", response.url());
63
64 // Close the browser
65 println!("\nClosing browser...");
66 browser.close().await?;
67 println!("Done!");
68
69 Ok(())
70}Sourcepub fn timeout(self, timeout: Duration) -> Self
pub fn timeout(self, timeout: Duration) -> Self
Set the navigation timeout.
Default is 30 seconds.
§Example
use std::time::Duration;
page.goto("https://slow-site.com")
.timeout(Duration::from_secs(60))
.goto()
.await?;Examples found in repository?
examples/basic_navigation.rs (line 49)
19async fn main() -> Result<(), Box<dyn std::error::Error>> {
20 println!("Launching browser...");
21
22 // Launch a headless browser
23 let browser = Browser::launch()
24 .headless(true)
25 .timeout(Duration::from_secs(30))
26 .launch()
27 .await?;
28
29 println!("Browser launched successfully!");
30
31 // Create a new browser context (isolated environment)
32 let context = browser.new_context().await?;
33 println!("Created browser context: {}", context.id());
34
35 // Create a new page
36 let page = context.new_page().await?;
37 println!("Created page with target: {}", page.target_id());
38
39 // Navigate to a URL with default wait (Load event)
40 println!("\nNavigating to example.com...");
41 let response = page.goto("https://example.com").goto().await?;
42 println!("Navigation complete! URL: {}", response.url());
43
44 // Navigate with DomContentLoaded wait (faster)
45 println!("\nNavigating to httpbin.org with DomContentLoaded wait...");
46 let response = page
47 .goto("https://httpbin.org/html")
48 .wait_until(DocumentLoadState::DomContentLoaded)
49 .timeout(Duration::from_secs(15))
50 .goto()
51 .await?;
52 println!("Navigation complete! URL: {}", response.url());
53
54 // Navigate with custom referer
55 println!("\nNavigating with custom referer...");
56 let response = page
57 .goto("https://httpbin.org/headers")
58 .referer("https://google.com")
59 .wait_until(DocumentLoadState::Load)
60 .goto()
61 .await?;
62 println!("Navigation complete! URL: {}", response.url());
63
64 // Close the browser
65 println!("\nClosing browser...");
66 browser.close().await?;
67 println!("Done!");
68
69 Ok(())
70}Sourcepub fn referer(self, referer: impl Into<String>) -> Self
pub fn referer(self, referer: impl Into<String>) -> Self
Set the referer header for the navigation.
§Example
page.goto("https://example.com")
.referer("https://google.com")
.goto()
.await?;Examples found in repository?
examples/basic_navigation.rs (line 58)
19async fn main() -> Result<(), Box<dyn std::error::Error>> {
20 println!("Launching browser...");
21
22 // Launch a headless browser
23 let browser = Browser::launch()
24 .headless(true)
25 .timeout(Duration::from_secs(30))
26 .launch()
27 .await?;
28
29 println!("Browser launched successfully!");
30
31 // Create a new browser context (isolated environment)
32 let context = browser.new_context().await?;
33 println!("Created browser context: {}", context.id());
34
35 // Create a new page
36 let page = context.new_page().await?;
37 println!("Created page with target: {}", page.target_id());
38
39 // Navigate to a URL with default wait (Load event)
40 println!("\nNavigating to example.com...");
41 let response = page.goto("https://example.com").goto().await?;
42 println!("Navigation complete! URL: {}", response.url());
43
44 // Navigate with DomContentLoaded wait (faster)
45 println!("\nNavigating to httpbin.org with DomContentLoaded wait...");
46 let response = page
47 .goto("https://httpbin.org/html")
48 .wait_until(DocumentLoadState::DomContentLoaded)
49 .timeout(Duration::from_secs(15))
50 .goto()
51 .await?;
52 println!("Navigation complete! URL: {}", response.url());
53
54 // Navigate with custom referer
55 println!("\nNavigating with custom referer...");
56 let response = page
57 .goto("https://httpbin.org/headers")
58 .referer("https://google.com")
59 .wait_until(DocumentLoadState::Load)
60 .goto()
61 .await?;
62 println!("Navigation complete! URL: {}", response.url());
63
64 // Close the browser
65 println!("\nClosing browser...");
66 browser.close().await?;
67 println!("Done!");
68
69 Ok(())
70}Sourcepub async fn goto(self) -> Result<NavigationResponse, NavigationError>
pub async fn goto(self) -> Result<NavigationResponse, NavigationError>
Execute the navigation.
§Errors
Returns an error if:
- The page is closed
- Navigation fails (network error, SSL error, etc.)
- The wait times out
Examples found in repository?
examples/basic_navigation.rs (line 41)
19async fn main() -> Result<(), Box<dyn std::error::Error>> {
20 println!("Launching browser...");
21
22 // Launch a headless browser
23 let browser = Browser::launch()
24 .headless(true)
25 .timeout(Duration::from_secs(30))
26 .launch()
27 .await?;
28
29 println!("Browser launched successfully!");
30
31 // Create a new browser context (isolated environment)
32 let context = browser.new_context().await?;
33 println!("Created browser context: {}", context.id());
34
35 // Create a new page
36 let page = context.new_page().await?;
37 println!("Created page with target: {}", page.target_id());
38
39 // Navigate to a URL with default wait (Load event)
40 println!("\nNavigating to example.com...");
41 let response = page.goto("https://example.com").goto().await?;
42 println!("Navigation complete! URL: {}", response.url());
43
44 // Navigate with DomContentLoaded wait (faster)
45 println!("\nNavigating to httpbin.org with DomContentLoaded wait...");
46 let response = page
47 .goto("https://httpbin.org/html")
48 .wait_until(DocumentLoadState::DomContentLoaded)
49 .timeout(Duration::from_secs(15))
50 .goto()
51 .await?;
52 println!("Navigation complete! URL: {}", response.url());
53
54 // Navigate with custom referer
55 println!("\nNavigating with custom referer...");
56 let response = page
57 .goto("https://httpbin.org/headers")
58 .referer("https://google.com")
59 .wait_until(DocumentLoadState::Load)
60 .goto()
61 .await?;
62 println!("Navigation complete! URL: {}", response.url());
63
64 // Close the browser
65 println!("\nClosing browser...");
66 browser.close().await?;
67 println!("Done!");
68
69 Ok(())
70}Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for GotoBuilder<'a>
impl<'a> !RefUnwindSafe for GotoBuilder<'a>
impl<'a> Send for GotoBuilder<'a>
impl<'a> Sync for GotoBuilder<'a>
impl<'a> Unpin for GotoBuilder<'a>
impl<'a> !UnwindSafe for GotoBuilder<'a>
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
Mutably borrows from an owned value. Read more