问题
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
回答1:
After creating a FilefoxProfile 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 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
来源:https://stackoverflow.com/questions/16616808/remote-webdriver-passing-firefox-profile-with-rest-client-extension-add-on