Skip to content

Commit 6aa78ac

Browse files
Fix Edge config to reflect current Microsoft web page.
Enhance tests to verify driver was actually downloaded and can be found by Selenium
1 parent 91f8d5b commit 6aa78ac

File tree

9 files changed

+36
-6
lines changed

9 files changed

+36
-6
lines changed

WebDriverManager.Tests/ChromeConfigTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public void VersionTest()
1919
public void DriverDownloadTest()
2020
{
2121
new DriverManager().SetUpDriver(new ChromeConfig());
22+
Assert.NotEmpty(WebDriverFinder.FindFile(GetBinaryName()));
2223
}
2324
}
2425
}

WebDriverManager.Tests/EdgeConfigTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public void VersionTest()
1919
public void DriverDownloadTest()
2020
{
2121
new DriverManager().SetUpDriver(new EdgeConfig());
22+
Assert.NotEmpty(WebDriverFinder.FindFile(GetBinaryName()));
2223
}
2324
}
2425
}

WebDriverManager.Tests/FirefoxConfigTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public void VersionTest()
1919
public void DriverDownloadTest()
2020
{
2121
new DriverManager().SetUpDriver(new FirefoxConfig());
22+
Assert.NotEmpty(WebDriverFinder.FindFile(GetBinaryName()));
2223
}
2324
}
2425
}

WebDriverManager.Tests/InternetExplorerConfigTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public void VersionTest()
1919
public void DriverDownloadTest()
2020
{
2121
new DriverManager().SetUpDriver(new InternetExplorerConfig());
22+
Assert.NotEmpty(WebDriverFinder.FindFile(GetBinaryName()));
2223
}
2324
}
2425
}

WebDriverManager.Tests/OperaConfigTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public void VersionTest()
1919
public void DriverDownloadTest()
2020
{
2121
new DriverManager().SetUpDriver(new OperaConfig());
22+
Assert.NotEmpty(WebDriverFinder.FindFile(GetBinaryName()));
2223
}
2324
}
2425
}

WebDriverManager.Tests/PhantomConfigTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public void VersionTest()
1919
public void DriverDownloadTest()
2020
{
2121
new DriverManager().SetUpDriver(new PhantomConfig());
22+
Assert.NotEmpty(WebDriverFinder.FindFile(GetBinaryName()));
2223
}
2324
}
2425
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
2+
3+
using System.Reflection;
4+
using OpenQA.Selenium;
5+
6+
namespace WebDriverManager.Tests
7+
{
8+
public static class WebDriverFinder
9+
{
10+
public static string FindFile(string fileName)
11+
{
12+
var type = typeof(IWebDriver).Assembly.GetType("OpenQA.Selenium.Internal.FileUtilities");
13+
var bindings = BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Static;
14+
return type.InvokeMember("FindFile", bindings, null, null, new object[] { fileName }).ToString();
15+
}
16+
}
17+
}

WebDriverManager.Tests/WebDriverManager.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<ItemGroup>
1010
<PackageReference Include="coverlet.msbuild" Version="2.6.3" />
1111
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.2.0" />
12+
<PackageReference Include="Selenium.WebDriver" Version="3.141.0" />
1213
<PackageReference Include="xunit" Version="2.4.1" />
1314
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
1415
</ItemGroup>

WebDriverManager/DriverConfigs/Impl/EdgeConfig.cs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,31 @@
1-
using System.Linq;
1+
using System.Linq;
22
using System.Net;
3+
using System.Runtime.InteropServices;
34
using AngleSharp.Html.Parser;
45

56
namespace WebDriverManager.DriverConfigs.Impl
67
{
78
public class EdgeConfig : IDriverConfig
89
{
10+
private const string BaseVersionPatternUrl = "https://msedgedriver.azureedge.net/<version>/";
11+
912
public virtual string GetName()
1013
{
1114
return "Edge";
1215
}
1316

1417
public virtual string GetUrl32()
1518
{
16-
return "https://az813057.vo.msecnd.net/webdriver/msedgedriver_x86/msedgedriver.exe";
19+
return $"{BaseVersionPatternUrl}edgedriver_win32.zip";
1720
}
1821

1922
public virtual string GetUrl64()
2023
{
21-
return "https://az813057.vo.msecnd.net/webdriver/msedgedriver_x64/msedgedriver.exe";
24+
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
25+
{
26+
return $"{BaseVersionPatternUrl}edgedriver_mac64.zip";
27+
}
28+
return $"{BaseVersionPatternUrl}edgedriver_win64.zip";
2229
}
2330

2431
public virtual string GetBinaryName()
@@ -34,9 +41,8 @@ public virtual string GetLatestVersion()
3441
client.DownloadString("https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver");
3542
var parser = new HtmlParser();
3643
var document = parser.ParseDocument(htmlCode);
37-
var version = document.QuerySelectorAll(".driver-download > a + p")
38-
.Select(element => element.TextContent)
39-
.FirstOrDefault()
44+
var version = document.QuerySelectorAll(".driver-download > p.driver-download__meta")
45+
.Select(element => element.TextContent).ToList()[2]
4046
?.Split(' ')[1]
4147
.Split(' ')[0];
4248
return version;

0 commit comments

Comments
 (0)