Не получается стартануть Яндекс браузер из Selenide

Всем привет! Возникла проблема, может кто-нибудь сталкивался…

Пытаюсь стартануть Яндекс браузер для тестов.

Гугл подсказал, что можно использовать обычный хромдрайвер или операдрайвер.

Пробовал и тот и другой, в коде делал так:

ChromeOptions options = new ChromeOptions();
options.setBinary("здесь передаю путь до бинарника Яндекс браузера");
WebDriverRunner.setWebDriver(new ChromeDriver(options));
open(url);

Так же делал для оперы.
Браузер не стартует.
В случае с хромом ловлю исключение:
SessionNotCreatedException: session not created: This vrsion of ChromeDriver only supports Chrome version 75
С оперой исключение то же, но текст ошибки другой:
No matching capabilities found

Версия селенида 5.2.3, версия Яндекса 18.3.1.1220, версия хромдрайвера 75.0.3770.140, версия операдрайвер 75.0.3770.100

Предполагаю, что дело в совместимости версий, может у кого получалось стартануть Яндекс и есть работающее сочетание версий?


if(ProjectEnvironment.BrowserName == "Yandex")
            {
                string profilePath = YandexProfile.CreateProfileDir();

                ChromeOptions options = new ChromeOptions
                {
                    AcceptInsecureCertificates = true
                };

                options.AddArgument("--start-maximized");
                options.AddArgument("--disable-infobars");

                options.AddArgument($"--user-data-dir={profilePath}");
                options.AddArgument("--profile-directory=Profile 1");

                options.BinaryLocation = Environment.ExpandEnvironmentVariables("%USERPROFILE%\\AppData\\Local\\Yandex\\YandexBrowser\\Application\\browser.exe");

                Browser = new ChromeDriver(ProjectEnvironment.ChromeDriverPath, options);
            }

Спасибо, получилось стартануть

Может, кто-нибудь покажет такой же рабочий пример для python ?

Заранее Благодарю!

  • берете последний хромдрайвер
  • последнюю версию ЯБ
  • указываете в chromeOptions путь до бинаря ЯБ
  • запускаете браузер

недавно яндекс сдал выкладывать свой драйвер тут

в ридми написано, как что надо делать

2 лайка

кстати там как раз про питон написано

Приветствую. Делал так,

  1. брал последний драйвер Chrome 87 (и яндекс драйвер пробовал 20.12.0-stable)
  2. установил YB 20.11.0.821
  3. options.setBinary(System.getenv(“programfiles(x86)”) + “\Yandex\YandexBrowser\Application\browser.exe”);
  4. open(Configuration.baseUrl);

те же ошибки, что и у автора. Так и и не понял как стартануть.

PS Используются: Selenide, TestNg.

лог ошибки приведите, пожалуйста.

JAVA CODE

ChromeOptions options = new ChromeOptions();
System.setProperty(“webdriver.chrome.driver”, “webdriver/yandexdriver.exe”);
options.setBinary(System.getenv(“programfiles(x86)”) + “\Yandex\YandexBrowser\Application\browser.exe”);

try {
WebDriverRunner.setWebDriver(new ChromeDriver(options));
} catch (Exception e2) {
System.out.println("ERROR setWebDriver : " + e2);
}

LOG

[RemoteTestNG] detected TestNG version 7.0.1
Пытаемся подключить локальный драйвер
SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See SLF4J Error Codes for further details.
Starting ChromeDriver 87.0.4280.60 (00d372ae3f421bac28237a2f74c26ae9cd193f0f) on port 20375
Only local connections are allowed.
Please see ChromeDriver - WebDriver for Chrome - Security Considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
ERROR setWebDriver : org.openqa.selenium.SessionNotCreatedException: session not created: This version of ChromeDriver only supports Chrome version 87
Current browser version is 86.0.4240.77 with binary path C:\Program Files (x86)\Yandex\YandexBrowser\Application\browser.exe
Build info: version: ‘3.141.59’, revision: ‘e82be7d358’, time: ‘2018-11-14T08:17:03’
System info: host: ‘63-FROLOVV’, ip: ‘10.63.10.72’, os.name: ‘Windows 7’, os.arch: ‘amd64’, os.version: ‘6.1’, java.version: ‘1.8.0_251’
Driver info: driver.version: ChromeDriver
remote stacktrace: Backtrace:
Ordinal0 [0x010C9E23+3513891]
Ordinal0 [0x00FB1E21+2367009]
Ordinal0 [0x00E1D5A1+710049]
Ordinal0 [0x00D86197+90519]
Ordinal0 [0x00D8237A+74618]
Ordinal0 [0x00D7F199+61849]
Ordinal0 [0x00DAF916+260374]
Ordinal0 [0x00DAF63C+259644]
Ordinal0 [0x00DAAF6B+241515]
Ordinal0 [0x00D88583+99715]
Ordinal0 [0x00D89544+103748]
Ordinal0 [0x00D894C9+103625]
Ordinal0 [0x00FC9989+2464137]
GetHandleVerifier [0x0125DE5E+1543662]
GetHandleVerifier [0x0125DB0E+1542814]
GetHandleVerifier [0x01265964+1575156]
GetHandleVerifier [0x0125E60F+1545631]
Ordinal0 [0x00FC0BB1+2427825]
Ordinal0 [0x00FCB8CB+2472139]
Ordinal0 [0x00FCBA07+2472455]
Ordinal0 [0x00FDF1CE+2552270]
BaseThreadInitThunk [0x7696343D+18]
RtlInitializeExceptionChain [0x773B9812+99]
RtlInitializeExceptionChain [0x773B97E5+54]

BROWSERS

ScreenShot442
ScreenShot443

PS
Ещё не понимаю, почему в логе пишется Starting “ChromeDriver 87”, если в конфигурации указан “yandexdriver”

потому что по сути это хром драйвер
обновите яндекс браузер

судя по скрину, яб у вас последний, тогда возьмите предыдущую версию яндекс драйвера

1 лайк

короче, короткая инструкция для тех MACоводов, кто не хочет страдать:

  1. Загружаем драйвер для [хрома] и/или [яндекса]
  2. Желательно(!) распаковать файлы в отдельную папку проекта
  3. Там где вам удобно ДО(!) первого взаимодействия с драйвером (в случае с Selenide - до вызова open) пишем следующее:

System.setProperty("webdriver.chrome.driver","Здесь/весь/путь/до/файла/и/сам_файл"); WebDriver driver =new ChromeDriver(); setWebDriver(driver);

Если вы думаете, что это всё - пристегните ремни.4. Через терминал (я иначе не умею. Можно и через GUI суметь) прыгаем к файлу (ну или задаем весь путь с файлом сразу, если очень уверены в себе) и набираем команду:

ls -l

в идеале у вас тут должны вылезти строки типа:

-rwxrwxrwx@ 1 user staff 18008656 date yandexdriver

НО, если это не так, то едем дальше.

  1. Вводим команду:

chmod a+rwx yandexdriver

вместо yandexdriver подставляем драйвер по желанию

  1. Пытаемся завести нашу машину на костылях, получаем следующее предупреждение, мол, источник сомнительный. Не беда. Идём в Настройки → Защита и безопасность → снимаем замок и видим надпись “разрешить исполнять драйвер от стороннего разработчика” (или что-то подобное, я не успел сфоткать).

  2. Заводим наш драйвер еще раз, он не заведется, упадёт - это нормально. Закрываем IDE, ждём 1 минуту, читаем любую мантру, запускаем тест с драйвером - он работает. Поздравляю. Вы - великолепны!

1 лайк