Boni Garcia is an Associate Professor (with tenure) at Universidad Carlos III de Madrid (UC3M) in Spain. His main research interest is software engineering, focusing on automated testing and open source. He is an official committer at the Selenium project and the creator and maintainer of several projects belonging to its Java ecosystem, such as WebDriverManager or Selenium-Jupiter. He wrote the books “Mastering Software Testing with JUnit 5” (Packt Publishing, 2017) and “Hands-On Selenium WebDriver with Java” (O'Reilly Media, 2022). Moreover, he is the author of more than 50 publications in different journals, magazines, and conferences. He is an international speaker at conferences, workshops, meetups, and other events.
Selenium is an open source umbrella project devoted to web browser automation. Although it can be used to automate different tasks in the browser, Selenium is used primarily to carry out automated end-to-end tests for web applications. Selenium WebDriver (usually called simply Selenium), the main component of the Selenium project, automates browsers by providing an Application Programming Interface (API) in different programming languages. The latest stable version of Selenium is version 4, released in October 2021. Many things have changed since then, and the Selenium project (to which I belong as an active committer) is currently working on the next major release: Selenium 5. This talk provides an overview of the most relevant features to be shipped in this new major version using Java as the programming language.
To that aim, first, I will introduce the required setup to start developing Selenium tests, including build tools (Maven, Gradle), unit testing framework (JUnit 4/5, TestNG), or assertion libraries (like AssertJ).
Then, I present Selenium Manager, a helper tool fully integrated into Selenium to ease the development of Selenium scripts by providing automated driver management. This feature has been implemented thanks to the lessons learned in the maintenance of WebDriverManager (i.e., the automated driver management library for Java), and it is available in all the Selenium languages. In addition to driver management, Selenium Manager provides automated browser management (for instance, based on Chrome-for-Testing -CfT-).
Then, I explain another hot topic to be shipped in Selenium 5: the WebDriver bidirectional (BiDi) protocol. The WebDriver BiDi is a W3C draft that defines the bidirectional WebDriver protocol. WebDriver BiDi will allow different operations using a fast bidirectional transport (i.e., without polling the browser to get responses). In Selenium, the aim is for BiDi to be a standardized replacement for advanced operations currently supported by the non-standard Chrome DevTools Protocol (CDP).
Finally, I discuss the importance of the Selenium ecosystem. Selenium has become central to existing libraries, testing frameworks, and other tools.
Searching for speaker images...