Skip to main content
← Back to index page



This release introduces improvements to the following Serenity/JS modules:

View detailed code diff on GitHub

Bug Fixes

  • core: refactored Mappable so that it's easier to implement filters (176e0cd), closes #1074
  • core: removed interface Reducible since it's not used any more (1e9f23b)
  • deps: updated tiny-types to 1.17.0 (3187051)
  • examples: updated the examples to use the new PageElement, By, and .where APIs (54961a7), closes #805
  • rest: corrected LastResponse to wrap .status(), .body(), .header() and .headers() in Adapters (aab8e93), closes #1082
  • web: corrected synchronisation in Web questions and interactions (c3a0ad1)
  • web: Photographer skips taking a screenshot if the Window is closed (DevTools protocol) (b682577)
  • web: refactored Selector and NativeElementLocator classes to simplify the implementation (f0c8f11)
  • web: simplified the selectors (b167e42), closes #1074


  • core: forEach for List and PageElements (4592fb7), closes #823
  • core: List supports custom collectors (cd3f2bc)
  • core: new implementation of List.where filters (45b3c80), closes #1074
  • core: support for Screenplay-style collection filters and mapping (List.where & .eachMappedTo) (3d3c02e), closes #1074
  • web: isVisible checks if the element is in viewport and not hidden behind other elements (429040f)
  • web: new PageElement retrieval model based on Selectors (48bd94f)
  • web: re-introduced PageElements.where DSL and universal By selectors (39fe0a1), closes #1081