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

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
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода