В последних исследованиях используется селен для внешнего автоматизированного тестирования.
В последних исследованиях используется селен для внешнего автоматизированного тестирования.

1. Распространенные случаи использования Selenium во внешнем тестировании

1.1Функциональное тестирование веб-приложений

  • Используйте Selenium для имитации пользовательских операций, таких как нажатие кнопок, ввод текста, выбор параметров раскрывающегося меню и т. д., чтобы проверить, работают ли функции веб-приложения должным образом.
  • Автоматизированное недавний вход, регистрация, поиск, корзина и другие общие функции,Обеспечьте стабильность и надежность этих основных функций.

1.2Тестирование кроссбраузерной совместимости

  • Selenium поддерживает несколько браузеров (например, Chrome, Firefox, Edge и т. д.) и может запускать один и тот же тестовый сценарий в разных браузерах для проверки совместимости и производительности веб-приложений в разных браузерах.
  • Обнаруживайте и решайте проблемы кроссбраузерной совместимости, сравнивая результаты тестирования разных браузеров.

1.3Динамическое тестирование контента

  • Selenium может выполнять JavaScriptкод,Это позволяет тестировать контент, загружаемый динамически с помощью Ajax или других технологий.
  • Убедитесь, что динамически создаваемые элементы страницы существуют и ведут себя должным образом.

1.4Написание и выполнение сценариев автоматического тестирования.

  • Использование селена IDE или напишите собственные тестовые сценарии для реализации Автоматизированного тестирование。
  • Благодаря инструментам непрерывной интеграции (CI),Интегрируйте Автоматизированное тестирование в процесс разработки.,Убедитесь, что каждый коммит запускает соответствующий тест.

1.5Позиционирование и взаимодействие элементов страницы

  • Используйте методы позиционирования элементов, предоставляемые Selenium (например, идентификатор, имя, XPath, селектор CSS и т. д.), чтобы быстро находить элементы страницы.
  • Взаимодействуйте с элементами страницы, например, щелкая мышью, вводя текст, перетаскивая и т. д., чтобы проверить, соответствует ли интерактивное поведение страницы ожидаемому.

Selenium — мощный инструмент автоматического тестирования, который широко используется для тестирования веб-приложений. С выпуском Selenium 4 появилось множество новых функций и улучшений, которые упрощают написание и поддержку сценариев автоматизации. В этой статье будут подробно рассмотрены некоторые ключевые новые функции Selenium 4, в частности, относительные локаторы, а также некоторые другие важные нововведения.

2. Относительные локаторы

На веб-страницах иногда бывает сложно найти элементы напрямую по идентификатору, имени класса или селектору CSS, особенно в динамически генерируемом контенте. Чтобы решить эту проблему, в Selenium 4 были представлены реляционные локаторы, позволяющие разработчикам находить целевые элементы на основе других элементов на странице.

2.1 Метод относительного позиционирования

  • выше: расположите элемент над элементом.
  • ниже: расположите элемент ниже элемента.
  • to_left_of: расположить элемент слева от элемента.
  • to_right_of: расположить элемент справа от элемента.
  • near: Расположите элемент близко к элементу. 2.2 Пример кода
Язык кода:Python
копировать
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.relative_locator import locate_with

driver = webdriver.Chrome()
driver.get("http://example.com")

2.3 Предположим, мы хотим найти поле ввода, расположенное справа от кнопки «Войти».

Язык кода:Python
копировать
sign_in_button = driver.find_element(By.ID, "signin-button")
search_input = driver.find_element(locate_with(By.TAG_NAME, "input").to_right_of(sign_in_button))
print(search_input.get_attribute("id"))  # Распечатайте атрибут ID поля ввода.

В этом примере мы сначала находим кнопку «Войти», а затем используем локатор to_right_of, чтобы найти поле ввода справа от нее.

3. Улучшена поддержка стандартов WebDriver W3C.

Selenium 4 теперь по умолчанию использует протокол W3C WebDriver, что вносит некоторые базовые изменения и улучшает совместимость с современными браузерами. Например, API-интерфейсы Capabilities и Actions были обновлены в соответствии со стандартами W3C.

3.1 Пример кода

Язык кода:Python
копировать
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

capabilities = DesiredCapabilities.CHROME.copy()
capabilities['goog:chromeOptions'] = {
   
    'args': ['--headless', '--disable-gpu']
}

driver = webdriver.Chrome(desired_capabilities=capabilities)
driver.get("http://example.com")
print(driver.title)
driver.quit()

Здесь мы указали параметры Chrome и включили безгласный режим.

4. Новая обработка окон.

До Selenium 4 переключение на новое открытое окно браузера могло быть затруднительным. Selenium 4 теперь обеспечивает более чистый способ обработки новых окон.

4.1 Пример кода

Язык кода:python
кодКоличество запусков:0
копировать
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("http://example.com")

