Рубрики
Без рубрики

BDD Web Automation 13: Автоматическое поведение браузера

В этой статье мы обсудим, как управлять поведением браузера с API Selenium.

Автор оригинала: CukeTest.

Это 13-й пост в серии, Тест на автоматизацию BDD для веб-пользовательского интерфейса Отказ В основном он говорит о том, как написать сценарий тестирования веб-автоматизации с помощью CuCumber.js, BDD-тестовой структуры. Вы будете использовать Node.js в качестве языка программирования.

В этой статье мы обсудим, как управлять поведением браузера с API Selenium.

Содержание

  • Навигация API
    • Вперед
    • Обратно
    • Освежать
  • Окно браузера API
    • Максимизировать
    • Полноэкранный
    • Установить размер окна
  • Закрыть текущую страницу
  • Закрыть браузер

Навигация API

Большинство браузеров имеют три кнопки на панели инструментов, которые возвращаются, вперед и обновляются. В скрипте автоматизации нам иногда необходимо подтвердить, может ли страницу верить нормально или использовать правильность, когда эти кнопки нажаты. Webdriver предоставляет API на Навигация Это может сделать это:

  • назад()
  • вперед()
  • Обновить ()

Ниже приведен код Node.js, который использует библиотеку селена-Webdriver:

require('chromedriver');
const { Builder } = require('selenium-webdriver')
let driver = new Builder().forBrowser('chrome').build();

(async function() {
    await driver.get('https://nodejs.org/en/')
    await driver.findElement({ linkText: "DOCS" }).click();
    await driver.sleep(2000);

    await driver.navigate().back();
    await driver.sleep(2000);

    await driver.navigate().forward();
    await driver.sleep(2000);

    await driver.navigate().refresh();
    await driver.sleep(2000);
})()

Чтобы запустить этот скрипт, вы можете следовать статью 07: используйте Chrome Browser для автоматизации для настройки вашего проекта тестирования.

Окно браузера API

Selenium также предоставляет API, которые манипулируют окно браузера, они перечислены ниже:

Максимизировать () максимизировать окно
полноэкранный() Установите окно на полный экран
сантизирует () Установите окно на определенный размер
Закрыть() Закройте текущее окно браузера
покидать() Закрыть все окна браузера, запущенные веб-драйвером

Разница между Закрыть () и Quit () Это Закрыть () Закроется только текущая активная вкладка, управляемая экземпляром драйвера, белый Quit () Закроет все окна, управляемые драйвером и сделайте очистку. Если есть только одна вкладка, открытая водителем, вызывая Закрыть () или Quit () будет иметь тот же эффект.

Вы должны позвонить Quit () API в конце сценария автоматизации, чтобы сделать работу очистки. Он гарантирует, что все окна браузера, запущенные вашим сценарием, закрываются правильно.

Когда вы создаете Cucumber.js Сценарий, вы можете поставить Driver.Quit () Заявление в После крючок или Послеобеда Крючок, зависит от того, где вы инициализируете водитель пример. Для получения дополнительной информации о крючках см. 04: крючки и тайм-аут Отказ

Если вы создаете новое окно браузера для каждого Сценарий И уничтожить окно, когда заканчивается сценарий, вы должны поместить оператор экземпляра драйвера в До крючок и Quit () Заявление в После крюк. В этом случае вы должны назначить водитель Экземпляр к Мир Экземпляр, так что его можно получить в функциях определения шага сценария.

Если вы используете тот же экземпляр драйвера для всего сценария автоматизации, вы можете инициализировать драйвер при запуске скрипта или поместить его в BeForall крюк. И поставить заявление «Driver.Quit ()» в Послеобеда крюк.

Иногда вы хотите проверить, как макет страницы, когда браузер находится под разным разрешением. Просто максимизация окна браузера или сделайте его полным экраном, не всегда служит цели. Сценарий может работать на некоторых компьютерах с разными разрешениями на рабочем столе. Вы можете установить браузер явно на определенный размер окна. Например, в скрипте вы можете открыть браузер, загрузить страницу, установите ее в определенный размер окна, захватить скриншот и поставить скриншот в отчете огурца. Если веб-проект создан Cuketest, он предоставляет код, который автоматически захватывает скриншот из браузера для каждого сценария и вставить в отчет. Образец можно найти в 01: создать и запустить первый образец

Ниже приведен образец код, который вызывает эти окна браузера.

require('chromedriver');
const { Builder } = require('selenium-webdriver')
let driver = new Builder().forBrowser('chrome').build();

(async function() {
    await driver.get('https://nodejs.org/en/')

    await driver.manage().window().maximize();
    await driver.sleep(2000);

    await driver.manage().window().fullscreen();
    await driver.sleep(2000);

    await driver.manage().window().setSize(1024, 768);
    await driver.sleep(2000);

    await driver.close();
    await driver.quit();
})()

Когда вы редактируете образец кода в Cuketest Он построил в Intelli-Sense для библиотеки «Selenium-Webdriver», которая подскажет вам список методов, которые вы можете позвонить.

Другие сообщения:

  • Предыдущий пост 12. Загрузить файлы с помощью Webdriver Selenium
  • Первый пост 01. Создать и запустить первый образец