Перейти к содержимому

Фотография

Не найден Opera binary

Selenium OperaDriver C# Win7

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 11

#1 Gala_Fabu

Gala_Fabu

    Новый участник

  • Members
  • Pip
  • 8 сообщений

Отправлено 28 сентября 2017 - 05:29

Добрый день!

Очень нужна помощь, т.к. перерыв Интернет, ничего не нашла, а то, что нашла не помогло.

 

Делаем автотесты для сайта, на Хроме, ФФ, IE запускаются. 

Дошла очередь до Оперы.

Скачали Operadriver 2.29, сам файл расположен в корневом каталоге проекта, где и остальные драйвера (Хром, геко...)

Windows 7 (64 bit), Opera 48.0, пишем на C#

 

в файле по запуску вебДрайвера:

 

 
public static RemoteWebDriver Run(string browserName)
        {
            RemoteWebDriver driver = null;

            switch (browserName)
            {
                case browser_Firefox:
                    driver = new FirefoxDriver();
                    break;
                case browser_Opera:
                    driver = new OperaDriver();
                    break;

                default:
                    throw new ArgumentException(String.Format(@"<{0}> was not recognized as supported browser. This parameter is case sensitive", browserName), "WebDriverOptions.BrowserName");
            }

            return driver;
        }

 
При запуске теста получаем ошибку:
 
System.InvalidOperationException : unknown error: cannot find Opera binary
  (Driver info: OperaDriver=2.29 (8403ff684671eab5c5d4e15ee702c893f9ecb10b),platform=Windows NT 6.1.7601 SP1 x86_64)
 
