Wrapper для проекта на Selenium WebDriver + C#

Добрый день!
После исследования надстройки для проекта Selenium + C# я не смог найти ничего такого полноценного и популярного, как Selenide для Selenium + Java.
Варианты, которые смог найти это:

А есть ли у кого-нибудь опыт с этими обвертками или другими надстройками для .Net?

1 Like

Такого в открытых источниках и нет, скорее всего.

Лично я использую своё ядро, которое обросло кучей всего за пару лет)

GitHub - aquality-automation/aquality-selenium-dotnet: Aquality Selenium is a library built over Selenium WebDriver tool that allows to automate work with web browsers. Selenium WebDriver requires some skill and experience. So, Aquality Selenium suggests simplified and most importantly safer and more stable way to work with Selenium WebDriver. я вот это использую!

очень по-уму у них сделано и есть также проекты для WInAppdriver / appium

Есть нугет пакеты!

Разработчики активно отвечают и в личку в скайпе в гитхабе на issue

2 Likes

Рекомендую, возможно захотите сделать как здесь описанно:

Статье 7 лет.
Так что я бы как минимум не стал делать используя MS Test.

3 Likes

@Oleksandr_Pushchalo сталкивался с такой же проблемой не один раз. Обычно многие делают свои кастомные фреймворки, но далеко не все предоставляют общий доступ к своим наработкам. Происходит это по разным причинам, часто из-за полиси. Ну и наверное C# не так популярен в мире автоматизации. Благо есть те, кто способствует развитию тулов по автоматизации на .Net. Например, Allure для работы с .Net-проектами от @Noksa. Потому и мы решили сделать вместе с коллегой некий аналог Селенида - Selenious. Пока что он у нас тестируется на внутренних проектах компании и еще не все реализовано в нем по функционалу. Надеемся довести его до ума и презентовать его как открытый и поддерживающийся враппер для WebDriver на .Net.

3 Likes

Ждём-с :slight_smile:

А вы решили сделать максимально похоже на Selenide?
Element("#multirowTable").Should(Or("both true", Be(Visible), Have(CssClass("table"))));
как по мне Fluent быстрее в написании и заставляет меньше напрягать память, что то типа такого

Element("#multirowTable").Should.Or(Be.Visible(), Have.CssClass("table"));
Element("#multirowTable").Should.Be.Visible().And.Have.CssClass("table"));
1 Like

Я бы смотрел в сторону Assert.That, как сделано в NUnit.
На мой скромный взгляд очень удобно.
Но я правда не знаю как в Selenide, может похоже.

1 Like

Да мне тоже нравится, но там все универсально, можно больше заточить под Webdriver. Особо удобная для UI тестирования фича это After, так как не всегда нужные значения сразу появляются

В этой универсальности и своя фишечка. :slight_smile:

А так, приятно видеть что есть энтузиасты ещё в нашей шарповой бригаде :slight_smile:

1 Like

Да я надеюсь с VS Code и .net core, c# еще стрельнет :grinning: как по мне он недооценен

1 Like

VS Code вообще прекрасен. Я в большей степени использую его.
Особенно его Remote Development плагин, позволяющий дебажить контейнеры или прям в них вести разработку. Помимо WSL.

Но там конечно очень не хватает нормального IntelliSense для разных языков.
Например для groovy до сих пор нормального так и нет.

1 Like

Да, тут мы больше отталкивались от селенид стиля. Возможно, подобная “стандартизация” позволит нам агрегировать людей вокруг Селениуса не только среди пользователей .Net, но и среди Java. Время покажет:) В любом случае ваши рассуждения касательно возможных вариантов лишними не будут и это даст нам толчок к привнесению некой “изюминки” Selenious, отличной от Selenide:)

2 Likes

Тем более флюент можно сделать поверх того функционала который есть, будет как синтаксический сахар, кому как удобнее тот тем и будет пользоваться)

Сам не пользовался, но слышал неплохие отзывы

1 Like