Мы пытаемся создать верификатор веб-сайта для нашего внутреннего сайта, чтобы убедиться, что все сайты заняты. Для этого мы используем хромированный селен.Не удалось найти файл с именем после развертывания. C#
У нас есть 2 проекта для этого: 1 главный проект, выполняющий код. 1 «общий» проект, который разделяется между всеми нашими различными решениями. Этот проект содержит данные, которые используются в нескольких решениях.
Мы разместили chromedriver в общем проекте, и инициализировать его следующим образом:
public static IWebDriver InitiateChromeDriver()
{
ChromeOptions option = new ChromeOptions();
option.AddUserProfilePreference("download.default_directory", downloadPath);
option.AddUserProfilePreference("disable-popup-blocking", "true");
var path = Path.GetFullPath("Utility");
Console.WriteLine(path);
IWebDriver driver = new ChromeDriver(path, option, TimeSpan.FromMinutes(20));
return driver;
}
Этот метод помещается в папку «Utility», вместе с Chromedriver.exe, и может работать локально, когда отладки через Visual Studio. Когда мы развертываем его на нашем производственном сервере, он не может найти путь к хромированному реестру. Указанный путь изменяется на C: \ windows \ system32 \ inetsrv \ Utility \ chromedriver.exe на нашем производственном сервере.
Что такое лучший подход при ссылке на файл и обеспечение правильности пути?
Простым решением было бы сохранить путь в файле .Config для решения, а затем использовать его. –
Проблема с этим подходом заключается в том, что путь может измениться. У нас несколько серверов, работающих на разных сайтах в IIS, и не все они работают на диске C: /, поэтому путь изменится. Другая вещь, которая меняется, - это имя папки, так как у нас есть предыдущие версии. При развертывании новое имя папки имеет текущую временную метку прикрепленного к ней развертывания, поэтому имя папки также изменяется. – Jannik
Затем вы можете попытаться сделать установщик сохранить путь в раздел реестра (при условии, что это MSI или что-то подобное). –