We no longer use non-deterministic versions like lts/gallium. This is not supported by all tools. In particular asdf is...
You can chain multiple Capybara matchers on the page or any element: expect(page) .to have_content('Example Course')
A common cause of non-accessible web pages are elements that were made interactive via JavaScript but cannot be focused...
I recently built a screen with a very high and wide table in the center. This posed some challenges:
The Web Animations API has great browser support, and you should be using it to animate DOM elements from JavaScript...
The capybara-lockstep gem synchronizes Capybara commands with client-side JavaScript and AJAX requests. This greatly improves the stability of...
All browsers implement an event named beforeunload. It is fired when the active window is closed and can be used...
Up until Chrome 120, scrollbars could only be styled using the various -webkit-scrollbar-* pseudo elements, e.g. to make the...
Any form fields where users enter numbers should be an . Numeric inputs have several benefits over : On mobile or tablet...
tl;dr We recommend configuring Selenium's unhandled prompt behavior to "ignore". When running tests in a real browser, we...
Multiply by 1x the unit: $number = 13 $length = $number * 1px // => 13px Removing a unit
Getting CSS (and JS) live reloading to work in a esbuild / Rails project is a bit of a hassle, but...
Make sure that you use the correct property when editing an HTML attribute. Using innerHTML with unsafe arguments makes your...
Every modern Rails app should have a Content Security Policy enabled. Very compatible default The following "default" is a minimal...
Chromedriver (or selenium-webdriver?) will not reliably scroll elements into view before clicking them, and actually not click the element...
For my computer science bachelor's thesis I programmed and evaluated a CLI Test Case Prioritization (TCP) tool for makandra...
An introduction to mangling When you minify ("compress", "optimize") your JavaScript for production, the names of your functions and variables...
If you want to collapse/expand elements with dynamic content (and thus unknown height), you can not transition between height: 0...
Note: You won't need this for single lines of text. In this case it is better to just use...
Suppose you want to implement a publish/subscribe pattern in your Frontend application to react to data changes and events. First...
Using querySelector or querySelectorAll in JavaScript, you can easily find descendants of a node that match a given selector.
TL;DR Still has caveats. Code splitting is a feature of JavaScript bundlers that can keep huge libraries out of...
As we are slowly switching from Cucumber scenarios to RSpec feature specs, you might be tempted to write assertions like...
When you allow file uploads in your app, a user might upload content that hurts other users. Our primary concern...