All Projects → joelgriffith → Navalia

joelgriffith / Navalia

Licence: gpl-3.0
A bullet-proof, fast, and reliable headless browser API

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Navalia

Ferrum
Headless Chrome Ruby API
Stars: ✭ 1,009 (+6.21%)
Mutual labels:  automation, chrome, headless, headless-chrome
Chrome Devtools Protocol
Chrome Devtools Protocol client for PHP
Stars: ✭ 112 (-88.21%)
Mutual labels:  automation, chrome, headless, headless-chrome
Html Pdf Chrome
HTML to PDF converter via Chrome/Chromium
Stars: ✭ 629 (-33.79%)
Mutual labels:  chrome, headless, headless-chrome
Taiko
A node.js library for testing modern web applications
Stars: ✭ 2,964 (+212%)
Mutual labels:  automation, headless, headless-chrome
Cuprite
Headless Chrome/Chromium driver for Capybara
Stars: ✭ 743 (-21.79%)
Mutual labels:  chrome, headless, headless-chrome
Puppeteer Extra
💯 Teach puppeteer new tricks through plugins.
Stars: ✭ 3,397 (+257.58%)
Mutual labels:  automation, chrome, headless-chrome
Chromy
Chromy is a library for operating headless chrome. 🍺🍺🍺
Stars: ✭ 593 (-37.58%)
Mutual labels:  chrome, browser, headless-chrome
Undetected Chromedriver
Custom Selenium Chromedriver | Zero-Config | Passes ALL bot mitigation systems (like Distil / Imperva/ Datadadome / CloudFlare IUAM)
Stars: ✭ 365 (-61.58%)
Mutual labels:  automation, chrome, browser
Chrome Har Capturer
Capture HAR files from a Chrome instance
Stars: ✭ 423 (-55.47%)
Mutual labels:  automation, browser, headless
Triflejs
Headless automation for Internet Explorer
Stars: ✭ 815 (-14.21%)
Mutual labels:  automation, browser, headless
Url To Pdf Api
Web page PDF/PNG rendering done right. Self-hosted service for rendering receipts, invoices, or any content.
Stars: ✭ 6,544 (+588.84%)
Mutual labels:  chrome, headless, headless-chrome
Api
API that uncovers the technologies used on websites and generates thumbnail from screenshot of website
Stars: ✭ 189 (-80.11%)
Mutual labels:  automation, chrome, headless-chrome
Foot traffic
Pure Ruby DSL for Chrome scripting based on Ferrum. No Selenium required. Works from any script. Simulate web app usage scenarios in production or locally.
Stars: ✭ 123 (-87.05%)
Mutual labels:  automation, chrome, browser
Puppeteer Api Zh cn
📖 Puppeteer中文文档(官方指定的中文文档)
Stars: ✭ 697 (-26.63%)
Mutual labels:  automation, chrome, headless
Nickjs
Web scraping library made by the Phantombuster team. Modern, simple & works on all websites. (Deprecated)
Stars: ✭ 494 (-48%)
Mutual labels:  automation, browser, headless-chrome
Playwright Go
Playwright for Go a browser automation library to control Chromium, Firefox and WebKit with a single API.
Stars: ✭ 272 (-71.37%)
Mutual labels:  automation, headless, headless-chrome
Phpchrometopdf
A slim PHP wrapper around google-chrome to convert url to pdf or to take screenshots , easy to use and clean OOP interface
Stars: ✭ 127 (-86.63%)
Mutual labels:  chrome, headless, headless-chrome
Chromeless
🖥 Chrome automation made simple. Runs locally or headless on AWS Lambda.
Stars: ✭ 13,254 (+1295.16%)
Mutual labels:  chrome, headless, headless-chrome
Nightmare
A high-level browser automation library.
Stars: ✭ 19,067 (+1907.05%)
Mutual labels:  chrome, browser, headless-chrome
Pychrome
A Python Package for the Google Chrome Dev Protocol [threading base]
Stars: ✭ 469 (-50.63%)
Mutual labels:  chrome, headless, headless-chrome
Navalia Logo

npm version Build Status dependencies Status styled with prettier

DEPRECATION WARNING: Unfortunately it's time for me to deprecate this library as I cannot give it the time it needs. If you're interested in maintaining this lib, send me message (joel at joelgriffith dot net). I'd recommend using something like chromeless or puppeteer if possible. Thanks!

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.

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

NavaliaQL

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 } = require('navalia');
const chrome = new Chrome();

chrome
  .goto('https://amazon.com')
  .type('input', 'Kindle')
  .click('.buy-now')
  .end()
  .then((responses) => {
    console.log(responses); // ['https://www.amazon.com/', true, true, true]
  });

Await

import { Chrome } from 'navalia';
const chrome = new Chrome();

async function buyItOnAmazon() {
  const url = await chrome.goto('https://amazon.com');
  const typed = await chrome.type('input', 'Kindle');
  const clicked = await chrome.click('.buy-now');

  chrome.done();

  console.log(url, typed, clicked); // 'https://www.amazon.com/', true, true
}

buyItOnAmazon();

Roadmap

In no particular order, this is the vision of navalia going forward:

  • [X] Expanded browser API (pdf rendering, network watching, more).
  • [ ] Bring more vendors onto the framework.
  • [ ] Better typings around externals with no @type support.
  • [X] 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.
  • [X] Travis, coveralls, greenkeeper, and other handy-dandy tools to automate chore tasks.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].