Skip to main content
← Back to index page



This release addresses #805 and introduces improvements to the following Serenity/JS modules:

Related external tickets: jasmine/jasmine#1939

View detailed code diff on GitHub

Bug Fixes

  • core: formatted can be configured to produce single- or multi-line descriptions (21145a3)
  • core: inspected produces a better description of functions used as parameters (15535c6)
  • core: 3.0 RC (469d54e), closes #805
  • core: answerProxy renamed to ProxyAnswer to better reflect its purpose (a98fe41)
  • core: corrected type defs of (681ce22)
  • core: exported createProxyAnswer to make it easier to use (5471989)
  • core: removed Loop as it will be replaced (0b63d27)
  • core: removed Property as it will be replaced by new Question (fd7fa10)
  • core: removed Transform and mapping functions as they'll be replaced with new Question (506eaea)
  • core: renamed "Model" type to "Adapter" to better reflect its purpose (b4ea7a1), closes #805
  • cucumber: support for recognising non-Serenity AssertionErrors in older version of Cucumber (31e9e99)
  • deps: updated WebdriverIO (9de63d4)
  • deps: web (b075b8e)
  • jasmine: upgraded Jasmine to 3.10.0 (707dbff), closes jasmine/jasmine#1939
  • protractor: fixed the interaction to Switch (762ca84)
  • protractor: lastScriptExecution.result() returns undefined instead of null for void functions (997d87a)
  • protractor: modernised ProtractorParam to return a Screenplay Model (43c2032)
  • protractor: removed interaction to ResizeBrowserWindow in favour of Page.setViewportSize() (b8e471d)
  • protractor: replaced obsolete "Window", replaced by "Page" in @serenity-js/web (a3442c4)
  • web: added missing export (c5ffc0a), closes #805
  • web: corrected timestamp rounding when retrieving the expiry date of a cookie (d636965)
  • webdriverio: ensure getLastScriptExecutionResult returns undefined for void functions (aa00dfd)
  • webdriverio: fixed synchronisation issue in ModalDialog (12324b2), closes #805
  • webdriverio: separated UIElement.hoverOver from UIElement.scrollIntoView (cf4ca2c)
  • webdriverio: updated WebdriverIO to 7.13.2 (ef79d19)
  • webdriverio: updated WebdriverIO to 7.16.7 (3316e29)
  • web: ensure all Web interactions extend the same base class (b358c0b)
  • web: fixed the interaction to Select (10b7b74)
  • web: optimised PhotoTakingStrategy (085b7f7)
  • web: removed Cookie as it will be re-implemented (cb3d081)
  • web: removed incorrect export (ebf80c0)
  • web: removed incorrect import (90cb025)
  • web: removed window-specific APIs from BrowseTheWeb that got replaced by Page (918f447), closes #805
  • web: renamed Element and associated classes to PageElement to avoid name conflicts (1e4204b)
  • web: renamed PageElementList to PageElements to improve readability (a9903a7), closes #805
  • web: standardised getters across PageElement implementations (336472b)
  • web: wordsmithing of interface names (5a1e76a)


  • core: question.about creates a proxy around the answer to simplify the API (25e0841)
  • core: question.about produces "props" that proxy the methods of the underlying model (f771872)
  • protractor: compatibility with @serenity-js/web (9df4db2), closes #805
  • protractor: removed Protractor-specific Target implementations in favour of @serenity-js/web (5cfc7e5)
  • web: a common way to run the tests for all the web adapters (c7e584a)
  • web: added Page.viewportSize and Page.setViewportSize methods (4cabbe2)
  • web: all Screenplay APIs migrated from @serenity-js/webdriverio to @serenity-js/web (7b6b95d)
  • webdriverio: support for native WebdriverIO services (8d5ad22)
  • web: interaction to set a Cookie (c056439), closes #805
  • web: interaction to setViewportSize of a Page (dd7f180)
  • web: introduced UIElementQuestion to help ensure no NPEs in UI-related questions (fe29121)
  • web: migrated Photographer from @serenity-js/protractor to @serenity-js/web (4506dac), closes #805
  • web: ModalDialog available for both Protractor and WebdriverIO adapters (ef3c566), closes #805
  • web: new module @serenity-js/web to provide Web-related Screenplay Pattern APIs (bead861)
  • web: page provides an abstraction around browser window (2e70a3b)
  • web: Page.url() and Page.title() replace Website.url() and Website.title() (49fe009), closes #805
  • web: removed Target in favour of PageElement (69496c4), closes #805
  • web: support for switching browsing context (a73a635), closes #805
  • web: support for working with cookies (39cde6d), closes #805


  • core: Introduced @serenity-js/web - a shared library for Serenity/JS Web integration modules such as @serenity-js/protractor and @serenity-js/webdriverio. Dropped support for Node 12.