



In my first post about Selenium ( FluentLenium series will focus on extension features only), I decided to tackle Chrome & Firefox capabilities which allow us to preconfigure browser settings before tests. This seemed quite easy at the beginning, but I quickly realized that a huge amount of information available via Google is outdated. Hopefully, this post will make things straight.





Prerequisite - you need to understand which method initializes WebDriver in your project in order to override it.





Part I - Chrome





Only this piece of the documentation tells us how to properly configure the browser before running tests. It's done via Chrome Options . Due to legacy reasons, desiredCapabilities still has to be initialized, which makes the code somehow weird. Here it is (with my formatting):



As you can see above two methods preconfigure our Chrome (description via Javadoc ): 1. addArguments() which adds additional command-line arguments to be used when starting Chrome

2. addExperimentalSettings() which sets an experimental option. Useful for new ChromeDriver options not yet exposed through the ChromeOptions API

We may also add extensions via add extensions() method





This is when the easy part ends and Googling begins. For unknown reasons lists of available arguments (called very often switches) and experimental settings aren't linked on the official chromedriver site . With some determination I was able to obtain them:





My implementation with example values - feel free to do some code review :)



Demo:

Comment this line & Try running my Comment this line & Try running my FluentLenium test (or just log in on Facebook via Selenium).



