If you run a Rails app that is using Turbo, you might observe that your integration tests are unstable depending...

makandra dev

When RSpecs runs the first feature spec, you may see log output like this: Capybara starting Puma... * Version 6.5.0, codename...

Currently we often use geordi to run cucumber and rspec tests. Geordi takes care of installing a matching chromedriver for...

Frontend performance and user experience are orthogonal to feature development. If care is not taken, adding features usually degrades frontend...

For Selenium tests, your browser starts in your local timezone, or whatever your system's environment specifies. This is usually...

If a Cucumber run deletes your application directory, an integration fail between Capybara and Capybara Screenshot may be the cause...

Starting with ChromeDriver 127, if your application displays a beforeunload confirmation dialog, ChromeDriver will immediately close it. In consequence, any...

tl;dr Prefer request specs over end-to-end tests (Capybara) to joyfully test file downloads! Why? Testing file downloads

You can chain multiple Capybara matchers on the page or any element: expect(page) .to have_content('Example Course')

I recently noticed a new kind of flaky tests on the slow free tier GitHub Action runners: Integration tests were...

Any form fields where users enter numbers should be an . Numeric inputs have several benefits over : On mobile or tablet...

makandra dev

Usually our code lives on GitLab, therefore our documentation for CI testing is extensive in this environment. If you are...

tl;dr We recommend configuring Selenium's unhandled prompt behavior to { default: 'ignore' } with the monkey patch below.

Getting an entire test suite green can be a tedious task which involves frequent switches between the CLI that is...

selenium.dev

I recently stumbled over a problem that my feature tests broke in CI because of a mismatching chromedriver version.

thegnar.com

View specs are a powerful tool to test several rendering paths by their cases instead of using a more costing...

Chromedriver (or selenium-webdriver?) will not reliably scroll elements into view before clicking them, and actually not click the element...

Newest versions of Chromedriver breaks the user agent for device emulation via device name. In previous versions the user agent...

Capybara allows you to filter elements that are focused. page.find(:fillable_field, focused: true) # Filtering only fillable inputs for performance...

makandra dev

As we are slowly switching from Cucumber scenarios to RSpec feature specs, you might be tempted to write assertions like...

Within Capybara you most certainly use the #check- and #uncheck-method to (un)check checkboxes. But there's one problem...

Capybara has a variety of finder methods like find_button to help you look up DOM elements. There are also...

Unpoly's [up-observe], [up-autosubmit] and [up-validate] as well as their programmatic variants up.observe() and up.autosubmit...

Here are a few common patterns that will probably lead to flaky specs. If you notice them in your specs...