# <H1 align="center">Модуль «РАБОТА С БРАУЗЕРОМ»</h1> 

<p> Модуль «Работа с браузером» построен на базе Selenium WebDriver  и позволяет реализовывать основные методы работы со страницей браузера – открыть вкладку, перейти на вкладку, найти элемент на странице по её ключу и как-то его обработать.</p>

## Интерфейс модуля
<p> Окно модуля делится на область создания команды для работы с браузером, группу кнопок управления действиями и таблицу, содержащую список созданных команд. Область создания команды состоит из нескольких полей для заполнения, причем, количество этих полей меняется в зависимости от выбранного действия в поле «Действие». Группа кнопок состоит из трех кнопок – «Добавить», «Редактировать» и «Удалить».
<H1 align="center">![Screenshot](img/WB_1.png)</h1> 
<p> Создание команды начинается с выбора действия. После его выбора список доступных полей в окне может измениться. Необходимо заполнить поля, требующиеся для выбранного действия и нажать на кнопку «Добавить». Созданное действие отобразится в таблице «Список команд». Для редактирования команды следует выбрать её в списке команд, изменить необходимые поля и нажать «Редактировать». Если при этом нажать на кнопку «Добавить», то будет добавлено новое действие, похожее на то, что было выбрано в списке команд, но с внесенными изменениями. Можно ничего не менять и нажать на кнопку «Добавить», тогда получится полное копирование команды.
<p> Для удаления ненужных команд необходимо выбрать команду в таблице и нажать «Удалить».
<p> Робот будет выполнять все указанные команды последовательно, поэтому для изменения порядка команд в таблице можно воспользоваться стрелочками в правом верхнем углу таблицы. Делается это следующим образом – выбирается строка, положение которой необходимо изменить, а затем нажимаются стрелочки вверх или вниз, в зависимости от того, где эта строка должна находиться.
<H1 align="center">![Screenshot](img/WB_2.png)</h1> 
<p> Для всех действий три первых поля остаются неизменными, это «Драйвер», «Действие» и «Примечание». 
<p> Поле «Драйвер» на данный момент недоступно для редактирования и в нем по умолчанию выбран драйвер для браузера Chrome, но в обозримом будущем этот список планируется дополнять другими браузерами.
<p> Поле «Действие» — это выпадающий список с перечнем возможных действий этого модуля. Подробнее о них будет рассказываться в следующей главе.
<p> Поле «Примечание» — строка с примечанием к команде.
## Перечень и описание действий
<p> Модуль предлагает использование 7 основных действий – перейти на страницу, перезагрузить страницу, перейти назад или вперед, работа со страницей, работа со вкладками и закрыть браузер. Каждое действие требует заполнения определенных полей.
<p> Обратите внимание, что закрытие браузера, открытого с помощью модуля «Работа с браузером», следует осуществлять средствами самого модуля, а не самостоятельно, иначе, если вы закроете браузер сами, а затем попытаетесь продолжить работу с ним с помощью этого модуля, то при каждой попытке запуска робота будет возникать ошибка и придется перезапускать программу.
### Действие «Перейти»
<p> С помощью действия «Перейти» происходит переход на заданную страницу. В области создания команды появляется поле – «URL». 
<H1 align="center">![Screenshot](img/WB_3.png)</h1> 
<p> Если уже открыта какая-либо страница, то браузер перейдет от неё к странице, указанной в поле «URL», то есть исходная страница будет заменена новой. Если браузер еще не был запущен, то он будет открыт с этой страницы. 
### Действие «Перезагрузить страницу»
<p> Действие позволяет перезагружать уже открытую страницу. Перед использованием данного действия, убедитесь, что в браузере есть открытая страница.
<p> Действие не имеет никаких дополнительных для настройки полей.
### Действие «Назад»
<p> Действие позволяет выполнять переход к странице, которая была открыта в браузере до текущей.
### Действие «Вперед»
<p> Действие позволяет выполнять переход к странице, которая была открыта в браузере после текущей, если таковая была.
### Действие «Работа со страницей»
<p> Данное действие предоставляет возможность работать с отдельным элементом страницы. Для настройки действия появляются следующие поля: «Тип поиска элемента», «Строка поиска», «Действие на странице», «Переменная», «Ожидание» и «Номер элемента».
<H1 align="center">![Screenshot](img/WB_4.png)</h1> 
<p> Поле «Тип поиска элемента» представляет собой выпадающий список с перечнем методов поиска элемента на странице, используется в паре с полем «Строка поиска». 
<p> Ниже будут перечислены все типы поиска элемента с примерами заполнения поля «Строка поиска»:
<p> •	GetElementsByName – поиск элементов по их свойству name.
<H1 align="center">![Screenshot](img/WB_5.png)</h1>
<p> «Строка поиска» для нахождения элемента div-element.
<p> •	GetElementsById – поиск элементов по их свойству id.
<H1 align="center">![Screenshot](img/WB_6.png)</h1>
<p> «Строка поиска» для нахождения элемента div-element.
<p> •	GetElementsByClass – поиск элементов по их свойству class.
<H1 align="center">![Screenshot](img/WB_7.png)</h1>
<p> «Строка поиска» для нахождения элемента div-myClass.
<p> •	GetElementsByCssSelector – поиск элементов по их CSS селектору. 
<H1 align="center">![Screenshot](img/WB_8.png)</h1>
<p> «Строка поиска» для нахождения элемента div-div.main.
<p> •	GetElementByLinkText – поиск элементов-ссылок по их тексту. Ищутся только элементы с полным совпадением.
<H1 align="center">![Screenshot](img/WB_9.png)</h1>
<p> «Строка поиска» нахождения первого элемента a на примере – text.
<p> •	GetElementsByPartialLinkText - поиск элементов-ссылок по их тексту. Ищутся все элементы, содержащие заданную строку.
<H1 align="center">![Screenshot](img/WB_10.png)</h1>
<p> «Строка поиска» нахождения двух элементов a – text
<p> •	GetElementsByTagName – поиск элементов по их тегу .
<H1 align="center">![Screenshot](img/WB_11.png)</h1>
<p> «Строка поиска» нахождения элемента a – a.
<p> •	GetElementsByXPath – поиск элементов по языку запросов HTML – xpath.
<H1 align="center">![Screenshot](img/WB_12.png)</h1>
<p> «Строка поиска» для нахождения элемента div - //div[@class='main'].
<p> Поле «Действие на странице» предлагает выбор действия из выпадающего списка, которое необходимо произвести над найденными элементами. Доступны следующие действия:
<p> •	Записать – вводит заданный в поле «Переменная» текст (например, после нажатия на определенный элемент для ввода текста);
<p> •	Получить text – получает значение свойства «text» всех найденных или только выбранного элемента и возвращает результат в виде списка в переменную;
<p> •	Отправить – нажатие клавиши «ВВОД» («ENTER») – применение записанных данных (например, в строке поиска можно ввести какой-либо текст действием «Записать», а затем «Отправить» его);
<p> •	Нажать – нажатие левой кнопкой мыши на заданный элемент (обязательно заполнение поля «Номер элемента»);
<p> •	Навести мышь – наведение мыши на конкретно заданный элемент (обязательно заполнение поля «Номер элемента»);
<p> •	Получить Property – при выборе действия появляется поле «Название Property» - возвращает значение указанного в поле «Название Property» свойства всех найденных элементов или конкретно заданного. Результатом будет являться список;
<p> •	Получить CSS свойство – при выборе действия появляется поле «Свойство CSS» - возвращает значение указанного в поле «Свойство CSS» свойства всех найденных элементов или конкретно заданного. Результатом будет являться список;
<p> •	Получить Attribute – при выборе действия появляется поле «Свойство Attribute» - возвращает значение указанного в поле «Свойство Attribute» свойства всех найденных элементов или конкретно заданного. Результатом будет являться список;
<p> В поле «Переменная» вводится название переменной, начиная с символа «@», в которую будет помещен результат выполнения команды или, наоборот, из которой будут браться значения для её выполнения.
<p> Поле «Ожидание (сек)». В поле вводится количество секунд, которые необходимо подождать после выполнения команды.
<p> Поле «Номер элемента» предназначено для указания индекса найденного элемента, к которому необходимо применить действие.
<p> Пример заполненного действия:
<H1 align="center">![Screenshot](img/WB_13.png)</h1>
<p> На рисунке представлен пример действия, настроенного для поиска элемента, имя которого равно «q». После того как элемент найден, в него будет вставлен текст «поиск».
### Действие «Работа с вкладками»
<p> Данное действие позволяет манипулировать вкладками в окне браузера. Для настройки действия добавляется как минимум одно поле – «Действие», остальные появляются в зависимости от выбранного в нем действия.
<H1 align="center">![Screenshot](img/WB_14.png)</h1>
<p> Доступные действия для работы с вкладками:
<p> •	Добавить вкладку – создаст новую вкладку и та станет активной;
<p> •	Закрыть вкладку – закроет активную вкладку;
<p> •	Перейти на вкладку – при выборе действия появляется поле «Номер вкладки» - переходит на вкладку, номер которой указан в поле «Номер вкладки» (начиная с 0);
<p> •	Получить количество вкладок – при выборе действия появляется поле «Переменная» - возвращает в указанную переменную количество вкладок в браузере.
### Действие «Закрыть браузер»
<p> Закрывает браузер, открытый с помощью модуля, не требует дополнительных настроек.

