Ken-in-California Ответов: 1

Запуск opera с помощью C# selenium


Я использую C#, Selenium (3.141.0) и MSTest.TestFramework для тестирования довольно сложного проекта веб-сайта. Моя цель довольно прямолинейна - протестировать сайт на различных браузерах для сайта (который используется во всем мире).

Нет никаких проблем с управлением Chrome, Firefox и IE от Selenium. Но я также хочу протестировать и поддержать Opera - которая не так распространена в США, но очень распространена в других местах.

Я вижу статьи, которые предполагают, что Opera может быть поддержана, но я не могу заставить ее работать.

Основной экземпляр (который терпит неудачу) - это:
драйвер iWebDriver = новый OperaDriver();
Возможно, мне не хватает некоторых аргументов для конструктора, например, пути к драйверу Opera (я скачал его operadriver.exe откуда https://github.com/operasoftware/operachromiumdriver/releases - и попытался добавить путь в качестве строкового аргумента - но это не сработало.

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

Что я уже пробовал:

Попробовал конструктор, отмеченный выше

David_Wimbley

Вы получаете какие-нибудь ошибки? Вы пробовали использовать RemoteWebDriver и передавать настройки браузера таким образом?

Ken-in-California

Привет, Дэвид.
Я попробовал создать экземпляр с помощью:
драйвер iWebDriver = новый OperaDriver("C:\\Opera\\", operaOptions, TimeSpan.Вызываем(1.0 д));
Ошибка, которую я получаю, заключается в следующем
OpenQA.Selenium.WebDriverException: 'неизвестная ошибка: не удается найти двоичный файл Opera
(Информация о драйвере: OperaDriver=2.42.3135 (O58),платформа=Windows NT 10.0.17763 x86_64)'

Кстати ... C:\\Opera\\" - это место нахождения operadriver.exe - загружено с сайта at https://github.com/operasoftware/operachromiumdriver/releases.

Я не пробовал RemoteWebDriver, потому что я инкапсулировал свой выбор браузера - в начале тестов тестер выбирает, какие браузеры запускать, а затем я
передайте Chrome, Firefox или IE iWebDriver в код для выбранного теста и последовательно запустите тот же Тест, что и каждый выбранный браузер.

David_Wimbley

Разве вы не должны указывать точный EXE-файл, а не относительный путь к папке?

Ken-in-California

Дэвид ... я попробовал это первым ... я использовал ... C:\\Opera\\operadriver.exe - ... и ошибка, которую я получил, была:

OpenQA.Selenium.DriverServiceNotFoundException: 'файл C:\Opera\operadriver.exe\operadriver.exe не существует. Драйвер можно скачать по адресу https://github.com/operasoftware/operachromiumdriver/releases'

В свете дублирования я обрезал свою нить на косой черте.

Mehdi Gholam

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

Ken-in-California

Мехди - да - движок под Opera - это Chromium-поэтому я уверен, что он выполнит тот, который я выясню, как связать драйвер с исполняемым файлом браузера.

1 Ответов

Рейтинг:
1

Ken-in-California

У меня получилось, хотя и не очень удачно.

Шаг 1 - я скачал соответствующий файл operadriver.exe двоичный файл из: https://github.com/operasoftware/operachromiumdriver/releases

Я отодвинул operadriver.exe чтобы ... C:\\Opera\".

В моем коде я уже настроил объект iWebDriver с именем driver.

Opera уже была установлена в моей системе в месте по умолчанию - как будет ясно ниже.

Вот код, который сработал...

using OpenQA.Selenium;
using OpenQA.Selenium.Opera;
using OpenQA.Selenium.Support.UI;

OperaDriverService service = OperaDriverService.CreateDefaultService("C:\\Opera\\","operadriver.exe");
var operaOptions = new OperaOptions
   {
      BinaryLocation = "C:\\Users\\username\\AppData\\Local\\Programs\\Opera\\58.0.3135.127\\opera.exe",
                            LeaveBrowserRunning = false
   };
   driver = new OperaDriver(service, operaOptions);


Несовершенство, о котором я знаю прямо сейчас, - это всплывающее окно "Управление расширениями", которое появляется - я не смог подавить его до сих пор-и не хочу подавлять все всплывающие окна, потому что сайт действительно генерирует некоторые предупреждения/всплывающие окна в определенных тестируемых ситуациях.

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