public void DownloadFileIexplore(string filePath) { //Click the link. //Simple click can be used instead, but in my case it didn't work for all the links, so i've replaced it with click via action: new Actions(Browser.Driver).MoveToElement(Element).Click(Element).Perform(); //Different types of element can be used to download file. //If the element contains direct link, it can be extracter from 'href' attribute. //If the element doesn't contains href or it's just an javascript command, link will be extracted from the browser http requests. // string downloadUrlOrLink = Element.GetAttribute("href") != null && !Element.GetAttribute("href").Contains("javascript") ? Element.GetAttribute("href") : GetRequestUrls().Last() ?? GetLinkInNewWindowIexplore(); if (downloadUrlOrLink == null) { throw Log.Exception("Download url cannot be read from the element href attribute and from the recent http requests."); } /// the last step is to download file using CookieWebClient /// method DownloadFile is available in the System.Net.WebClient, /// but we have to create new class CookieWebClient, that will be inherited from System.Net.WebClient with one overriden method new CookieWebClient(GetCookies()).DownloadFile(downloadUrlOrLink, filePath); } /// /// this method returns all the http requests sent from browser. /// the latest requests was send when link (or button) was clicked to download file /// so we will need just to get last element from list: GetRequestUrls().Last(). /// or, if the request for file downloading isn't the last, find the required request by part of url, in my case it was 'common/handler', eg: /// GetRequestUrls().LastOrDefault(x => x.Contains("common/handler")) /// public List GetRequestUrls() { ReadOnlyCollection