Skip to content

Commit 5f42cf9

Browse files
committed
Merge branch 'vitaliydavydiak-fix-edge-config'
2 parents 91f8d5b + 13e697a commit 5f42cf9

12 files changed

+45
-27
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: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
using System.Reflection;
2+
using OpenQA.Selenium;
3+
4+
namespace WebDriverManager.Tests
5+
{
6+
public static class WebDriverFinder
7+
{
8+
public static string FindFile(string fileName)
9+
{
10+
var type = typeof(IWebDriver).Assembly.GetType("OpenQA.Selenium.Internal.FileUtilities");
11+
var bindings = BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Static;
12+
return type.InvokeMember("FindFile", bindings, null, null, new object[] { fileName }).ToString();
13+
}
14+
}
15+
}

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/ChromeConfig.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
using System.IO;
33
using System.Net;
44
using System.Runtime.InteropServices;
5-
using WebDriverManager.DriverConfigs;
65

76
namespace WebDriverManager.DriverConfigs.Impl
87
{

WebDriverManager/DriverConfigs/Impl/EdgeConfig.cs

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,29 @@
1-
using System.Linq;
1+
using System;
2+
using System.IO;
23
using System.Net;
3-
using AngleSharp.Html.Parser;
4+
using System.Runtime.InteropServices;
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+
return RuntimeInformation.IsOSPlatform(OSPlatform.OSX)
25+
? $"{BaseVersionPatternUrl}edgedriver_mac64.zip"
26+
: $"{BaseVersionPatternUrl}edgedriver_win64.zip";
2227
}
2328

2429
public virtual string GetBinaryName()
@@ -28,18 +33,19 @@ public virtual string GetBinaryName()
2833

2934
public virtual string GetLatestVersion()
3035
{
31-
using (var client = new WebClient())
36+
var uri = new Uri("https://msedgedriver.azureedge.net/LATEST_BETA");
37+
var webRequest = WebRequest.Create(uri);
38+
using (var response = webRequest.GetResponse())
3239
{
33-
var htmlCode =
34-
client.DownloadString("https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver");
35-
var parser = new HtmlParser();
36-
var document = parser.ParseDocument(htmlCode);
37-
var version = document.QuerySelectorAll(".driver-download > a + p")
38-
.Select(element => element.TextContent)
39-
.FirstOrDefault()
40-
?.Split(' ')[1]
41-
.Split(' ')[0];
42-
return version;
40+
using (var content = response.GetResponseStream())
41+
{
42+
if (content == null) throw new ArgumentNullException($"Can't get content from URL: {uri}");
43+
using (var reader = new StreamReader(content))
44+
{
45+
var version = reader.ReadToEnd().Trim();
46+
return version;
47+
}
48+
}
4349
}
4450
}
4551
}

0 commit comments

Comments
 (0)