-
Notifications
You must be signed in to change notification settings - Fork 22
Open
Description
Hello,
This is not an issue but rather a way to dynamically download the correct Edge webdriver depending on what edge version is currently installed on your system.
I hope some of you might find this helpful.
The same can be donw for Mac OS and Linux. I just wanted to leave a bit of an inspiration.
public void DownloadEdgeDriver()
{
FileVersionInfo info = null;
string version = null;
string drivername = null;
if(RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
if(!File.Exists(tmpfolder + "edgeversion.txt"))
File.Create(tmpfolder + "edgeversion.txt").Close();
if(Environment.Is64BitOperatingSystem is true)
{
info = FileVersionInfo.GetVersionInfo(@"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe");
drivername = "edgedriver_win64.zip";
}
else
{
info = FileVersionInfo.GetVersionInfo(@"C:\Program Files\Microsoft\Edge\Application\msedge.exe");
drivername = "edgedriver_win32.zip";
}
version = info.FileVersion;
string current = File.ReadAllText(tmpfolder + "edgeversion.txt").ToString();
if (version != current)
{
if(File.Exists(driverfolder + "\\*.zip"))
File.Delete(driverfolder + "\\*.zip");
if(File.Exists(driverfolder + "\\msedgedriver.exe"))
File.Delete(driverfolder + "\\msedgedriver.exe");
using (var client = new WebClient())
{
client.DownloadFile("https://msedgedriver.azureedge.net/" + version + "/" + drivername, driverfolder + "\\" + drivername);
}
if(File.Exists(driverfolder + "\\msedgedriver.exe"))
File.Delete(driverfolder + "\\msedgedriver.exe");
if(Directory.Exists(driverfolder + "\\Driver_Notes"))
Directory.Delete(driverfolder + "\\Driver_Notes", true);
ZipFile.ExtractToDirectory(driverfolder + "\\" + drivername, Configuration.DefaultBinDirWin);
File.WriteAllText(tmpfolder + "edgeversion.txt", version);
}
}
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels