Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Подскажите пожалуйста, что изучать в C# и webdriver?


(Cybernetic2045) #1

Доброго времени суток автоматизаторы!  Столкнулся с задачей автоматизировать работу браузера с веб сайтами увязнув в этот же день в путине непонимания методов. Сейчас начал изучать C#  в сети  пишут, что  для написания простых тестов используя Selenium WebDriwer  не обязательно быть заядлым  прогером.  Хотелось бы услышать от вас всевозможные советы , как быстрее и грамотнее начать углубляться в данную тематику ) 

Вопросы :

1   Какие элементы языка C#  разумней будет изучить в первую очередь, а так же в какие стоит углубиться?

2   Какой инструментарий необходим для работы со всей широтой функционала веб драйвера?

3   Есть ли  интернет ресурсы с подробным описанием  возможностей вебдрайвера на рус языке?

Зарание благодарен за ответы :_)

 


(apetrovskiy) #2

2. SharpDevelop http://www.icsharpcode.net/OpenSource/SD/Download/

1. Мне для написания фреймворков хватает: класс/метод/свойство, наследование (включая interface, override, new, protected), статический класс/метод, System.IO, System.DateTime, System.data.* (ADO.NET), разнообразные массивы/списки/коллекции, System.Windows.Automation (выход за пределы возможностей драйвера), время от времени LINQ. Остальное ещё реже

3. Я видел перевод доки селениума на selenium2.ru (аналог доки на seleniumhq.org), здесь, на портале, есть статьи (ещё не читал, честно говоря). Примеры кода можно посмотреть, загрузив исходники с SePSX.CodePlex.com (на заглавной странице проекта есть таблица, где в первом столбце метод или свойство на java/C#, во втором - название котлеты. Название котлеты переделывается в класс так: Get-SeWebElementText -> GetSeWebElementTextCommand, начинаете смотреть вызываемые методы и SharpDevelop вас ведёт, прыгая по Goto definition).

Upd: забавный мелкий баг - точка после нумерованного айтема принята за конец предложения и получился сабжект "2.".


(qaleader) #3

Cybernetic2045, я тоже являюсь новичком в деле автоматизации, опыт у меня всего 2 месяца, но за это время я покрыл автотестами 90% функционала моего маленького проекта, сейчас тружусь над другим. В свое время я начинал с IDE, потом перешел на C# и webdriver, так вот хочу сказать что при написании теста абсолютно не требуется каких-либо глубоких знаний. Вам необходимо изучать сам Webdriver его библиотеки, классы, методы и этого будет достаточно. 

Начните с того что сформируйте себе шаблон теста, а потом наполняйте его шагами. Для шаблона отлично может подойти IDE, который сам сконвертирует ваш тест на код в C#. Да конечно многое придется править руками, там есть ошибки, но таким образом вы получите структуру и примерный вид теста.

1. Начинайте с основ, если с ними еще не знакомы, чаще всего в моих тестах это циклы, условные операторы, блоки try и catch. А так же сам механизм ООП, т.е классы, методы...Так же очень полезно будет почитать про файловый ввод и вывод. Кроме того можете посмотреть в сторону консольных и Windows form приложений, ведь можно создавать не просто сухие dll библиотеки классов, а реально красивые и полезные приложения.

2. Инструментарий? - Selenium IDE (как помощник), хотя потом от него можно отказаться, когда научитесь. Необходимы библиотеки самого Webdriver, тестовая среда (Операционные системы, браузеры, среды испольнения тестов). Для исполнения тестов, например та же Visual Studio, а еще лучше Nunit. И думаю что 100% вам не обойтись без плагинов Firebug и Firepath.

3. Ресурсы на русском языке сам искал, но так и не нашел. Качественных сайтов посвященных Webdriver на языке C# нет вообще, да что там сайтов, нет даже блогов. Все что я не встречал Java, Java, Java .... Но есть очень хорошие ресурсы на английском языке, которые помогают решать проблемы, это http://stackoverflow.com/search?q=Webdriver+%2B+C%23 и https://groups.google.com/forum/?fromgroups#!forum/webdriver. А так же этот http://automated-testing.info замечательный ресурс  для автоматизаторов под руководством Михаила Поляруша, и http://software-testing.ru/ под руководством Александра Баранцева.


(apetrovskiy) #4

1. Обработка ошибок и азы рефакторинга. Иначе ваш код будет кучей копи-пейста и труднопонятным. А для этого надо примерно то, что я написал: классы, методы, наследование, вынос кода в статические или родительские классы.

 


(Cybernetic2045) #5

Огромное спасибо всем кто навел меня на правильный путь изучения данной отрасли IT . В данный момент  уже пишу простые тесты на Selenium IDE. 

В ходе написания  тестов в среде IDE я понял что не весь нужный мне функционал  достижим либо я не наслышан о нем.

Описываю проблему конкретно.  Автоматизирую работу одного сайта .  На сайте  имеется несколько полей    iframe. Каждый такой элемент имеет свой идентификатор.

Если "ифрейм" с доменом другого сайта то при обращении к элементам вложенным в это поле методами WebDrivera  по сути должно происходить перенаправление на домен самого поля   iFrame c последующим открытием новой вкладки в окне браузера.  Методом click все работает обратиться как я понял ко вложенным в iFrame элемент можно. Но по какой причине  при проходе скрипта  не открываеться новая вкладка ?  Есть ли  в инструментарии селениума  методы работы с несколькими отдельными вкладками , переключения между ними с обменом данных  между веб страницами. Приведу пример.  Открыл я свой сайт в одной вкладке на сайте есть какая либо  уникально генерируемая информация. Мне нужно произвести переход из iFrame  на другой домен с передачей этой инфы в текстовое поле второго. Перенос данных  в дочернюю вкладку из родительской.

Имеется  <iframe id="Мой фрейм" scrolling="no" width="120" height="60                                      

                     <a id="Фрейм младший" class=" 5b"                                                                               

                     <span>Подпись элемента постоянно меняется</span>                               

 

Основной вопрос в следующем.  Какими методами можно работать с элементом  Фрейм младший не применяя привязок к подписи этого элемента Подпись элемента постоянно меняется  произвести клик по нему.  Передать данные этого сайта на страницу сайта открывшегося в новой вкладке после этих действий.

Рассмотрю любые предложения по реализации)))

                       

 

 


