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

BDD Web Automation 11: Найти элементы с визажими

В этой статье мы вводим метод поиска нахождения и сравните визит и начислители

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

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

Содержание

  • Введение в метод винделений
  • Показания против выезд

Введение в метод винделений

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

driver.findElement({id:xxxxxxxx});

В селен-Webdriver метод kesteLement возвращает один элемент, а метод вишников возвращает массив всех элементов, соответствующих запросу. Возьми Node.js Домашняя страница Например, мы хотим перечислить пункты меню на этой странице. Мы используем Chrome devtools, чтобы найти один из пунктов меню:

1.png.

Затем вы можете скопировать селектор CSS из элемента ссылки в devtools, который есть:

body > header > div > nav > ul > li.nav-foundation > a

Для получения более подробной информации о том, как это сделать, обратитесь к последнему посту: используйте Chrome devtools, чтобы найти элементы часть 2.

Чтобы выбрать массив элементов Link, вам нужно немного изменять селектор, чтобы сделать его достаточно универсальным:

nav > ul > li > a

Код Node.js является следующим:

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

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

    //use findElements
    let links = await driver.findElements({css:'nav > ul > li > a'});
    for(let link of links) {
        text = await link.getText();
        console.log(text);
    }
    return driver.quit();
})()

Обратите внимание, что мы разместим звонок внутри async Функция, чтобы мы могли использовать ждать Ключевое слово вместо использования Тогда Призыв к цепочке асинковых вызовов селен-Webdriver. Вы можете запустить вышеуказанный кусок кода с шагами, указанными в статье Используйте Chrome браузер для автоматизации Отказ

Он выводит тексты пунктов меню:

HOME
ABOUT
DOWNLOADS
DOCS
GET INVOLVED
SECURITY
NEWS
FOUNDATION

Показания по сравнению с витежими

Оба Показания и набережения Методы могут использовать 8 методов поиска, которые мы обсуждали ранее. Разница между ними является первым возвращает один элемент, если ни один элемент не найден, он выбрасывает исключение, а последняя возвращает массив элементов, он может вернуть пустой список, если никаких элементов не совпадает с запросом. Здесь я перечисляю условия с ними, когда есть разное количество сопоставленных элементов.

  • поставка
    • 0 Матч: бросает ошибку
    • 1 матч: возвращает элемент
    • 2 ~ N совпадений: возвращает первый элемент появляется в доме
  • выезд
    • 0 матча: вернуть пустой массив
    • 1 матч: возвращает массив, который содержит только один элемент
    • 2 ~ N совпадений: возврат массива со всеми элементами

Помните, что оба они возвращают объект обещания, что означает, что вам нужно использовать «.then» призыв к цепочке операторов после него или использовать ждать ключевое слово внутри async функция, чтобы позвонить им.

Также см.: Предыдущий пост : 10. Используйте Chrome devtools, чтобы найти элементы часть 2 Следующий пост : 12. Загрузить файлы с помощью Webdriver Selenium Первый пост : 01. Создать и запустить первый образец