Chapter 5. Browser-Specific Manipulation

As you have seen so far, many features of the Selenium WebDriver API are compatible across browsers, i.e., we can use Selenium WebDriver to control different types of browsers programmatically. Other parts of the Selenium WebDriver API are not interoperable among browsers. In other words, there are some WebDriver characteristics available for some browsers (e.g., Chrome or Edge) that are unavailable (or different) for others (e.g., Firefox). This chapter reviews these browser-specific features.

Browser Capabilities

Selenium WebDriver allows specifying browser-specific aspects by using capabilities. Examples of capabilities are headless mode, page loading strategies, use of web extensions, or push notifications management, among many others. As Figure 5-1 shows, the Selenium WebDriver API provides a set of Java classes to define these capabilities. The Capabilities interface is at the top of this hierarchy. Internally, the capabilities interface handles data using key-value pairs that encapsulate specific aspects of a browser. Then, different Java classes implement this interface to specify capabilities for web browsers (Chrome, Edge, Firefox, etc.). Table 5-1 summarizes the main classes of the Capabilities hierarchy and their corresponding target browsers.

hosw 0501
Figure 5-1. Capabilities hierarchy
Table 5-1. Description of the Capabilities ...

Get Hands-On Selenium WebDriver with Java now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.