Подготовка к собеседованию по Selenium

В этой статье собраны наиболее часто встречающиеся вопросы по Selenium и некоторые общие вопросы по автоматизации тестирования для подготовки к собеседованию.

Ищете работу Junior QA? Тогда вам в наш телеграм канал QA Вакансии. 
Каждую неделю 7 лучших вакансий с телеграм контактом HR компании. 

Общие вопросы

Как определить, какой тест автоматизировать?

  • Этот тест должен быть частью набора регрессии. Мы автоматизируем повторяющиеся тесты, чтобы сократить ручные усилия, затрачиваемые на тестирование.
  • Тест должен быть автоматизируемым. Другими словами, существующие фреймворки автоматизации должны быть способны автоматизировать этот тест.

Что делать, если запуск автоматизированного набора тестов провалился?

Сначала мы проверяем, не произошел ли провал теста по вине самого сценария автоматизации или из-за неожиданного поведения приложения. Обычно для этого достаточно посмотреть скриншоты или видео, если фреймворк автоматизации располагает такой опцией.

Если проблема в самом скрипте, следует открыть тикет с деталями сбоя, и в следующем спринт-цикле исправить его. Тем временем этот тест будет тестироваться вручную, а соответствующая ему документация будет прикрепляться к общим отчетам о выполнении автоматизации тестирования.

Если же тест обнаружил проблему с приложением, то её следует воспроизвести вручную и завести дефект.

Как провести регрессионное тестирование?

Большая часть набора регрессионных тестов для проекта должна быть автоматизирована. Их выполнение может проводиться в любом доступном фреймворке, например в Jenkins, перед каждым релизом. Остальные неавтоматизированные тесты выполняются вручную.

Вопросы по Selenium

Каковы преимущества и недостатки Selenium?

Преимущества:

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

Недостатки:

  • Он не подходит для тестирования десктопных приложений.
  • Selenium в первую очередь ориентирован на веб-приложения и имеет ограниченную поддержку тестирования мобильных приложений.

Что такое объектная модель документа (DOM) в пользовательском интерфейсе?

DOM – это объектное представление HTML. HTML и DOM синхронизированы.

DOM

Какие локаторы в Selenium вы знаете?

Какие локаторы предпочтительнее в использовании?

Можно использовать ID и имя, если они уникальны. Следующий предпочтительный локатор – CSS, затем, если понадобится написать более сложные локаторы, следует выбрать Xpath.

В чем разница между абсолютными и относительными путями?

Абсолютный путь начинается с корня HTML и использует одинарную косую черту (/) для перехода к целевому элементу.

