All notable changes to this project will be documented in this file.
LaunchOptions::default_builder()
for easier access to LaunchOptionsBuilder (which, because it's created viaderive(Builder)
is hard for editors to deal with- Support for intercepting the file chooser dialog
- Slow motion option for tab
Element::get_inner_text()
Element::find_element
andElement::find_elements
- Move env_logger to dev dependencies
- Add get_title method to tab
- Add way to set env vars for Chrome process
- Improve Runtime Domain, Add ability to listen to all Events on a tab
- tab.set_default_timeout, a convenience method.
- Run Chrome with same 'DEFAULT_ARGS' as puppeteer
- BREAKING CHANGE: Remove the 'fetch' feature (which enables the fetcher module) from default features.
- BREAKING CHANGE: Use JsFloat / JsUInt / JsInt consistently in protocol module All 'integer' types in the protocol are now either i32 or u32, and all 'number' types are f64, via type aliases.
- Support for Log domain (
tab.enable_logging()
andtab.disable_logging()
,tab.start_violations_report()
andtab.stop_violations_report()
) protocol::runtime::StackTrace
andprotocol::runtime::CallFrame
.
procotol::runtime::RemoteObject.object_type
is now an enum rather than any string.
Browser.setUserAgentOverride()
LaunchOptions.idle_browser_timeout
: an option to specify timeout value for when the connection hasn't received any events from the browser
- Changed
protocol::dom::NodeId
fromu16
tou32
.
- Re-export Element struct in top level module
- Better crate-level docs, and also docs for the Element struct
- Browser::default convenience method for quickly getting a headless browser with default options
Note: starting with this release we're going to bump the minor version whenever anything new is added to the public API.
- Fixed a race condition in Tab.wait_until_navigated
- Bump dependencies (rand, ureq, directories) and remove base64 dev dep
- Tab.get_script_source, Tab.enable_debugger, Tab.disable_debugger
- Add ability to set window size of browser on launch
- Scroll elements into view before clicking, mousing over or focusing on them
- FrameTree.child_frames field
- When waiting for elements, return most errors early instead of retrying and timing out
- Add
await_promise
argument to Tab.call_js_fn - Search for existing Chrome / Chromium binaries in more locations
- Tab.capture_screenshot
- Tab.print_to_pdf
- Element.wait_for_elements
- Automatic downloading of Chromium binary for people who don't want to use their own binary
- Tab.reload
- Network request interception
- Method chaining on Tab for common methods like click()
- Browser.new_tab
- Incognito support (Browser.new_context)
- Element.capture_screenshot
- Element.get_box_model
- Support for preloading extensions
- Support for watching JS / CSS coverage
- Element.move_mouse_over and Tab.move_mouse_to_point functions
- Browser.get_version
- LaunchOptionsBuilder
- Added badge to the Discord server in README
- Renamed cdtp module to protocol
- Refactored Waiting helper
- Exposed more modules (like Browser, Tab and Element) as public
- protocol::dom::Node.attributes is now a HashMap
- Run Travis on stable and nightly on Linux and MacOS, with rustfmt and pedantic clippy.
- Fixed some concurrency issues