Poltergeist
ferrum
Poltergeist | ferrum | |
---|---|---|
2 | 9 | |
2,546 | 1,658 | |
- | 1.4% | |
0.0 | 8.4 | |
over 5 years ago | 12 days ago | |
Ruby | Ruby | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Poltergeist
-
Stripe Financial Connections
Hostile integrations using scripts to obtain financial data is trivial. Frameworks such as:
https://github.com/teampoltergeist/poltergeist
is an excellent example of such a framework. Implementing "bank drivers" using such frameworks would not be difficult.
Plaid and others seem to have done an awesome job scaling the hostile integration pattern. However, the idea that Stripe decided to build this in-house rather than rely on Plaid is perfectly reasonable.
After all, the tools to implement such a product are well known.
-
Migrating Selenium system tests to Cuprite
In our project, we’ve been running system tests (then called rather "Feature tests") since around 2016. System tests use a real browser in the background and test all layers of a Rails application at once: from the database all the way up to the nuances of JavaScript loaded together with the web pages. Back then, we wrote our system tests using Capybara with Poltergeist, a driver that ran a headless Phantom JS browser. Since this browser stopped being actively developed, we migrated our test suite to the Selenium / Webdriver wrapper around Chrome browser around ~2018. Chrome was itself fine for tests automation but the Selenium API was quite limited and we had to rewrite several Poltergeist features using 3rd party gems and tools.
ferrum
- Generating PDFs in Rails using Grover
-
Learning Ruby Basics
What are you using for automation? There's a relatively new gem that I heard good things of, vessel: https://github.com/rubycdp/vessel . It uses ferrum under the hood, a set of Ruby bindings to Chrome/Chromium (https://github.com/rubycdp/ferrum).
-
Ruby web scraping gem that can handle JS?
I've used https://github.com/rubycdp/ferrum as driver for automated testing with capybara for which it works great. It recommends https://github.com/rubycdp/vessel as higher level abstraction for web scraping.
-
Automating Jekyll card generation with ruby’s Ferrum gem
require "Rubygems" require "Ferrum" def generate_card(browser, card, png, options={}) browser.go_to("http://localhost:4000/cards/#{card}") # see all the options here https://github.com/rubycdp/ferrum#screenshots browser.screenshot(path: "./images/cards/#{png}", full: true, # final image size is window_size x scale scale: 2) end browser = Ferrum::Browser.new(window_size: [800, 418]) # Check what cards we need to make Dir.glob("_posts/*").each do |post| post = File.basename(post, ".md") png = post + ".png" card = post + ".html" generate_card(browser, card, png) unless File.exists?("./images/cards/#{png}") end
- Best library for scraping dynamic page in Sidekiq background job (Selenium/Puppeteer/Cypress/Playwright)
- Ferrum – high-level API to control Chrome in Ruby
-
Migrating Selenium system tests to Cuprite
That is why we were happy to find out that a new ruby testing driver approach is being developed. It is called Cuprite, it runs the Ferrum library under the hood which, in turn, is an API that directly instruments the Chrome browser using the Chrome DevTools Protocol (CDP). About a week ago, we finally made a serious attempt to make our system test suite run on Cuprite, with especially two questions in our minds:
-
Web scraping with rails
I've used Ferrum for a couple small scripts in the past before.
-
My favorite Ruby gems
Ferrum
What are some alternatives?
Selenium WebDriver - A browser automation framework and ecosystem.
Watir - Watir Powered By Selenium
cuprite - Headless Chrome/Chromium driver for Capybara
capybara-webkit
puppeteer - Headless Chrome Node.js API [Moved to: https://github.com/puppeteer/puppeteer]
Fix - Specing framework.
Capybara - Acceptance test framework for web applications
API Taster - A quick and easy way to visually test your Rails application's API.
puffing-billy - A rewriting web proxy for testing interactions between your browser and external sites. Works with ruby + rspec.
TapReportParser - TAP Report Parser
puphpeteer - A Puppeteer bridge for PHP, supporting the entire API.