(Sergey Korol) #6

Сейчас начал изучать C#

Какие элементы языка C#  разумней будет изучить в первую очередь, а так же в какие стоит углубиться?

 

А у вас опыт программирования на других языках имеется? Если нет, то и смысла начинать изучение с классов тоже нет. Для начала нужно закрепить азы: типы данных, работа со строками, массивами, циклами, десижен-мейкин стейтментами, коллекциями; как происходит работа с памятью, сборщик мусора; дальше - основные принципы ООП: наследование, инкапсуляция, полиморфизм, абстрагирование - со всеми вытекающими. И только после этого можно начинать писать адекватные тесты при помощи WebDriver. Если сразу начнете с классов, то рано или поздно споткнетесь на элементарных вещах. Заядлым прогером быть не обязательно, но без понимания базовых вещей вы будете тратить все свое время на решение проблем незнания языка, рефакторинг и т.п., а не на написание самих тестов.


(apetrovskiy) #7

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

Знавал я человека, который умел сделать генерилку на C++, создать юзеров или через именованный канал обратиться, например, но не знал, как объявить массив. :) ничего страшного, далеко пошёл (долго ли нагуглить нужную конструкцию языка?), гораздо дальше тестирования.

но вообще строки, массивы, коллекции/списки и ввод-вывод - с этим уже можно делать тесты.

Сборщик мусора? да ну, перебор :) using (IDisposable ...) {...} и your_cariable = null; - более простые и понятные друзья.

А вот pastebin или почивший codesearch.google.com по теме вэбдрайвера никому бы не помешал. Никто случаем не знает большой подборки такого кода?


(Cybernetic2045) #8

Рад что так все оперативно откликаются и подсказывают это для меня большой плюс  буду продолжать изучать язык C#  надеюсь что смогу его освоить, и  грамотно в дальнейшем на нем программировать.   С позволения админов в эту тему буду писать  вопроссы связанные только с С#.  Дабы не засорять ваш форум однотипными темати. На второй поставленный вопрос касательно функционала WebDriver  мне так и не ответили создам новую тему в разделе "AutomatedQA TestComplete "http://automated-testing.info/forum/opishite-vozmozhen-li-takoy-funkcional