Указание пути тоже не помогает, там выдается сообщение, что по пути "{здесь реальный путь до файла operadriver.exe}" файл не найден :(
 
string path = "...path\\to..."; //реальный путь, по которому не видно файла
driver = new OperaDriver(path);

Прошу помощи!

 


  • 0

#2 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 28 сентября 2017 - 07:46

так ему нужна сама опера - Opera binary (opera.exe)

а не драйвер

это вам драйвер пишет что он не нашел Оперу

скорее всего, она установлена не по умолчанию.


  • 0

#3 Gala_Fabu

Gala_Fabu

    Новый участник

  • Members
  • Pip
  • 8 сообщений

Отправлено 28 сентября 2017 - 07:50

так ему нужна сама опера - Opera binary (opera.exe)

а не драйвер

это вам драйвер пишет что он не нашел Оперу

скорее всего, она установлена не по умолчанию.

 

Опера есть, и она установлена по-умолчанию в C:\Program Files\Opera\

 

И даже когда пыталась указать путь к Опере

 string path = "C:\\Program Files\\Opera\\launcher.exe";
                    driver = new OperaDriver(path);

сообщение было другим и говорило о том, что хочет найти operadriver.exe:

OpenQA.Selenium.DriverServiceNotFoundException : The file C:\Program Files\Opera\launcher.exe\operadriver.exe does not exist. 

и даже, когда я указывала путь туда, где лежит operadriver.exe, тест всё равно не запускался.


  • 0

#4 Gala_Fabu

Gala_Fabu

    Новый участник

  • Members
  • Pip
  • 8 сообщений

Отправлено 28 сентября 2017 - 08:13

Только что на каком-то сайте нашла интересное сообщение от February 19th, 2016:

 

The OperaDriver has been deprecated so now the maximum Selenium WebDriver version that it supports is 2.34.0, and it supports a maximum of Opera version 12.17.

 

Возможно, в этом проблема :(


  • 0

#5 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 28 сентября 2017 - 09:47

Надо же, отдельный драйвер для Оперы снова вышел. Раньше работало с драйвером для Хрома.


  • 0

#6 Gala_Fabu

Gala_Fabu

    Новый участник

  • Members
  • Pip
  • 8 сообщений

Отправлено 29 сентября 2017 - 01:33

Надо же, отдельный драйвер для Оперы снова вышел. Раньше работало с драйвером для Хрома.

 
 
У нас с драйвером хрома не работало.
 
Если кому будет полезно, нам помогло следующее:
 
   case browser_Opera:
                    OperaDriverService service = OperaDriverService.CreateDefaultService(@"C://Windows/"); //path to OperaDriver
                    OperaOptions options = new OperaOptions();
                    options.BinaryLocation = @"C://Program Files/Opera/launcher.exe"; //path to my Opera browser
                    driver = new OperaDriver(service, options);
                    break;

  • 0

#7 Gala_Fabu

Gala_Fabu

    Новый участник

  • Members
  • Pip
  • 8 сообщений

Отправлено 29 сентября 2017 - 04:53

Но теперь появилась другая дурацкая проблема  :shok:

 

При запуске Opera появляется запрос местоположения, который блокирует доступ к элементам на странице, т.е. невозможно ни на что нажать, даже код страницы посмотреть невозможно.

Можно ли как-то настроить, чтобы при запуске это окно не появлялось, либо закрывалось.

 

Локальные настройки в самом opera.exe и launcher.exe не помогают. Каждый раз запускается новый экземпляр Оперы с этим окном  :shout:

 

А еще при завершении теста Опера за собой свой браузер не закрывает (


  • 0

#8 Alex

Alex

    Постоянный участник

  • Members
  • PipPipPip
  • 237 сообщений
  • ФИО:Алексей

Отправлено 29 сентября 2017 - 09:05

Но теперь появилась другая дурацкая проблема  :shok:

 

При запуске Opera появляется запрос местоположения, который блокирует доступ к элементам на странице, т.е. невозможно ни на что нажать, даже код страницы посмотреть невозможно.

Можно ли как-то настроить, чтобы при запуске это окно не появлялось, либо закрывалось.

 

Локальные настройки в самом opera.exe и launcher.exe не помогают. Каждый раз запускается новый экземпляр Оперы с этим окном  :shout:

 

А еще при завершении теста Опера за собой свой браузер не закрывает (

В опере вроде, как и в FF/Chrome есть понятие профиля. В профиле выставите значение по умолчанию для этого диалога (тут надо смотреть спецификацию).

Насчет не закрывается,  если делаете driver.quit(), то можно только посочувствовать :(.


  • 0

#9 Gala_Fabu

Gala_Fabu

    Новый участник

  • Members
  • Pip
  • 8 сообщений

Отправлено 02 октября 2017 - 00:22

 

Но теперь появилась другая дурацкая проблема  :shok:

 

При запуске Opera появляется запрос местоположения, который блокирует доступ к элементам на странице, т.е. невозможно ни на что нажать, даже код страницы посмотреть невозможно.

Можно ли как-то настроить, чтобы при запуске это окно не появлялось, либо закрывалось.

 

Локальные настройки в самом opera.exe и launcher.exe не помогают. Каждый раз запускается новый экземпляр Оперы с этим окном  :shout:

 

А еще при завершении теста Опера за собой свой браузер не закрывает (

В опере вроде, как и в FF/Chrome есть понятие профиля. В профиле выставите значение по умолчанию для этого диалога (тут надо смотреть спецификацию).

Насчет не закрывается,  если делаете driver.quit(), то можно только посочувствовать :(.

 

 

Да. Про профиль уже много начиталась и сейчас пытаюсь двигаться в эту сторону.

 

Есть вариант (такой я находила на просторах Интернета, и где-то на форуме подсказали):

 

                    OperaProfile profile = new OperaProfile();
                    profile.preferences().set("Geolocation", "Enable geolocation", false);
                    driver = new OperaDriver(profile);
 
Но в моем случае, проект не видит такого параметра, как OperaProfile. Пока разбираюсь.

 

А про driver.quit () - для Оперы не работает, поэтому буду "убивать" его в наглую. Других способов пока нет.

 

Как разберусь - обязательно отпишусь, может кому будет полезно.


  • 0

#10 Gala_Fabu

Gala_Fabu

    Новый участник

  • Members
  • Pip
  • 8 сообщений

Отправлено 02 октября 2017 - 02:05

В моем случае помогло следующее решение:
 

 OperaDriverService service = OperaDriverService.CreateDefaultService(); // operaDriver включили в проект (бросили в корневую папку проекта)
 OperaOptions options = new OperaOptions();
 options.BinaryLocation = @"C:\Program Files\Opera\launcher.exe"; //путь к Опере                     
 options.AddArguments(@"user-data-dir=C:\OperaProfile\"); // здесь лежит профайл с настройками
                    
driver = new OperaDriver(service, options);

 

Такое решение "кривое" и подходит только для запуска тестов в 1 поток, т.к. для параллельного запуска нужно клонирование профиля.


  • 0

#11 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 02 октября 2017 - 10:47

можно использовать библиотеку, которая всё за вас сделает - и бинарники подгрузит, и подключит их, и обновит если надо

 

https://github.com/r...iverManager.Net


  • 0

#12 Gala_Fabu

Gala_Fabu

    Новый участник

  • Members
  • Pip
  • 8 сообщений

Отправлено 03 октября 2017 - 00:08

можно использовать библиотеку, которая всё за вас сделает - и бинарники подгрузит, и подключит их, и обновит если надо

 

https://github.com/r...iverManager.Net

 

Спасибо. Попробую.


  • 0



Темы с аналогичным тегами Selenium, OperaDriver, C#, Win7

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных