Как использовать Selenium IDE со скриптами & Команды (Утвердить, Проверить)

Содержание:

Anonim

Мы будем использовать веб-сайт Mercury Tours в качестве тестируемого веб-приложения. Это онлайн-система бронирования авиабилетов, которая содержит все элементы, необходимые для этого руководства. Его URL-адрес - http://demo.guru99.com/test/newtours/, и это будет наш базовый URL-адрес.

Создать сценарий путем записи

Давайте теперь создадим наш первый тестовый скрипт в Selenium IDE наиболее распространенным методом - записью. После этого мы выполним наш скрипт, используя функцию воспроизведения.

Шаг 1

  • Запустите Firefox и Selenium IDE.
  • Введите значение для нашего базового URL: http://demo.guru99.com/test/newtours/.
  • Включите кнопку записи (если она еще не включена по умолчанию).
Шаг 2

В Firefox перейдите по адресу http://demo.guru99.com/test/newtours/. Firefox должен перенаправить вас на страницу, подобную показанной ниже.

Шаг 3
  • Щелкните правой кнопкой мыши любое пустое место на странице, например, логотип Mercury Tours в верхнем левом углу. Это вызовет контекстное меню Selenium IDE. Примечание. Не нажимайте на объекты или изображения с гиперссылками.
  • Выберите параметр «Показать доступные команды».
  • Затем выберите «assertTitle exact: Welcome: Mercury Tours». Это команда, которая проверяет правильность заголовка страницы.
Шаг 4
  • В текстовом поле «Имя пользователя» Mercury Tours введите недопустимое имя пользователя «invalidUNN».
  • В текстовом поле «Пароль» введите неверный пароль «invalidPWD».
Шаг 5
  • Щелкните по кнопке «Войти». Firefox должен перенаправить вас на эту страницу.
ШАГ 6

Отключите кнопку записи, чтобы остановить запись. Теперь ваш сценарий должен выглядеть так, как показано ниже.

Шаг 7.

Теперь, когда мы закончили с нашим тестовым скриптом, мы сохраним его в тестовом примере. В меню "Файл" выберите "Сохранить тестовый набор". Кроме того, вы можете просто нажать Ctrl + S.

Шаг 8
  • Выберите желаемое местоположение и назовите тестовый набор «Invalid_login».
  • Нажмите кнопку «Сохранить».
Шаг 9.

Обратите внимание, что файл был сохранен как HTML.

Шаг 10.

Вернитесь в Selenium IDE и нажмите кнопку «Воспроизведение», чтобы выполнить весь скрипт. Selenium IDE должна уметь безупречно все реплицировать.

Введение в команды Selenium - Selenese

  • Команды Selenese могут иметь до двух параметров: цель и значение.
  • Параметры не требуются постоянно. Это зависит от того, сколько понадобится команде.

3 типа команд

Действия

Это команды, которые напрямую взаимодействуют с элементами страницы.

Пример: команда «щелкнуть» - это действие, потому что вы напрямую взаимодействуете с элементом, на который щелкаете.

Команда «type» также является действием, потому что вы помещаете значения в текстовое поле, а текстовое поле показывает их вам взамен. Между вами и текстовым полем существует двустороннее взаимодействие.

Аксессоры

Это команды, позволяющие сохранять значения в переменной.

Пример: команда storeTitle является средством доступа, потому что она только «считывает» заголовок страницы и сохраняет его в переменной. Он не взаимодействует ни с одним элементом на странице.

Утверждения

Это команды, которые проверяют выполнение определенного условия.

3 типа утверждений

  • Утвердить . Когда команда «assert» терпит неудачу, тест немедленно останавливается.
  • Проверить . Когда команда «verify» терпит неудачу, Selenium IDE регистрирует эту ошибку и продолжает выполнение теста.
  • WaitFor . Прежде чем перейти к следующей команде, команды "waitFor" сначала дождутся выполнения определенного условия.
    • Если условие выполняется в течение периода ожидания, шаг проходит.
    • Если условие не выполняется, шаг не выполняется. Ошибка регистрируется, и выполнение теста переходит к следующей команде.
    • По умолчанию значение тайм-аута составляет 30 секунд. Вы можете изменить это в диалоговом окне «Параметры Selenium IDE» на вкладке «Общие».

