Storing and retrieving a profile
We can also write the profile information of the browser to the JSON file and later instantiate new browsers with the same profile. The FirefoxProfile class provides a method to export the profile information as JSON. The following is its API syntax:
public String toJson()
The output or return type is a String, which contains the JSON information in it.
Now, to create a browser with the same profile, the FirefoxProfile class provides a static method that takes the JSON string as the input. The following is the API syntax:
public static FirefoxProfile fromJson(java.lang.String json) throws java.io.IOException
This is a static method in the FirefoxProfile class that takes the JSON string to create a profile from. The following is the code example for that:
FirefoxProfile profile = new FirefoxProfile();
profile.addExtension(
new File("./src/test/resources/extensions/xpath_finder.xpi"));
String json = profile.toJson();
FirefoxOptions firefoxOptions = new FirefoxOptions();
firefoxOptions.setProfile(FirefoxProfile.fromJson(json));
In the preceding code, we have exported the profile as a JSON string. In your test case, you can write that JSON information to a file and store it. Later, you can read the JSON file using FirefoxOptions and create FirefoxDriver from that.