HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><ul><li><a>IDE</a></li>
1 <ul><ul><li><a>IDE</a></li>
2 <li><a>RC</a></li>
2 <li><a>RC</a></li>
3 <li><a>Grid</a></li>
3 <li><a>Grid</a></li>
4 <li><a>WebDriver</a><ul><li><a>Нюансы работы с WebDriver</a></li>
4 <li><a>WebDriver</a><ul><li><a>Нюансы работы с WebDriver</a></li>
5 <li><a>WebDriver API</a></li>
5 <li><a>WebDriver API</a></li>
6 </ul></li>
6 </ul></li>
7 </ul><li><a>Плюсы и минусы Selenium</a></li>
7 </ul><li><a>Плюсы и минусы Selenium</a></li>
8 <li><a>Начало работы</a><ul><li><a>Создание проекта</a></li>
8 <li><a>Начало работы</a><ul><li><a>Создание проекта</a></li>
9 <li><a>Компоненты на странице</a></li>
9 <li><a>Компоненты на странице</a></li>
10 <li><a>Ключевые операции</a></li>
10 <li><a>Ключевые операции</a></li>
11 </ul></li>
11 </ul></li>
12 </ul><p>Selenium - название полноценного пакета программного обеспечения с открытым исходным кодом. Используется для автоматизации операций, выполняемых браузерами.</p>
12 </ul><p>Selenium - название полноценного пакета программного обеспечения с открытым исходным кодом. Используется для автоматизации операций, выполняемых браузерами.</p>
13 <p>Основная область применения -<a>автоматизация тестирования веб-программ</a>. Это не единственный вариант работы. В состав данного пакета включены приложения, позволяющие выполнять рутинные задачи системного администрирования веб-страниц, а также регулярного получения той или иной информации.</p>
13 <p>Основная область применения -<a>автоматизация тестирования веб-программ</a>. Это не единственный вариант работы. В состав данного пакета включены приложения, позволяющие выполнять рутинные задачи системного администрирования веб-страниц, а также регулярного получения той или иной информации.</p>
14 <p>The Selenium - достаточно крупный проект. В его состав на данный момент включены такие программы как:</p>
14 <p>The Selenium - достаточно крупный проект. В его состав на данный момент включены такие программы как:</p>
15 <ul><li>IDE;</li>
15 <ul><li>IDE;</li>
16 <li>RC;</li>
16 <li>RC;</li>
17 <li>Selenium WebDriver Python;</li>
17 <li>Selenium WebDriver Python;</li>
18 <li>Grid;</li>
18 <li>Grid;</li>
19 <li>Server.</li>
19 <li>Server.</li>
20 </ul><p>Каждый указанный пакет будет рассмотрен более подробно. После этого предстоит разобраться с плюсами и минусами упомянутого набора инструментов, а также выяснить, как правильно установить программное обеспечение и начать работать с ним.</p>
20 </ul><p>Каждый указанный пакет будет рассмотрен более подробно. После этого предстоит разобраться с плюсами и минусами упомянутого набора инструментов, а также выяснить, как правильно установить программное обеспечение и начать работать с ним.</p>
21 <h3>IDE</h3>
21 <h3>IDE</h3>
22 <p>Специальный плагин, который предназначается для работы с Firefox. С его помощью удается осуществлять запись пользовательских действий, операций тестировщиков. Соответствующие материалы будут использоваться системой для воспроизведения для организации тестирования.</p>
22 <p>Специальный плагин, который предназначается для работы с Firefox. С его помощью удается осуществлять запись пользовательских действий, операций тестировщиков. Соответствующие материалы будут использоваться системой для воспроизведения для организации тестирования.</p>
23 <p>IDE является библиотекой "Селениума", оснащенная специальным графическим интерфейсом. Здесь поддерживается работа со сценариями тестирования веб страниц. Данный инструмент позволяет генерировать код для RC или WebServer. Получившийся "исходный код" будет повторять записанные заранее действия, которые выполняет тот или иной клиент (пользователь).</p>
23 <p>IDE является библиотекой "Селениума", оснащенная специальным графическим интерфейсом. Здесь поддерживается работа со сценариями тестирования веб страниц. Данный инструмент позволяет генерировать код для RC или WebServer. Получившийся "исходный код" будет повторять записанные заранее действия, которые выполняет тот или иной клиент (пользователь).</p>
24 <h3>RC</h3>
24 <h3>RC</h3>
25 <p>The Remote Control (или the RC) - одно из основных направлений развития "Селениума" в прошлом. Данный инструмент использовался в качестве удаленного управления веб браузером. Именно the RC в 2007-м году был заменен на WebDriver.</p>
25 <p>The Remote Control (или the RC) - одно из основных направлений развития "Селениума" в прошлом. Данный инструмент использовался в качестве удаленного управления веб браузером. Именно the RC в 2007-м году был заменен на WebDriver.</p>
26 <p>Функциональность упомянутого пакета сильно уступает WebDriver, но the RC до сих пор включен в его дистрибутив. На данный момент соответствующий инструмент перестал развиваться и обновляться.</p>
26 <p>Функциональность упомянутого пакета сильно уступает WebDriver, но the RC до сих пор включен в его дистрибутив. На данный момент соответствующий инструмент перестал развиваться и обновляться.</p>
27 <h3>Grid</h3>
27 <h3>Grid</h3>
28 <p>Кластер, поддерживающий сразу несколько драйверов (driver) для Selenium. С их помощью можно:</p>
28 <p>Кластер, поддерживающий сразу несколько драйверов (driver) для Selenium. С их помощью можно:</p>
29 <ul><li>организовывать удаленную работу с браузером при помощи Интернета;</li>
29 <ul><li>организовывать удаленную работу с браузером при помощи Интернета;</li>
30 <li>управлять и создавать сети с большим количеством веб серверов на огромном количестве устройств;</li>
30 <li>управлять и создавать сети с большим количеством веб серверов на огромном количестве устройств;</li>
31 <li>создавать параллельное тестирование.</li>
31 <li>создавать параллельное тестирование.</li>
32 </ul><p>За счет Grid получится значительно сэкономить время, а также ресурсы, необходимые для организации тестирования.</p>
32 </ul><p>За счет Grid получится значительно сэкономить время, а также ресурсы, необходимые для организации тестирования.</p>
33 <h3>WebDriver</h3>
33 <h3>WebDriver</h3>
34 <p>WebDriver - полноценная библиотека "Селениума", используемая для управления браузерами. Сейчас этот пакет является основным продуктом рассматриваемого набора инструментов. Он выражен семейством драйверов (drivers) для Chrome, Safari, Firefox и других Интернет-обозревателей. В состав Web Driver включены библиотеки, позволяющие заниматься разработкой программного обеспечения и драйверов на самых разных языках:</p>
34 <p>WebDriver - полноценная библиотека "Селениума", используемая для управления браузерами. Сейчас этот пакет является основным продуктом рассматриваемого набора инструментов. Он выражен семейством драйверов (drivers) для Chrome, Safari, Firefox и других Интернет-обозревателей. В состав Web Driver включены библиотеки, позволяющие заниматься разработкой программного обеспечения и драйверов на самых разных языках:</p>
35 <ul><li>Ruby;</li>
35 <ul><li>Ruby;</li>
36 <li>Python;</li>
36 <li>Python;</li>
37 <li>C#;</li>
37 <li>C#;</li>
38 <li>JavaScript;</li>
38 <li>JavaScript;</li>
39 <li>Java.</li>
39 <li>Java.</li>
40 </ul><p>Соответствующий инструмент нельзя назвать готовым средством для автоматизации тестирования. Он является некой спецификацией программных интерфейсов для оперирования браузерами. Сюда же можно отнести референсные реализации браузерных интерфейсов и клиентские библиотеки для разработки программ.</p>
40 </ul><p>Соответствующий инструмент нельзя назвать готовым средством для автоматизации тестирования. Он является некой спецификацией программных интерфейсов для оперирования браузерами. Сюда же можно отнести референсные реализации браузерных интерфейсов и клиентские библиотеки для разработки программ.</p>
41 <p>The Web Driver - уникальный драйвер для Интернет-обозревателей. Библиотека, лишенная пользовательского интерфейса. Она используется для отладки взаимодействия с другим программным обеспечением, управления поведением браузеров, автотестов.</p>
41 <p>The Web Driver - уникальный драйвер для Интернет-обозревателей. Библиотека, лишенная пользовательского интерфейса. Она используется для отладки взаимодействия с другим программным обеспечением, управления поведением браузеров, автотестов.</p>
42 <h4><em>Нюансы работы с WebDriver</em></h4>
42 <h4><em>Нюансы работы с WebDriver</em></h4>
43 <p>The WebDriver - пакет инструментов с весьма скудным интерфейсом управления. Данная особенность вызвана тем, что разработчики создавали проект, помогающий изначально упрощать работу с браузерами. Интернет-обозреватели получили ограничения - стандарты интерфейсов. Действующие правила указывают на то, что инструмент должен иметь минимальный набор команд, поддерживаемый всеми браузерами.</p>
43 <p>The WebDriver - пакет инструментов с весьма скудным интерфейсом управления. Данная особенность вызвана тем, что разработчики создавали проект, помогающий изначально упрощать работу с браузерами. Интернет-обозреватели получили ограничения - стандарты интерфейсов. Действующие правила указывают на то, что инструмент должен иметь минимальный набор команд, поддерживаемый всеми браузерами.</p>
44 <p>В процессе создания the WebDrivers на передовую была выдвинута задача по созданию пакета, в котором нет ничего лишнего. Стандартный интерфейс оперирования браузерами должен в конечном итоге являться стабильным, интуитивно понятным, а также достаточно простым.</p>
44 <p>В процессе создания the WebDrivers на передовую была выдвинута задача по созданию пакета, в котором нет ничего лишнего. Стандартный интерфейс оперирования браузерами должен в конечном итоге являться стабильным, интуитивно понятным, а также достаточно простым.</p>
45 <p>По сравнению с the RC Selenium, рассматриваемый инструмент был лишен некоторых команд:</p>
45 <p>По сравнению с the RC Selenium, рассматриваемый инструмент был лишен некоторых команд:</p>
46 <ul><li>select - использовался для выпадающих списков;</li>
46 <ul><li>select - использовался для выпадающих списков;</li>
47 <li>uncheck;</li>
47 <li>uncheck;</li>
48 <li>check.</li>
48 <li>check.</li>
49 </ul><p>Вместо указанных отдельных commands теперь реализация перечисленных манипуляций сводится к одному единственному click.</p>
49 </ul><p>Вместо указанных отдельных commands теперь реализация перечисленных манипуляций сводится к одному единственному click.</p>
50 <p>WebDriver поддерживает реализации для основной массы языков разработки. Дополнительно тут присутствует интеграция с самыми разными инструментами. Рассматриваемый элемент легко вписать в любой стек. The Selenium просто "сливается" с конкурентами, не стараясь "победить" их.</p>
50 <p>WebDriver поддерживает реализации для основной массы языков разработки. Дополнительно тут присутствует интеграция с самыми разными инструментами. Рассматриваемый элемент легко вписать в любой стек. The Selenium просто "сливается" с конкурентами, не стараясь "победить" их.</p>
51 <h4><em>WebDriver API</em></h4>
51 <h4><em>WebDriver API</em></h4>
52 <p>Рассматривая the Selenium, необходимо понимать - соответствующий набор инструментов автоматизации и тестирования обновляется и совершенствуется на регулярной основе. На данный момент известно о наличии WebDriver 3.0. Он получил название API.</p>
52 <p>Рассматривая the Selenium, необходимо понимать - соответствующий набор инструментов автоматизации и тестирования обновляется и совершенствуется на регулярной основе. На данный момент известно о наличии WebDriver 3.0. Он получил название API.</p>
53 <p>Соответствующий пакет - более совершенный the RC Selenium. В нем исправлены основные ошибки, встречающиеся у "предшественника". Цель создания - разработка объектно-ориентированного API с большим количеством поддерживаемых браузеров. Соответствующий интерфейс позволяет исправить проблемы современного тестирования. У проекта отсутствует привязка к тестовым фреймворкам, за счет чего допускается задействование любых фреймворков модульного тестирования.</p>
53 <p>Соответствующий пакет - более совершенный the RC Selenium. В нем исправлены основные ошибки, встречающиеся у "предшественника". Цель создания - разработка объектно-ориентированного API с большим количеством поддерживаемых браузеров. Соответствующий интерфейс позволяет исправить проблемы современного тестирования. У проекта отсутствует привязка к тестовым фреймворкам, за счет чего допускается задействование любых фреймворков модульного тестирования.</p>
54 <p>Вот - несколько операций, которые возможны через WebDriver API. Данная таблица объясняет, какие команды помогают выполнять те или иные действия.</p>
54 <p>Вот - несколько операций, которые возможны через WebDriver API. Данная таблица объясняет, какие команды помогают выполнять те или иные действия.</p>
55 <p>The Selenium в Python и других языках разработки представляет собой бесплатный пакет для тестирования, наделенный открытым исходным кодом. Он применяется в браузерах - Chrome, Firefox, Opera и других. Допускается использование the Selenium в операционных системах и непосредственно на мобильных платформах.</p>
55 <p>The Selenium в Python и других языках разработки представляет собой бесплатный пакет для тестирования, наделенный открытым исходным кодом. Он применяется в браузерах - Chrome, Firefox, Opera и других. Допускается использование the Selenium в операционных системах и непосредственно на мобильных платформах.</p>
56 <p>Рассматриваемый проект имеет несколько преимуществ:</p>
56 <p>Рассматриваемый проект имеет несколько преимуществ:</p>
57 <ol><li>Гибкие инструменты организации тестирования. В основном им выступает WebDriver. Он поддерживает интеграцию с разнообразными тестовыми фреймворками и программными проектами для проверки контента.</li>
57 <ol><li>Гибкие инструменты организации тестирования. В основном им выступает WebDriver. Он поддерживает интеграцию с разнообразными тестовыми фреймворками и программными проектами для проверки контента.</li>
58 <li>Широкий спектр современных инструментов для тестировщиков.</li>
58 <li>Широкий спектр современных инструментов для тестировщиков.</li>
59 <li>Поддержка возможности использования the Selenium для узкоспециализированных задач. Примеры - web crawling или проверка производительности системы.</li>
59 <li>Поддержка возможности использования the Selenium для узкоспециализированных задач. Примеры - web crawling или проверка производительности системы.</li>
60 <li>Распространенность. Рассматриваемый набор инструментов вышел в 2004 году. Он сразу стал активно развиваться, совершенствоваться и распространяется. На данный момент the Selenium используется крупными организациями. Пример - Google.</li>
60 <li>Распространенность. Рассматриваемый набор инструментов вышел в 2004 году. Он сразу стал активно развиваться, совершенствоваться и распространяется. На данный момент the Selenium используется крупными организациями. Пример - Google.</li>
61 </ol><p>Минусы рассматриваемый пакет инструментов тоже имеет. Selenium не имеет функций тестирования сетевых и десктопных программ по умолчанию. Проверки допускаются только относительно веб-приложений. Для полноценного функционирования the Selenium предстоит обучиться программированию и созданию скриптов.</p>
61 </ol><p>Минусы рассматриваемый пакет инструментов тоже имеет. Selenium не имеет функций тестирования сетевых и десктопных программ по умолчанию. Проверки допускаются только относительно веб-приложений. Для полноценного функционирования the Selenium предстоит обучиться программированию и созданию скриптов.</p>
62 <p>Изучаемый набор инструментов в большей степени ориентирован на опытных специалистов в сфере разработки и тестирования. Для нормальной работы с Selenium требуются углубленные познания программирования. Новичкам освоить соответствующий инструмент будет весьма проблематично.</p>
62 <p>Изучаемый набор инструментов в большей степени ориентирован на опытных специалистов в сфере разработки и тестирования. Для нормальной работы с Selenium требуются углубленные познания программирования. Новичкам освоить соответствующий инструмент будет весьма проблематично.</p>
63 <h2>Начало работы</h2>
63 <h2>Начало работы</h2>
64 <p>Теперь, когда стало ясно, что из себя представляет изучаемый пакет, можно приступить к его непосредственному применению. Далее будут взяты примеры и команды, используемые в Python.</p>
64 <p>Теперь, когда стало ясно, что из себя представляет изучаемый пакет, можно приступить к его непосредственному применению. Далее будут взяты примеры и команды, используемые в Python.</p>
65 <p>Начало работы заключается в том, что Selenium требуется установить на устройство. Пример - в Visual Studio или другую среду разработки. В случае с Python добиться желаемого результата поможет специальная команда в консоли:</p>
65 <p>Начало работы заключается в том, что Selenium требуется установить на устройство. Пример - в Visual Studio или другую среду разработки. В случае с Python добиться желаемого результата поможет специальная команда в консоли:</p>
66 <p>pip install selenium</p>
66 <p>pip install selenium</p>
67 <p>Далее нужно инициализировать браузер на устройство. За счет WebDriver рассматриваемый пакет инструментов поддерживает множество Интернет-обозревателей. Пример - Chrome или Firefox. Необходимо установить драйверы для the Selenium выбранного браузера.</p>
67 <p>Далее нужно инициализировать браузер на устройство. За счет WebDriver рассматриваемый пакет инструментов поддерживает множество Интернет-обозревателей. Пример - Chrome или Firefox. Необходимо установить драйверы для the Selenium выбранного браузера.</p>
68 <p>В случае с Chrome потребуется Chrom Webdriver. Отыскать его можно<a>здесь</a>. В разделе "Справка" у браузера сначала требуется уточнить версию программного обеспечения. Также необходимо запомнить - для Windows x64 требуется скачать driver win32.</p>
68 <p>В случае с Chrome потребуется Chrom Webdriver. Отыскать его можно<a>здесь</a>. В разделе "Справка" у браузера сначала требуется уточнить версию программного обеспечения. Также необходимо запомнить - для Windows x64 требуется скачать driver win32.</p>
69 <p>Непосредственная инициализация производится так:</p>
69 <p>Непосредственная инициализация производится так:</p>
70 <ol><li>Распаковать архив в любую папку. Пример - C:\chromedriver.</li>
70 <ol><li>Распаковать архив в любую папку. Пример - C:\chromedriver.</li>
71 <li>Написать такой код в проекте the Selenium: . Здесь executable_path - путь к драйверу.</li>
71 <li>Написать такой код в проекте the Selenium: . Здесь executable_path - путь к драйверу.</li>
72 <li>Запустить проект.</li>
72 <li>Запустить проект.</li>
73 </ol><p>Если все сделано верно, пользователь увидит Google Chrome, в котором откроется страница "О нас".</p>
73 </ol><p>Если все сделано верно, пользователь увидит Google Chrome, в котором откроется страница "О нас".</p>
74 <p>После завершения процедуры инициализации предстоит убедиться в том, что он расположен в системной переменной PATH операционной системы. Как только все готово, можно приступать к непосредственной разработке и тестированию.</p>
74 <p>После завершения процедуры инициализации предстоит убедиться в том, что он расположен в системной переменной PATH операционной системы. Как только все готово, можно приступать к непосредственной разработке и тестированию.</p>
75 <h3>Создание проекта</h3>
75 <h3>Создание проекта</h3>
76 <p>Чтобы начать работу с Selenium, необходимо осуществить импорт веб-драйвера. А еще - создать браузерный экземпляр:</p>
76 <p>Чтобы начать работу с Selenium, необходимо осуществить импорт веб-драйвера. А еще - создать браузерный экземпляр:</p>
77 <p>Далее может быть использован объект driver для выполнения разнообразных операций в браузере. Пример - открытие веб-сайта. В этом поможет команда the Python Selenium driver.get ("сайт").</p>
77 <p>Далее может быть использован объект driver для выполнения разнообразных операций в браузере. Пример - открытие веб-сайта. В этом поможет команда the Python Selenium driver.get ("сайт").</p>
78 <h3>Компоненты на странице</h3>
78 <h3>Компоненты на странице</h3>
79 <p>Рассматриваемый набор инструментов поддерживает обнаружение и взаимодействие с различными компонентами на веб-сервисе. Пример - элемент может быть обнаружен при помощи идентификатора. Поможет в реализации соответствующей задачи команда:</p>
79 <p>Рассматриваемый набор инструментов поддерживает обнаружение и взаимодействие с различными компонентами на веб-сервисе. Пример - элемент может быть обнаружен при помощи идентификатора. Поможет в реализации соответствующей задачи команда:</p>
80 <p>Допускается применение иных методов организации поиска:</p>
80 <p>Допускается применение иных методов организации поиска:</p>
81 <ul><li>Find_element_by_name - по имени;</li>
81 <ul><li>Find_element_by_name - по имени;</li>
82 <li>Find_element_by_class_name - по классу;</li>
82 <li>Find_element_by_class_name - по классу;</li>
83 <li>Find_element_by_tag_name - по тегу.</li>
83 <li>Find_element_by_tag_name - по тегу.</li>
84 </ul><p>Предложенные команды не являются исчерпывающими. Существуют иные методы поиска компонентов на странице, просто указанные выше встречаются чаще остальных.</p>
84 </ul><p>Предложенные команды не являются исчерпывающими. Существуют иные методы поиска компонентов на странице, просто указанные выше встречаются чаще остальных.</p>
85 <p>Взаимодействие с элементами тоже обеспечивается за счет специальных команд. Примеры - ввод текста в поле или нажатие на кнопку. Для них необходимо воспользоваться методами send_keys и click:</p>
85 <p>Взаимодействие с элементами тоже обеспечивается за счет специальных команд. Примеры - ввод текста в поле или нажатие на кнопку. Для них необходимо воспользоваться методами send_keys и click:</p>
86 <p>Выше - наглядный пример реализации соответствующих операций. После того, как разработчик выполнит необходимые ему операции, браузер требуется закрыть. Для данной операции используется метод driver.quit.</p>
86 <p>Выше - наглядный пример реализации соответствующих операций. После того, как разработчик выполнит необходимые ему операции, браузер требуется закрыть. Для данной операции используется метод driver.quit.</p>
87 <h3>Ключевые операции</h3>
87 <h3>Ключевые операции</h3>
88 <p>WebElement - это практически то же самое, что и HTML-элемент. С ним можно взаимодействовать точно также, как и в случае с конечным пользователем. Вот несколько наиболее распространенных команд:</p>
88 <p>WebElement - это практически то же самое, что и HTML-элемент. С ним можно взаимодействовать точно также, как и в случае с конечным пользователем. Вот несколько наиболее распространенных команд:</p>
89 <ul><li>element.text - внутренний текст;</li>
89 <ul><li>element.text - внутренний текст;</li>
90 <li>.parent - доступ к родительским компонентам с типом WebDriver;</li>
90 <li>.parent - доступ к родительским компонентам с типом WebDriver;</li>
91 <li>.get_attribute(‘href’) - определенные атрибуты, как href тега a;</li>
91 <li>.get_attribute(‘href’) - определенные атрибуты, как href тега a;</li>
92 <li>.click - щелчок по компоненту;</li>
92 <li>.click - щелчок по компоненту;</li>
93 <li>.send_keys (‘Вводимый_текст’) - ввод текстовых данных, если операция возможна.</li>
93 <li>.send_keys (‘Вводимый_текст’) - ввод текстовых данных, если операция возможна.</li>
94 </ul><p>Все это - лишь начало для работы с the Selenium. Лучше разобраться с соответствующим набором инструментов поможет не только официальная документация и видео-уроки, но и специализированные компьютерные курсы.</p>
94 </ul><p>Все это - лишь начало для работы с the Selenium. Лучше разобраться с соответствующим набором инструментов поможет не только официальная документация и видео-уроки, но и специализированные компьютерные курсы.</p>
95 <p><em>P. S. Хотите знать больше? Обратите внимание на</em><a><em>курсы по тестированию</em></a><em>в Otus. Присутствуют варианты как для продвинутых, так и для начинающих пользователей</em>.</p>
95 <p><em>P. S. Хотите знать больше? Обратите внимание на</em><a><em>курсы по тестированию</em></a><em>в Otus. Присутствуют варианты как для продвинутых, так и для начинающих пользователей</em>.</p>
96  
96