С# + WebDriver + какой Framework? (посоветуйте)

Html Elements по сути это концепция (хотя рассматривается на примере продукта Яндекса)
Суть ее не требует знаний языков программирования. (кстати у Яндекса есть вариант их инструмента и для C#)
Концепция заключается в следующем: мы смотрим на объекты на странице с точки зрения пользователя, с точки зрения ООП
Что мы видим на страницах когда тестируем? Кнопки, чекбоксы, текстовые поля. Ну так давай те опишем объекты которые им соответствуют. Вот суть Html Elements )
Каждый Элемент имеет локатор на себя и может делать определенный набор действий (Click, GetLabel и пр.)
В отличие от WebElement Webdriver-а который умеет(пытается) делать все.(кликать куда нельзя кликать и пр.)

VI Elements - включает в себя Htmlelements и развивает их
Добавляя к возможностям HtmlElements настройки каждого действия. (если из списка можно выбрать элемент, то на разных сайтах это сделано по разному, хотя и выглядит одинаково) инструмент Яндекса и Bumblbee умеют это делать только одним способом, Либо надо создавать свой элемент наследуясь от базовых. В VIQA не надо создавать своих классов просто можно переопределить любое действие.

Ну и есть возможность переопределить работу всех элементов в целом (такое АОП) добавить логирование для всех действий сразу, сбор каких-нибудь метрик или чего вам заблагорассудится )

Да Grid сейчас не поддерживается. Это не самый простой элемент. Постараюсь сделать в ближайшее время)
А что вы подразумеваете под remote execution? Запуск тестов удаленно? так это лежит на плечах NUnit или MSTest или кто у вас тесты собирает. Вика вообще этого не касается.

RemoteWebDriver support. Я вообще с джавой работаю. :smile:
Собственно устраивать холивары и экскурсы на тему, зачем нужен RemoteWebDriver, мне не хочется. Но в свое время общими усилиями на этом же форуме мы убедили создателя Seleneide в его надобности. Если будет интересно, поищите соответствующую тему. Даже 2, по-моему.

Почему NUnit или MSTest? Селениум же предоставляет все необходимое для удаленного запуска.

Ну так вам никто не мешает запустить ваши тесты используя RemoteWebDriver…
var MySite = new VISite(() => new RemoteWebDriver());
Вы можете передать сайту любой Драйвер поддерживаемый Selenium, с любыми настройками. И делать все тоже самое с драйвером, что вы делаете работая просто с Selenium.
Или я чего-то не понимаю в вашем вопросе?

VIQA вроде как поддерживает все драйверы Selenium. C любыми настройками.

Вот кстати пример не совсем по теме, как можно запустить 3 тестовых сценария параллельно в разных браузерах
Можно аналогично в параллельном потоке делать некие вещи, пока основной тест чего-то ждет

    [Test]
    public void VIQAParallelTestsExample(
        [ValueSource("IPhoneProducts")] Product product,
        [ValueSource("IPhoneFilters")] Filter filter)
    {
        SimpleTestScenarioTaskRun(new MySite(BrowserType.Chrome), product, filter);
        SimpleTestScenarioTaskRun(new MySite(BrowserType.Firefox), product, filter);
        SimpleTestScenarioTaskRun(new MySite(BrowserType.IE), product, filter);
    }

    private Task SimpleTestScenarioTaskRun(MySite site, Product product, Filter filter)
    {
        var task = new Task(() =>
        {
            site.HomePage.Open();
            SearchSection.SearchProduct(filter.ShortSearchName);
            CheckProduct(product);
        });
        task.Start();
        return task;
    }

Если так, то хорошо. :wink:
Вопрос был задан, исходя из этого куска кода, глубоко не копая:

        private static Func<IWebDriver> GetDriver(BrowserType browserType)
        {
            switch (browserType)
            {
                case BrowserType.Firefox:
                    return () => new FirefoxDriver();
                case BrowserType.Chrome:
                    return () => new ChromeDriver("..\\..\\Drivers");
                case BrowserType.IE:
                    return () => new InternetExplorerDriver("..\\..\\Drivers");
                default:
                    return () => new FirefoxDriver();
            }

        }

Было бы неплохо запостить побольше тестовых примеров вашего творения.

Ну вы же понимаете, что на одной машине так делать нельзя?

Работаю сейчас над тестовыми примерами.
Этот кусок кода только для упрощения, если вам просто нужно запустить в браузере, без настроек и прочее.
Типа дефолтные варианты
Но вы всегда можете передать Вике любой драйвер с любыми настройками

Да, я же говорю не совсем по теме.
Просто можно иногда распаралелить некие действия для одного теста.
К примеру вы можете отдельным процессом запустить прекондишн допустим заполнения тестовой базы (или создание пользователя через админку или еще чего-то) и отдельным тест установив Wait в том месте теста где без этих тестовых данных уже никак. Может еще как-то можно применить
Я это не к тому чтобы тесты так запускать )

Роман,
Укажите все полезные ссылки по вашему проекту (VIQA) пожалуйста.

  1. Все новости о продукте и ссылки можно найти в группе вконтакте VIQA | VK (все что ниже описано можно найти в группе)
  2. Статья на Хабре. Обзорное описание продукта, его основных возможностей и концепций (с примерами)
  3. Код проекта на ГитХаб. С описанием разных способов установки. (в полной версии также есть примеры)
  4. Презентация проекта на SQA Days 15 (всего 20 минут) в формате сравнения с Yandex QA Tool
    Видео с конференции
    Слайды презентации

Еще возник вопрос по поводу репортов выполнения тестов.
Есть ли какие то готовые решения что можно подключить и не тратить время на написание своего?
Напомню, речь о C#.

Я в этом топике частично ответил: Логи работы WebDriver

По сути сейчас, одного и самого лучшего решения нет, по крайней мере для C# + WebDriver. Нужно писать самому и комбинировать существующие отдельные решения