Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remote webdriver - Passing firefox profile with Rest Client Extension (add-on)

Currently I am able to send a firefox profile over a RemoteWebDriver, but I am not able to send the RestCLient extension over the profile. I require a certain REST client extension(firefox add-on) to be available for my test case execution.

If I run the test case locally using firefox driver it works....but how do I achieve the same thing using RemoteWebDriver?

 File profileDirectory = new File("c://mach//lib//prof");
 FirefoxProfile profile = new FirefoxProfile(profileDirectory);
 driver = new FirefoxDriver(profile);
 driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

Cheers

like image 905
LearningSnippet Avatar asked May 17 '13 19:05

LearningSnippet


1 Answers

After creating a FirefoxProfile instance, transfer the profile using the DesiredCapabilities API (FirefoxDriver.PROFILE = "firefox_profile"):

File profileDirectory = new File("c://mach//lib//prof");
FirefoxProfile profile = new FirefoxProfile(profileDirectory);

DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability(FirefoxDriver.PROFILE, profile);
driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);

Note: You don't have to create a profile in advance, the FirefoxProfile API offers several convenient methods ("Method Summary" section) to compose a profile. For instance, if you want to launch Firefox with an extension pre-installed, use:

FirefoxProfile firefoxProfile = new FirefoxProfile();
File extension = new File("extension.xpi");
firefoxProfile.addExtension(extension);

DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability(FirefoxDriver.PROFILE, firefoxProfile);
driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);

Documentation for working with the remote web driver:

  • RemoteWebDriver
  • RemoteWebDriver Java API documentation
  • Grid2 (original answer) and Grid4 (update for 2021)
like image 194
Rob W Avatar answered Oct 19 '22 01:10

Rob W