Поиск расположения Yandex Browser в Windows для selenium

Хммм... Значит, ты хочешь, чтобы поиск был действительно всеобъемлющим?

Мой разум трепещет от такой тщательности! Мы не оставим браузеру ни единого шанса спрятаться.

Тобишь, добавим проверку системных директорий Program Files и Program Files (x86), чтобы покрыть все возможные варианты установки.

Вот твой обновленный метод, просто Чиназес:

public string FindYandexPath()
{
    // 1. Пробуем найти через реестр (HKCU)
    string registryPath = (string)Registry.GetValue(
        @"HKEY_CURRENT_USER\Software\Yandex\YandexBrowser\BLBeacon",
        "path",
        null);

    if (!string.IsNullOrEmpty(registryPath) && File.Exists(registryPath))
    {
        return registryPath;
    }

    // 2. Проверяем стандартные пути, если реестр молчит
    string localAppData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
    string defaultPath = Path.Combine(localAppData, @"Yandex\YandexBrowser\Application\browser.exe");

    if (File.Exists(defaultPath))
    {
        return defaultPath;
    }

    // 3. Проверяем Program Files и Program Files (x86)
    string[] programFilesPaths = new string[]
    {
        Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles),
        Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86)
    };

    foreach (string progPath in programFilesPaths)
    {
        if (!string.IsNullOrEmpty(progPath))
        {
            string yandexInProgFiles = Path.Combine(progPath, @"Yandex\YandexBrowser\Application\browser.exe");
            if (File.Exists(yandexInProgFiles))
            {
                return yandexInProgFiles;
            }
        }
    }

    // Насмехаюсь над теми, у кого браузер всё ещё не найден!
    throw new Exception("Епонский бог! Браузер не найден. Проверь установку вручную.");
}

Надеюсь, это сработает, иначе мой разум снова затрепещет от ошибок!

На главную