4.2 Открыть новую вкладку

Язык кода:python
кодКоличество запусков:0
копировать
driver.execute_script("window.open('');")
driver.switch_to.window(driver.window_handles[1])  # Переключиться на новую вкладку
driver.get("http://another-example.com")  # Загрузить другой сайт в новой вкладке
print(driver.title)  # Распечатать заголовок новой страницы
driver.close()  # Закрыть текущую вкладку
driver.switch_to.window(driver.window_handles[0])  # Вернуться к исходной вкладке

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

5. Поддержка протокола Chrome DevTools (CDP).

В Selenium 4 также добавлена ​​поддержка протокола Chrome DevTools, что означает, что разработчики могут напрямую взаимодействовать с внутренними механизмами браузера для получения данных о производительности, информации о сетевых запросах и т. д.

5.1 Пример кода

Язык кода:python
кодКоличество запусков:0
копировать
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.common.by import By
import json

options = webdriver.ChromeOptions()
service = ChromeService(executable_path='/path/to/chromedriver')

driver = webdriver.Chrome(service=service, options=options)

# Включить ведение журнала производительности
capabilities = options.to_capabilities()
capabilities['goog:loggingPrefs'] = {
   'performance': 'ALL'}
driver = webdriver.Chrome(service=service, desired_capabilities=capabilities)

driver.get("http://example.com")

# Получить все записи журнала производительности
logs = driver.get_log('performance')
for log in logs:
    message = json.loads(log["message"])["message"]
    if "Network.response" in message["method"]:
        print(f"Response received: {message['params']['response']['url']}")

driver.quit()

В этом примере показано, как включить ведение журнала производительности и извлечь из этих журналов информацию об ответах сети.

6. Заключение

Selenium 4 содержит множество новых интересных функций, таких как локаторы ассоциаций, улучшенную поддержку стандартов WebDriver W3C, новую обработку окон и поддержку протокола Chrome DevTools. Эти улучшения не только упрощают написание тестовых сценариев, но также обеспечивают больший контроль и гибкость. Для любой команды, стремящейся повысить эффективность и надежность автоматического тестирования, стоит рассмотреть возможность обновления до Selenium 4.

Используя приведенные выше примеры, вы сможете начать изучать новые функции Selenium 4 и применять их в своих проектах. Имея больше практики и опыта, вы сможете и дальше использовать потенциал этих функций для создания более эффективных и мощных решений по автоматизации.

7. Инструменты гомогенизации

Помимо Selenium, есть несколько однородных инструментов, которые также можно использовать для внешнего тестирования. Вот несколько распространенных альтернатив:

1.Cypress

  • Cypress — это современный инструмент внешнего тестирования, ориентированный на получение быстрых, надежных и точных результатов испытаний.
  • Он имеет такие функции, как тестирование с перезагрузкой в ​​реальном времени, автоматическое ожидание и параллельное тестирование, которые могут значительно повысить эффективность тестирования.
  • Cypress также предоставляет обширную информацию об отладке и визуальные отчеты, что упрощает тестировщикам поиск и решение проблем во время тестирования.

2.Playwright

  • Драматург — это автоматизированное приложение, разработанное Microsoft. инструмент обновления, поддерживающий несколько браузеров и операционных систем.
  • Он предоставляет Selenium-подобный API, который позволяет тестировщикам легко писать и выполнять тестовые сценарии.
  • Playwright также предоставляет мощные функции записи и воспроизведения, которые помогают тестировщикам быстро создавать и отлаживать тестовые сценарии.

3.Puppeteer

  • Puppeteer — это библиотека Node, предоставляющая высокоуровневый API для управления Chrome или Chromium.
  • Он может напрямую взаимодействовать с протоколом Chrome DevTools для создания снимков экрана страниц, PDF-файлов, имитации ввода с клавиатуры и других операций.
  • Puppeteer также обеспечивает поддержку автономных браузеров, позволяя тестировщикам запускать тесты в среде без графического интерфейса.

4.Katalon Studio

  • Katalon Studio — мощная платформа автоматизации тестирования, поддерживающая тестирование веб-сайтов, мобильных устройств и API.
  • Он предоставляет простой в использовании графический интерфейс и богатые функции тестирования, включая управление тестовыми примерами, выполнение тестов, анализ результатов и т. д.
  • Katalon Studio также поддерживает интеграцию с такими инструментами, как Selenium, что позволяет тестировщикам гибко выбирать и использовать различные инструменты тестирования.

У каждого из этих инструментов есть преимущества и недостатки, и тестировщики могут выбрать подходящий инструмент для фронтенд-тестирования, исходя из потребностей проекта и уровня навыков команды. При выборе инструмента необходимо учитывать такие факторы, как простота использования, комплексная функциональность, стабильность производительности и интеграция с другими инструментами.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose