[dotnet] explicitly support passing the full path to driver in Service constructor
diff --git a/dotnet/src/webdriver/Chrome/ChromeDriverService.cs b/dotnet/src/webdriver/Chrome/ChromeDriverService.cs
index 20e2e1d..4c48017 100644
--- a/dotnet/src/webdriver/Chrome/ChromeDriverService.cs
+++ b/dotnet/src/webdriver/Chrome/ChromeDriverService.cs
@@ -59,16 +59,22 @@
/// <summary>
/// Creates a default instance of the ChromeDriverService using a specified path to the ChromeDriver executable.
/// </summary>
- /// <param name="driverPath">The directory containing the ChromeDriver executable.</param>
+ /// <param name="driverPath">The path to the executable or the directory containing the ChromeDriver executable.</param>
/// <returns>A ChromeDriverService using a random port.</returns>
public static ChromeDriverService CreateDefaultService(string driverPath)
{
+ string fileName;
if (File.Exists(driverPath))
{
+ fileName = Path.GetFileName(driverPath);
driverPath = Path.GetDirectoryName(driverPath);
}
+ else
+ {
+ fileName = ChromiumDriverServiceFileName(DefaultChromeDriverServiceExecutableName);
+ }
- return CreateDefaultService(driverPath, ChromiumDriverServiceFileName(DefaultChromeDriverServiceExecutableName));
+ return CreateDefaultService(driverPath, fileName);
}
/// <summary>
diff --git a/dotnet/src/webdriver/Edge/EdgeDriverService.cs b/dotnet/src/webdriver/Edge/EdgeDriverService.cs
index e917b23..3e150e8 100644
--- a/dotnet/src/webdriver/Edge/EdgeDriverService.cs
+++ b/dotnet/src/webdriver/Edge/EdgeDriverService.cs
@@ -73,12 +73,18 @@
/// <returns>An EdgeDriverService using a random port.</returns>
public static EdgeDriverService CreateDefaultService(string driverPath)
{
+ string fileName;
if (File.Exists(driverPath))
{
+ fileName = Path.GetFileName(driverPath);
driverPath = Path.GetDirectoryName(driverPath);
}
+ else
+ {
+ fileName = ChromiumDriverServiceFileName(MSEdgeDriverServiceFileName);
+ }
- return CreateDefaultService(driverPath, ChromiumDriverServiceFileName(MSEdgeDriverServiceFileName));
+ return CreateDefaultService(driverPath, fileName);
}
/// <summary>
diff --git a/dotnet/src/webdriver/Firefox/FirefoxDriverService.cs b/dotnet/src/webdriver/Firefox/FirefoxDriverService.cs
index d6a8fa7..ce03981 100644
--- a/dotnet/src/webdriver/Firefox/FirefoxDriverService.cs
+++ b/dotnet/src/webdriver/Firefox/FirefoxDriverService.cs
@@ -221,16 +221,22 @@
/// <summary>
/// Creates a default instance of the FirefoxDriverService using a specified path to the Firefox driver executable.
/// </summary>
- /// <param name="driverPath">The directory containing the Firefox driver executable.</param>
+ /// <param name="driverPath">The path to the executable or the directory containing the Firefox driver executable.</param>
/// <returns>A FirefoxDriverService using a random port.</returns>
public static FirefoxDriverService CreateDefaultService(string driverPath)
{
+ string fileName;
if (File.Exists(driverPath))
{
+ fileName = Path.GetFileName(driverPath);
driverPath = Path.GetDirectoryName(driverPath);
}
+ else
+ {
+ fileName = FirefoxDriverServiceFileName();
+ }
- return CreateDefaultService(driverPath, FirefoxDriverServiceFileName());
+ return CreateDefaultService(driverPath, fileName);
}
/// <summary>
diff --git a/dotnet/src/webdriver/IE/InternetExplorerDriverService.cs b/dotnet/src/webdriver/IE/InternetExplorerDriverService.cs
index 187890e..3a02b9c 100644
--- a/dotnet/src/webdriver/IE/InternetExplorerDriverService.cs
+++ b/dotnet/src/webdriver/IE/InternetExplorerDriverService.cs
@@ -161,16 +161,22 @@
/// <summary>
/// Creates a default instance of the InternetExplorerDriverService using a specified path to the IEDriverServer executable.
/// </summary>
- /// <param name="driverPath">The directory containing the IEDriverServer executable.</param>
+ /// <param name="driverPath">The path to the executable or the directory containing the IEDriverServer executable.</param>
/// <returns>A InternetExplorerDriverService using a random port.</returns>
public static InternetExplorerDriverService CreateDefaultService(string driverPath)
{
+ string fileName;
if (File.Exists(driverPath))
{
+ fileName = Path.GetFileName(driverPath);
driverPath = Path.GetDirectoryName(driverPath);
}
+ else
+ {
+ fileName = InternetExplorerDriverServiceFileName;
+ }
- return CreateDefaultService(driverPath, InternetExplorerDriverServiceFileName);
+ return CreateDefaultService(driverPath, fileName);
}
/// <summary>
diff --git a/dotnet/src/webdriver/Safari/SafariDriverService.cs b/dotnet/src/webdriver/Safari/SafariDriverService.cs
index 03fda32..10a77dd 100644
--- a/dotnet/src/webdriver/Safari/SafariDriverService.cs
+++ b/dotnet/src/webdriver/Safari/SafariDriverService.cs
@@ -154,16 +154,22 @@
/// <summary>
/// Creates a default instance of the SafariDriverService using a specified path to the SafariDriver executable.
/// </summary>
- /// <param name="driverPath">The directory containing the SafariDriver executable.</param>
+ /// <param name="driverPath">The path to the executable or the directory containing the SafariDriver executable.</param>
/// <returns>A SafariDriverService using a random port.</returns>
public static SafariDriverService CreateDefaultService(string driverPath)
{
+ string fileName;
if (File.Exists(driverPath))
{
+ fileName = Path.GetFileName(driverPath);
driverPath = Path.GetDirectoryName(driverPath);
}
+ else
+ {
+ fileName = DefaultSafariDriverServiceExecutableName;
+ }
- return CreateDefaultService(driverPath, DefaultSafariDriverServiceExecutableName);
+ return CreateDefaultService(driverPath, fileName);
}
/// <summary>