The bullet-proof, fast, and most feature-rich Chrome driver around. Navalia lets you interact with Chrome and run parallel work with ease. Not using JavaScript? There's a GraphQL server that you can use to communicate with over HTTP allowing any runtime to drive Chrome.
- 📝 View the library documentation here
- 🎨 Looking for test inspiration? Navalia uses itself for tests.
Features
- Scrape webpage data, even from JavaScript-heavy sites.
- Run automated functional tests.
- Discover visual regressions in your site.
- Capture screenshots, pdfs, execute javascript, insert text, and more.
- The largest API for interacting with Chrome.
GraphQL Front-end
Simply run navalia
with a specified port e.g.
$ npm i -g navalia$ navalia --port 4000
Recipes
Usage
The API for interacting with a browser is simple and chainable. You can call all methods individually and await
/then
the resulting value, or chain multiple together and collect their responses in a single result.
Chaining
const Chrome = ;const chrome = ; chrome type'input' 'Kindle' ;
Await
;const chrome = ; { const url = await chrome; const typed = await chrometype'input' 'Kindle'; const clicked = await chrome; chrome; console; // 'https://www.amazon.com/', true, true} ;
Roadmap
In no particular order, this is the vision of navalia going forward:
- Expanded browser API (pdf rendering, network watching, more).
- Bring more vendors onto the framework.
- Better typings around externals with no @type support.
- Parameterization on killing long-running jobs.
- Unit testing all features.
- Integration testing with the various vendors so our API's don't break when theirs do.
- Travis, coveralls, greenkeeper, and other handy-dandy tools to automate chore tasks.