Утвердить против проверки

Общие команды

Командование Количество параметров Описание
открыто 0–2

Открывает страницу по URL-адресу.

щелкнуть / щелкнутьAndWait 1

Щелкает по указанному элементу.

type / typeKeys 2

Набирает последовательность символов.

verifyTitle / assertTitle 1

Сравнивает фактический заголовок страницы с ожидаемым значением.

verifyTextPresent 1

Проверяет, есть ли на странице определенный текст.

verifyElementPresent 1

Проверяет наличие определенного элемента.

verifyTable 2

Сравнивает содержимое таблицы с ожидаемыми значениями.

waitForPageToLoad 1

Приостанавливает выполнение до полной загрузки страницы.

waitForElementPresent 1

Приостанавливает выполнение до тех пор, пока указанный элемент не появится.

Создайте скрипт вручную с помощью Firebug

Теперь мы воссоздадим тот же тестовый пример вручную, введя команды. На этот раз нам нужно будет использовать Firebug.

Шаг 1
  • Откройте Firefox и Selenium IDE.
  • Введите базовый URL (http://demo.guru99.com/test/newtours/).
  • Кнопка записи должна быть ВЫКЛЮЧЕНА.
Шаг 2: Щелкните самую верхнюю пустую строку в редакторе.

Введите «open» в текстовое поле «Команда» и нажмите Enter.

Шаг 3
  • Перейдите в Firefox по нашему базовому URL-адресу и активируйте Firebug.
  • На панели Selenium IDE Editor выберите вторую строку (строка под командой «open») и создайте вторую команду, набрав «assertTitle» в поле «Команда».
  • Не стесняйтесь использовать функцию автозаполнения.
Шаг 4
  • В Firebug разверните тег , чтобы отобразить тег .</li> <li>Щелкните значение тега <title> («Добро пожаловать: Mercury Tours») и вставьте его в поле «Цель» в редакторе.</li> </ul> </td> </tr> <tr> <td><strong>Шаг 5</strong> <ul> <li>Чтобы создать третью команду, щелкните третью пустую строку в редакторе и введите «тип» в текстовом поле «Команда».</li> <li>В Firebug нажмите кнопку «Проверить».</li> </ul> </td> </tr> <tr> <td>Щелкните текстовое поле «Имя пользователя». Обратите внимание, что Firebug автоматически показывает вам HTML-код для этого элемента.</td> </tr> <tr> <td><strong>ШАГ 6</strong> <p>Обратите внимание, что в текстовом поле «Имя пользователя» нет идентификатора, но есть атрибут NAME. Поэтому мы будем использовать его ИМЯ в качестве локатора. Скопируйте значение NAME и вставьте его в поле Target в Selenium IDE.</p> <p>Все еще в текстовом поле Target префикс «userName» с «name =», указывающий, что Selenium IDE должна нацеливаться на элемент, атрибут NAME которого равен «userName».</p> <p>Введите «invalidUN» в текстовое поле «Значение» в Selenium IDE. Ваш тестовый сценарий теперь должен выглядеть, как на изображении ниже. Мы закончили с третьей командой. Примечание. Вместо invalidUN вы можете ввести любую другую текстовую строку. Но Selenium IDE чувствителен к регистру, и вы вводите значения / атрибуты точно так же, как в приложении.</p> </td> </tr> <tr> <td><strong>Шаг 7.</strong> <ul> <li>Чтобы создать четвертую команду, введите «тип» в текстовом поле «Команда».</li> <li>Опять же, используйте кнопку Firebug «Inspect», чтобы получить указатель для текстового поля «Пароль».</li> </ul> <ul> <li> <p>Вставьте атрибут NAME («пароль») в поле «Цель» и добавьте к нему префикс «name =».</p> </li> <li> <p>Введите «invalidPW» в поле «Значение» в Selenium IDE. Ваш тестовый сценарий теперь должен выглядеть как на изображении ниже.</p> </li> </ul> </td> </tr> <tr> <td><strong>Шаг 8</strong> <ul> <li>Для пятой команды введите «clickAndWait» в текстовом поле «Команда» в Selenium IDE.</li> <li>Используйте кнопку Firebug «Проверить», чтобы получить указатель кнопки «Войти».</li> </ul> <ul> <li>Вставьте значение атрибута NAME («логин») в текстовое поле «Цель» и добавьте к нему префикс «name =».</li> <li>Ваш тестовый сценарий теперь должен выглядеть как на изображении ниже.</li> </ul> </td> </tr> </tbody> </table> <p><strong>Шаг 9:</strong> Сохраните тестовый пример так же, как мы делали в предыдущем разделе.</p> <a id="menu-6"></a> <h2>Использование кнопки поиска</h2> <p><strong>Кнопка «Найти» в Selenium IDE используется для проверки того, действительно ли то, что мы поместили в текстовое поле «Цель», является правильным элементом пользовательского интерфейса.</strong></p> <p>Давайте воспользуемся тестовым примером Invalid_login, который мы создали в предыдущих разделах. Щелкните любую команду с записью Target, например третью команду.</p> <p>Щелкните по кнопке "Найти". Обратите внимание, что текстовое поле «Имя пользователя» на странице Mercury Tours выделяется на секунду.</p> <p>Это указывает на то, что Selenium IDE смогла правильно обнаружить ожидаемый элемент и получить к нему доступ. Если кнопка «Найти» выделила другой элемент или вообще не выделила его, значит, с вашим скриптом что-то не так.</p> <a id="menu-7"></a> <h2>Выполнить команду</h2> <p><strong>Это позволяет выполнять любую отдельную команду без запуска всего тестового примера</strong> . Просто щелкните строку, которую хотите выполнить, а затем либо щелкните «Действия> Выполнить эту команду» в строке меню, либо просто нажмите «X» на клавиатуре.</p> <p><strong>Шаг 1.</strong> Убедитесь, что ваш браузер находится на главной странице Mercury Tours. Щелкните команду, которую хотите выполнить. В этом примере щелкните строку «type | userName | invalidUN».</p> <p><strong>Шаг 2.</strong> Нажмите «X» на клавиатуре.</p> <p><strong>Шаг 3.</strong> Обратите внимание, что текстовое поле для имени пользователя заполняется текстом «invalidUN».</p> <p><strong>Выполнение команд таким способом сильно зависит от страницы, отображаемой Firefox в данный момент</strong> . Это означает, что если вы попробуете приведенный выше пример с отображаемой домашней страницей Google вместо Mercury Tours, тогда ваш шаг не удастся, потому что на главной странице Google нет текстового поля с атрибутом userName.</p> <a id="menu-8"></a> <h2>Точка отсчета</h2> <p><strong>Начальная точка - это индикатор, который сообщает Selenium IDE, какие строки будут запускаться</strong> . <strong>Его горячая клавиша - «S».</strong></p> <p>В приведенном выше примере воспроизведение начнется с третьей строки (введите | пароль | invalidPW). <strong>В одном тестовом сценарии может быть только одна начальная точка.</strong></p> <p>Начальная точка похожа на «Выполнить команду» в том смысле, что они зависят от текущей отображаемой страницы. Начальная точка не сработает, если вы перейдете не на ту страницу.</p> <a id="menu-9"></a> <h2>Контрольные точки</h2> <p>Точки останова - это индикаторы, которые сообщают Selenium IDE, где автоматически приостановить тест. <strong>Сочетание клавиш - «B».</strong></p> <p>Желтое выделение означает, что текущий шаг отложен. Это доказывает, что Selenium IDE приостановила выполнение на этом этапе. <strong>В одном тестовом примере может быть несколько точек останова.</strong></p> <a id="menu-10"></a> <h2>Шаг</h2> <p>Это позволяет вам выполнять последующие команды по одной после приостановки тестового примера. Воспользуемся сценарием из предыдущего раздела «Точки останова».</p> <table> <tbody> <tr> <td width="50%"> </td> <td> <p><strong>Перед нажатием кнопки «Шаг».</strong></p> <p>Тестовый пример останавливается на строке «clickAndWait | login».</p> </td> </tr> <tr> <td width="50%"> </td> <td> <p><strong>После нажатия «Шаг».</strong></p> <p>Строка «clickAndWait | login» запускается и переходит к следующей команде (verifyTitle | Sign-on: Mercury Tours).</p> <p>Обратите внимание, что следующая строка приостанавливается, даже если там нет точки останова. Это основная цель функции Step - она ​​выполняет последующие команды по одной, чтобы дать вам больше времени для проверки результата после каждого шага.</p> </td> </tr> </tbody> </table> <a id="menu-11"></a> <h2>Важные моменты, на которые следует обратить внимание при использовании других форматов в режиме просмотра исходного кода</h2> <p><strong>Selenium IDE хорошо работает только с HTML - другие форматы все еще находятся в экспериментальном режиме</strong> . Это <strong>НЕ рекомендуется</strong> создавать и редактировать тесты с использованием других форматов в Source View , потому что есть еще много работы , необходимо , чтобы сделать ее более стабильной. Ниже приведены известные ошибки версии 1.9.1.</p> <ul> <li>Вы не сможете ни воспроизвести, ни вернуться к просмотру таблицы, если не вернетесь к HTML.</li> <li>Единственный способ безопасно добавить команды в исходный код - это записать их.</li> <li>Если вы измените исходный код вручную, он будет утерян при переключении на другой формат.</li> <li>Хотя вы можете сохранить свой тестовый пример в режиме просмотра исходного кода, Selenium IDE не сможет его открыть.</li> </ul> <p><strong>Рекомендуемый способ конвертировать тесты Selenese - использовать параметр «Экспортировать тестовый набор как…» в меню «Файл», а не через представление исходного кода.</strong></p> <a id="menu-12"></a> <h2>Резюме</h2> <ul> <li>Сценарии тестирования могут быть созданы путем записи или ввода команд и параметров вручную.</li> <li>При создании скриптов вручную Firebug используется для получения локатора.</li> <li>Кнопка «Найти» используется для проверки того, что команда может получить доступ к правильному элементу.</li> <li>В табличном представлении тестовый сценарий отображается в табличной форме, а в представлении «Исходный код» - в формате HTML.</li> <li>Изменение представления исходного кода в формат, отличный от HTML, все еще является экспериментальным.</li> <li>Не используйте представление исходного кода при создании тестов в других форматах. Вместо этого используйте функции экспорта.</li> <li>Параметры не требуются постоянно. Это зависит от команды.</li> <li>Есть три типа команд:</li> <ul> <li>Действия - напрямую взаимодействует с элементами страницы.</li> <li>Аксессоры - «считывают» свойство элемента и сохраняют его в переменной.</li> <li>Утверждения - сравнивает фактическое значение с ожидаемым.</li> </ul> <li>Утверждения бывают трех типов:</li> <ul> <li>Утверждение - при неудаче последующие шаги больше не выполняются</li> <li>Проверить - в случае сбоя последующие шаги по-прежнему выполняются.</li> <li>WaitFor - проходит, если указанное условие выполняется в течение периода ожидания; в противном случае он потерпит неудачу</li> </ul> <li>Наиболее распространенные команды:</li> <ul> <li>открыто</li> <li>щелкнуть / щелкнутьAndWait</li> <li>type / typeKeys</li> <li>verifyTitle / assertTitle</li> <li>verifyTextPresent</li> <li>verifyElementPresent</li> <li>verifyTable</li> <li>waitForPageToLoad</li> <li>waitForElementPresent</li> </ul> </ul> </div> </article> <div id="container-5533149ee6411a5f99b370c693e87966"></div> </div> </div> </div> </div> </div> <aside class="col-lg-4 sidebar sidebar--right"> <div class="widget widget-popular-posts"> <h2 class="widget-title">Популярные посты</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8223008-project-risk-analysis-and-solutions-in-test-management" title="Анализ рисков проекта и amp; Решения в управлении тестированием" rel="bookmark"><img src="https://cdn.css-code.org/8189622/project_risk_analysis_ampamp_solutions_in_test_management.png.webp" loading="lazy" alt="Анализ рисков проекта и amp; Решения в управлении тестированием" title="Анализ рисков проекта и amp; Решения в управлении тестированием" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8223008-project-risk-analysis-and-solutions-in-test-management" title="Анализ рисков проекта и amp; Решения в управлении тестированием" rel="bookmark">Анализ рисков проекта и amp; Решения в управлении тестированием 2025</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8223009-test-monitoring-and-test-control-during-test-execution-complete-tutorial" title="Мониторинг тестирования & Контроль тестирования во время выполнения теста: полное руководство" rel="bookmark"><img src="https://cdn.css-code.org/3324996/test_monitoring_ampamp_test_control_during_test_execution_complete_tutorial.jpg.webp" loading="lazy" alt="Мониторинг тестирования & Контроль тестирования во время выполнения теста: полное руководство" title="Мониторинг тестирования & Контроль тестирования во время выполнения теста: полное руководство" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8223009-test-monitoring-and-test-control-during-test-execution-complete-tutorial" title="Мониторинг тестирования & Контроль тестирования во время выполнения теста: полное руководство" rel="bookmark">Мониторинг тестирования & Контроль тестирования во время выполнения теста: полное руководство 2025</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8223011-test-summary-reports-tutorial-learn-with-example-and-template" title="Учебное пособие по сводным отчетам о тестах: обучение на примерах & Шаблон" rel="bookmark"><img src="https://cdn.css-code.org/7523922/test_summary_reports_tutorial_learn_with_example_ampamp_template.png.webp" loading="lazy" alt="Учебное пособие по сводным отчетам о тестах: обучение на примерах & Шаблон" title="Учебное пособие по сводным отчетам о тестах: обучение на примерах & Шаблон" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8223011-test-summary-reports-tutorial-learn-with-example-and-template" title="Учебное пособие по сводным отчетам о тестах: обучение на примерах & Шаблон" rel="bookmark">Учебное пособие по сводным отчетам о тестах: обучение на примерах & Шаблон 2025</a></h3> </div> </div> </li> </ul> </div> <div class="widget widget-popular-posts"> <h2 class="widget-title">Лучшие обзоры за месяц</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225196-10-best-python-ide-python-editors-for-windows-linux-and-mac" title="10 ЛУЧШИХ Python IDE - Редакторы Python для Windows, Linux и amp; Mac" rel="bookmark">10 ЛУЧШИХ Python IDE - Редакторы Python для Windows, Linux и amp; Mac</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225197-15-best-web-scraping-tools-for-data-extraction-in-2021" title="15 лучших инструментов для извлечения данных из Интернета в 2021 году" rel="bookmark">15 лучших инструментов для извлечения данных из Интернета в 2021 году</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225198-best-python-certification-exam-in-2021" title="ЛУЧШИЙ сертификационный экзамен по Python в 2021 году" rel="bookmark">ЛУЧШИЙ сертификационный экзамен по Python в 2021 году</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225199-python-tutorial-pdf-basics-pdf-for-beginners-download-now" title="PDF-учебник по Python: PDF-файл с основными сведениями для начинающих (Загрузить сейчас)" rel="bookmark">PDF-учебник по Python: PDF-файл с основными сведениями для начинающих (Загрузить сейчас)</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225200-11-best-python-programming-books-for-beginner-2021-update" title="11 лучших книг по программированию на Python для начинающих (обновление 2021 г.)" rel="bookmark">11 лучших книг по программированию на Python для начинающих (обновление 2021 г.)</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225201-top-python-interview-questions-and-answers-download-pdf" title="Самые популярные вопросы и ответы на собеседовании по Python (Скачать PDF)" rel="bookmark">Самые популярные вопросы и ответы на собеседовании по Python (Скачать PDF)</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225202-continuous-integration-vs-continuous-delivery-vs-continuous-deployment" title="Непрерывная интеграция против непрерывной доставки против непрерывного развертывания" rel="bookmark">Непрерывная интеграция против непрерывной доставки против непрерывного развертывания</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225203-jenkins-vs-travis-ci-what-is-the-difference" title="Дженкинс против Трэвиса-КИ: В чем разница?" rel="bookmark">Дженкинс против Трэвиса-КИ: В чем разница?</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225204-correlation-in-r-pearson-and-spearman-with-matrix-example" title="Корреляция в R: Pearson & Спирмен с примером матрицы" rel="bookmark">Корреляция в R: Pearson & Спирмен с примером матрицы</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225206-how-to-create-a-new-build-job-in-jenkins-freestyle-project" title="Как создать новую сборку в проекте Jenkins Freestyle" rel="bookmark">Как создать новую сборку в проекте Jenkins Freestyle</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225207-top-25-scala-interview-questions-and-answers" title="25 самых популярных вопросов на собеседовании по Scala & Ответы" rel="bookmark">25 самых популярных вопросов на собеседовании по Scala & Ответы</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225208-web-developer-vs-software-developer-whats-the-difference" title="Веб-разработчик против разработчика программного обеспечения: в чем разница?" rel="bookmark">Веб-разработчик против разработчика программного обеспечения: в чем разница?</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225209-glm-in-r-generalized-linear-model-with-example" title="GLM в R: обобщенная линейная модель с примером" rel="bookmark">GLM в R: обобщенная линейная модель с примером</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225210-mysql-update-query-with-example" title="Запрос MySQL UPDATE с примером" rel="bookmark">Запрос MySQL UPDATE с примером</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8225211-29-best-mac-app-software-in-2021-freepaid" title="29 ЛУЧШИХ программ для Mac в 2021 году (бесплатно / платно)" rel="bookmark">29 ЛУЧШИХ программ для Mac в 2021 году (бесплатно / платно)</a></h3> </div> </div> </li> </ul> </div> <div id="container-5533149ee6411a5f99b370c693e87966"></div> <div class="widget widget-popular-posts"> <h2 class="widget-title">Лучшие статьи</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8003993-rss-generator" title="RSS-генератор - CSS-хитрости" rel="bookmark"><img src="https://cdn.css-code.org/4134168/rss_generator_css-tricks.png.webp" loading="lazy" alt="RSS-генератор - CSS-хитрости" title="RSS-генератор - CSS-хитрости" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8003993-rss-generator" title="RSS-генератор - CSS-хитрости" rel="bookmark">RSS-генератор - CSS-хитрости 2025</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8003994-sanitize-database-inputs" title="Очистить входные данные базы данных - CSS-хитрости" rel="bookmark"><img src="https://cdn.css-code.org/1033725/sanitize_database_inputs_css-tricks.png.webp" loading="lazy" alt="Очистить входные данные базы данных - CSS-хитрости" title="Очистить входные данные базы данных - CSS-хитрости" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8003994-sanitize-database-inputs" title="Очистить входные данные базы данных - CSS-хитрости" rel="bookmark">Очистить входные данные базы данных - CSS-хитрости 2025</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8003995-send-a-text-message" title="Отправить текстовое сообщение - CSS-хитрости" rel="bookmark"><img src="https://cdn.css-code.org/7837273/send_a_text_message_css-tricks.png.webp" loading="lazy" alt="Отправить текстовое сообщение - CSS-хитрости" title="Отправить текстовое сообщение - CSS-хитрости" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8003995-send-a-text-message" title="Отправить текстовое сообщение - CSS-хитрости" rel="bookmark">Отправить текстовое сообщение - CSS-хитрости 2025</a></h3> </div> </div> </li> </ul> </div> </aside> </div> </div> <footer class="footer footer--dark"> <div class="container"> <div class="footer__widgets"> <div class="row"> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Популярные посты</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003692-addeventlistener-polyfill" title="AddEventListener Polyfill - CSS-хитрости" rel="bookmark">AddEventListener Polyfill - CSS-хитрости</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003693-add-data-attribute-of-user-agent" title="Добавить атрибут данных пользовательского агента - CSS-хитрости" rel="bookmark">Добавить атрибут данных пользовательского агента - CSS-хитрости</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003694-add-a-number-to-two-variables-at-once" title="Добавить число к двум переменным одновременно - CSS-хитрости" rel="bookmark">Добавить число к двум переменным одновременно - CSS-хитрости</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003695-add-to-favorites-ie" title="Добавить в избранное (IE) - CSS-хитрости" rel="bookmark">Добавить в избранное (IE) - CSS-хитрости</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003696-video-for-everybody-html5-video-with-flash-fallback" title="Видео для всех (видео HTML5 с резервным Flash-контентом) - CSS-хитрости" rel="bookmark">Видео для всех (видео HTML5 с резервным Flash-контентом) - CSS-хитрости</a></h3> </div> </div> </li> </ul> </div> </div> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Выбор редакции</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003605-two-color-three-dimensional-blocks-and-text" title="Двухцветные трехмерные блоки и текст - CSS-хитрости" rel="bookmark">Двухцветные трехмерные блоки и текст - CSS-хитрости</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003606-unordered-list-as-a-timeline" title="Неупорядоченный список как временная шкала - CSS-хитрости" rel="bookmark">Неупорядоченный список как временная шкала - CSS-хитрости</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003607-useful-css3-less-mixins" title="Полезные CSS3 LESS Mixins - CSS-хитрости" rel="bookmark">Полезные CSS3 LESS Mixins - CSS-хитрости</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003608-turn-off-number-input-spinners" title="Отключить счетчики ввода чисел - CSS-хитрости" rel="bookmark">Отключить счетчики ввода чисел - CSS-хитрости</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003609-typewriter-effect" title="Пишущая машинка Эффект - CSS-хитрости" rel="bookmark">Пишущая машинка Эффект - CSS-хитрости</a></h3> </div> </div> </li> </ul> </div> </div> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Лучшие статьи</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8004089-if-page-is-parent-or-child" title="Если страница является родительской или дочерней - CSS-хитрости" rel="bookmark">Если страница является родительской или дочерней - CSS-хитрости</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8004091-get-the-first-image-from-a-post" title="Получить первое изображение из сообщения - CSS-хитрости" rel="bookmark">Получить первое изображение из сообщения - CSS-хитрости</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8004092-loginlogout-and-user-welcome" title="Вход / выход и приветствие пользователя - CSS-хитрости" rel="bookmark">Вход / выход и приветствие пользователя - CSS-хитрости</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8004093-list-posts-highlight-current" title="Список сообщений, выделение текущих - CSS-хитрости" rel="bookmark">Список сообщений, выделение текущих - CSS-хитрости</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8004094-include-jquery-in-wordpress-theme" title="Включить jQuery в тему WordPress - CSS-хитрости" rel="bookmark">Включить jQuery в тему WordPress - CSS-хитрости</a></h3> </div> </div> </li> </ul> </div> </div> </div> <p>© Copyright ru.css-code.org, 2025 Май | <a href="https://ru.css-code.org/about-site" title="О сайте">О сайте</a> | <a href="https://ru.css-code.org/contacts" title="Контакты">Контакты</a> | <a href="https://ru.css-code.org/privacy-policy" title="Политика конфиденциальности">Политика конфиденциальности</a>. </p> </div> </div> </footer> <link href="https://css-code.org/template/css/style.min.css" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'" /> </body> </html>