Относительный путь может начинаться с любого места в HTML и использует двойную косую черту (//) для перехода к целевому элементу. Относительный путь используется чаще, чем абсолютный.

В чем разница между локаторами Xpath и CSS?

Основные отличия:

  • CSS работает быстрее, чем Xpath.
  • Xpath имеет больше возможностей для построения сложных путей. В нем есть много полезных методов. Например: поиск по тексту, “текст содержит” и “текст равен”.
  • Xpath может перемещаться по DOM в любом направлении (вверх, вниз), в то время как CSS – только вниз.

Как работать с динамическими элементами?

  • С помощью метода contains в Xpath находится статическая часть элемента.
  • Другой способ — найти статический элемент и построить путь от него к динамическому элементу.

В чем разница между неявным и явным ожиданием?

  • Неявное ожидание — это глобальное ожидание. Нам нужно объявить его один раз в начале выполнения скипта. Оно применяется ко всем локаторам элементов.
  • Мы используем явное ожидание в особых случаях, когда нам нужно дождаться наступления особого события. Например: появление элемента, исчезновение элемента и т. д.

Каково время ожидания по умолчанию между проверками в неявном ожидании?

Оно составляет 0,5 секунды.

Какой главный недостаток неявного ожидания?

Поскольку оно применяется ко всем локаторам элементов, это может замедлить общее время выполнения.

Что такое FluentWait в Selenium?

  • Оно используется для ожидания определенных событий.
  • Мы можем настроить время ожидания.
  • Мы можем настроить игнорирование определенных исключений.
FluentWait

В чем разница между findElement и findElements?

  • Метод findElement возвращает один веб-элемент. Он выбрасывает исключение NoSuchElement, если элемент не существует.
  • Метод findElements возвращает список WebElements. Он возвращает пустой список, если элемент/ы не существуют.
Разница между findElement и findElements

Как проверить, существует ли элемент в DOM?

  • Мы можем попытаться найти этот элемент и получить исключение, если это не удастся.
  • Можно использовать метод findElements, чтобы проверить, есть ли элемент в DOM. Если он возвращает пустой список, значит, элемента не существует.
Проверка существования элемента в DOM

Как работать с несколькими окнами?

  • Каждое окно имеет уникальный windowHandle (своего рода идентификатор окна).
  • Мы можем определять эти идентификаторы с помощью Selenium и переключаться между окнами.

Пример переключения на последнее окно и возврата к исходному:

Пример переключения на последнее окно и возврата к исходному

Как работать с iFrames в Selenium?

  • Сначала переключитесь на iFrame с помощью метода switchTo().
  • Вы можете переключаться по индексу, идентификатору и имени.
  • Выполнив задание в iFrame, вы можете переключиться обратно, используя defaultContent.

Пример:

Переключение на iFrame

Как работать с выпадающими списками?

Если элемент выпадающего списка основан на теге select, мы можем использовать класс Select для работы с ним. В остальном мы работаем так же, как и с любым другим элементом в Selenium.

Пример:

Работа с выпадающими списками

Как работать со всплывающими окнами?

  • Мы используем класс Alert для работы с всплывающими окнами типа оповещений.
  • Мы можем принимать, отклонять, getText (получать текст) и sendKeys (набирать текст) с помощью класса Alert.
  • Важно дождаться появления оповещения. Для этого используют явное ожидание.

Пример:

Работа со всплывающими окнами

Как набрать текст в поле ввода?

Для этого мы используем метод sendKeys(text).

Пример:

метод sendKeys(text)

Как загружать файлы в Selenium?

Для этого мы также используем метод sendKeys(filePath).

Пример:

Загрузка файлов методом sendKeys(filePath)

Что делает класс Actions в Selenium?

Класс Actions предоставляет возможность обрабатывать события клавиатуры, мыши и специальные действия. Некоторые распространенные действия:

  • Перетаскивание
  • Наведение курсора мыши
  • Двойной клик
  • Клик правой кнопкой мыши
Класс Actions в Selenium

Что такое объектная модель страницы (POM)?

POM – это паттерн проектирования в Selenium, который создает хранилище объектов для хранения веб-элементов. В POM каждая веб-страница приложения представлена в виде класса. Каждый класс будет содержать только соответствующие элементы веб-страницы и методы для работы с этой страницей. Это помогает сократить дублирование кода.

Как бороться с исключением Stale Element Reference?

  • Stale Element Reference Exception, или исключение устаревшего элемента, возникает, когда связь между WebElement и реальным элементом пользовательского интерфейса неактуальна. Например, сценарий нашел элемент на одной странице, а затем перешел на другую страницу, что привело к потере связи. Вернувшись на исходную страницу для работы с элементом, вы можете получить исключение устаревшего элемента.
  • Лучший подход к решению этой проблемы – повторить попытку найти элемент с небольшим ожиданием.

Что такое Remote WebDriver?

Selenium позволяет автоматизировать работу браузеров на удаленных компьютерах с запущенным на них Selenium Grid. Компьютер, на котором выполняется код, называется клиентским, а компьютер с браузером и драйвером – удаленным или иногда конечным узлом. Чтобы направить тесты Selenium на удаленный компьютер, необходимо использовать класс Remote WebDriver и передать URL, включающий порт grid на этой машине.

Что такое Selenium Grid?

Selenium Grid позволяет выполнять сценарии WebDriver на удаленных машинах путем маршрутизации команд, отправляемых клиентом удаленным экземплярам браузера.

Цели Grid:

  • Обеспечить простой способ параллельного выполнения тестов на нескольких машинах
  • Позволить тестирование на разных версиях браузеров
  • Обеспечить кроссплатформенное тестирование

Что такое Sauce Labs и BrowserStack?

Sauce Labs и BrowserStack – это облачные платформы, предоставляющие инфраструктуру для тестирования веб- и мобильных приложений в различных браузерах, операционных системах и устройствах.

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

На этом наша статья закончена. Спасибо за внимание.

Перевод статьи «Top Selenium Interview Questions for SDET».

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *