Skip to content

Commit 4364d81

Browse files
committed
Updating .NET FirefoxDriver constructor for ICapabilities.
This allows the user to pass an ICapabilities object to the Firefox driver constructor and have specific capabilities used in driver instantiation. Fixes issue #6870.
1 parent 3526743 commit 4364d81

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

dotnet/src/webdriver/Firefox/FirefoxDriver.cs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ public FirefoxDriver(FirefoxProfile profile) :
137137
/// <param name="capabilities">The <see cref="ICapabilities"/> object containing the desired
138138
/// capabilities of this FirefoxDriver.</param>
139139
public FirefoxDriver(ICapabilities capabilities)
140-
: this(ExtractBinary(capabilities), ExtractProfile(capabilities))
140+
: this(ExtractBinary(capabilities), ExtractProfile(capabilities), capabilities, RemoteWebDriver.DefaultCommandTimeout)
141141
{
142142
}
143143

@@ -162,7 +162,12 @@ public FirefoxDriver(FirefoxBinary binary, FirefoxProfile profile)
162162
/// to be used in starting Firefox.</param>
163163
/// <param name="commandTimeout">The maximum amount of time to wait for each command.</param>
164164
public FirefoxDriver(FirefoxBinary binary, FirefoxProfile profile, TimeSpan commandTimeout)
165-
: base(CreateExtensionConnection(binary, profile, commandTimeout), DesiredCapabilities.Firefox())
165+
: this(binary, profile, DesiredCapabilities.Firefox(), commandTimeout)
166+
{
167+
}
168+
169+
private FirefoxDriver(FirefoxBinary binary, FirefoxProfile profile, ICapabilities capabilities, TimeSpan commandTimeout)
170+
: base(CreateExtensionConnection(binary, profile, commandTimeout), RemoveUnneededCapabilities(capabilities))
166171
{
167172
this.binary = binary;
168173
this.profile = profile;
@@ -345,6 +350,14 @@ private static ExtensionConnection CreateExtensionConnection(FirefoxBinary binar
345350
ExtensionConnection extension = new ExtensionConnection(binary, profileToUse, "localhost", commandTimeout);
346351
return extension;
347352
}
353+
354+
private static ICapabilities RemoveUnneededCapabilities(ICapabilities capabilities)
355+
{
356+
DesiredCapabilities caps = capabilities as DesiredCapabilities;
357+
caps.Capabilities.Remove(FirefoxDriver.ProfileCapabilityName);
358+
caps.Capabilities.Remove(FirefoxDriver.BinaryCapabilityName);
359+
return caps;
360+
}
348361
#endregion
349362
}
350363
}

0 commit comments

Comments
 (0)