A Tour of 4: New Commands

There’s more to Selenium 4 than just the server

Before we ship Selenium 4, I thought it would be nice to introduce some of the new features in-depth. Of course, all of the features we’re covering are in the main WebDriver documentation, so if you’re not one for reading blog posts, then feel free to dive in there!

You may well be familiar with how to start a Selenium server: you just do something like java -jar selenium-server-4.0.0.jar standalone and away you go! But with Selenium 4, there are some more things you can do with this jar.

Least obviously, the server jar is an exectuable on its own. If you’re using Linux or macOS, and have Java installed, you can make the jar executable (eg. chmod 755 selenium-server-4.0.0.jar), rename it to something like selenium and put it on your $PATH. That way, rather than writing java -jar ... you can simply run selenium.

Now you’ve done that, if you run selenium with selenium --help you’ll get a handy list of the available sub-commands you can execute. There are the old favourites, such as standalone (for starting a standalone selenium server), and hub and node (for starting a Selenium Hub and Node setup), but there are other interesting commands that are new to Selenium 4.

The first of these is info. We’ve added this to provide easy to find and access documentation on common tasks when using the selenium server. If you run selenium info on its own, you’ll see something like this:

Info
====

You can find out more about topics concerning Selenium Grid by running the
"info" command followed by: 

* config - Help on how to configure Selenium
* tracing - Help on how distributed tracing works with selenium
* security - Help on how how to secure communications to and within selenium
* sessionmap - Help on different types of sessionmap and how to start them.


Each topic will give you enough information to help you get started, and contains
some pointers on our site to provide more complete information. 

To get more information on a particular topic, just add the name of the topic, for example selenium info security. The hope is that this will make it less daunting to deal with Selenium, and give you a great place to get started with some of the more complicated topics around running a Selenium Grid.

Although it’s incredibly flexible, the selenium command offers a daunting list of command line flags. How are you supposed to remember them all? You’re not! Instead, let selenium completion take the strain for you. If you’re a zsh user, then just source <(selenium completion zsh), and now you have tab completion for the sub-commands, as well as for all the flags, including examples of how to use them.

And, finally, there are some hidden flags. We hid them because they can be a little bit confusing to use or understand what they’re meant to do, but one that can be very useful when debugging how your Grid is configured is the --dump-config flag. When run with a server command such as standalone or hub, it will dump the configuration options used by the Grid as a JSON blob. This can be helpful for tracking down subtle issues with configurations, especially when using environment properties for configuration.