Spec-Zone.ru › Playwright

LocatorAssertions

Класс LocatorAssertions предоставляет методы проверки, которые могут быть использованы для утверждений о состоянии Locator в тестах.

import { test, expect } from '@playwright/test';

test('status becomes submitted', async ({ page }) => {
  // ...
  await page.getByRole('button').click();
  await expect(page.locator('.status')).toHaveText('Submitted');
});

Методы​

toBeAttached​

Обеспечивает, что Locator указывает на элемент, который подключен к документу или ShadowRoot.

Использование

await expect(page.getByText('Hidden text')).toBeAttached();

Аргументы

  • options Объект (необязательно)
    • attached boolean (необязательно)

    • timeout число (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращает

  • Promise<void>

toBeChecked​

Обеспечивает, что Locator указывает на отмеченный элемент ввода.

Использование

const locator = page.getByLabel('Subscribe to newsletter');
await expect(locator).toBeChecked();

Аргументы

  • options Объект (необязательно)
    • checked boolean (необязательно)

    • timeout число (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращает

  • Promise<void>

toBeDisabled​

Обеспечивает, что Locator указывает на отключенный элемент. Элемент отключен, если у него есть атрибут "disabled" или он отключен с помощью 'aria-disabled'. Обратите внимание, что только нативные элементы управления, такие как HTML button, input, select, textarea, option, optgroup могут быть отключены путем установки атрибута "disabled". Атрибут "disabled" на других элементах игнорируется браузером.

Использование

const locator = page.locator('button.submit');
await expect(locator).toBeDisabled();

Аргументы

  • options Объект (необязательно)
    • timeout число (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращает

  • Promise<void>

toBeEditable​

Обеспечивает, что Locator указывает на редактируемый элемент.

Использование

const locator = page.getByRole('textbox');
await expect(locator).toBeEditable();

Аргументы

  • options Объект (необязательно)
    • editable boolean (необязательно)

    • timeout число (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращает

  • Promise<void>

toBeEmpty​

Обеспечивает, что Locator указывает на пустой редактируемый элемент или узел DOM, не имеющий текста.

Использование

const locator = page.locator('div.warning');
await expect(locator).toBeEmpty();

Аргументы

  • options Объект (необязательно)
    • timeout число (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращает

  • Promise<void>

toBeEnabled​

Обеспечивает, что Locator указывает на активный элемент.

Использование

const locator = page.locator('button.submit');
await expect(locator).toBeEnabled();

Аргументы

  • options Объект (необязательно)
    • enabled boolean (необязательно)

    • timeout число (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращает

  • Promise<void>

toBeFocused​

Обеспечивает, что Locator указывает на сфокусированный узел DOM.

Использование

const locator = page.getByRole('textbox');
await expect(locator).toBeFocused();

Аргументы

  • options Объект (необязательно)
    • timeout число (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращает

  • Promise<void>

toBeHidden​

Обеспечивает, что Locator либо не разрешает к узлу DOM, либо разрешает к невидимому.

Использование

const locator = page.locator('.my-element');
await expect(locator).toBeHidden();

Аргументы

  • options Объект (необязательно)
    • timeout число (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращаемое значение

  • Promise<void>

toBeInViewport​

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

Использование

const locator = page.getByRole('button');
// Make sure at least some part of element intersects viewport.
await expect(locator).toBeInViewport();
// Make sure element is fully outside of viewport.
await expect(locator).not.toBeInViewport();
// Make sure that at least half of the element intersects viewport.
await expect(locator).toBeInViewport({ ratio: 0.5 });

Аргументы

  • options Объект (необязательно)
    • ratio число (необязательно)

      Минимальное соотношение элемента для пересечения области видимости. Если равно 0, то элемент должен пересекать область видимости с любым положительным соотношением. По умолчанию 0.

    • timeout число (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращаемое значение

  • Promise<void>

toBeVisible​

Обеспечивает, что Locator указывает на присоединенный и видимый узел DOM.

Чтобы проверить, что хотя бы один элемент из списка является видимым, используйте locator.first().

Использование

// A specific element is visible.
await expect(page.getByText('Welcome')).toBeVisible();

// At least one item in the list is visible.
await expect(page.getByTestId('todo-item').first()).toBeVisible();

// At least one of the two elements is visible, possibly both.
await expect(
    page.getByRole('button', { name: 'Sign in' })
        .or(page.getByRole('button', { name: 'Sign up' }))
        .first()
).toBeVisible();

Аргументы

  • options Объект (необязательно)
    • timeout число (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

    • visible логическое (необязательно)

Возвращаемое значение

  • Promise<void>

toContainText​

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

Использование

const locator = page.locator('.title');
await expect(locator).toContainText('substring');
await expect(locator).toContainText(/\d messages/);

Если вы передаете массив в качестве ожидаемого значения, ожидания следующие:

  1. Locator разрешается в список элементов.
  2. Элементы из подмножества этого списка содержат текст из ожидаемого массива, соответственно.
  3. Соответствующее подмножество элементов имеет тот же порядок, что и ожидаемый массив.
  4. Каждое текстовое значение из ожидаемого массива сопоставляется с каким-либо элементом из списка.

Например, рассмотрим следующий список:

<ul>
  <li>Item Text 1</li>
  <li>Item Text 2</li>
  <li>Item Text 3</li>
</ul>

Давайте посмотрим, как мы можем использовать утверждение:

// ✓ Contains the right items in the right order
await expect(page.locator('ul > li')).toContainText(['Text 1', 'Text 3']);

// ✖ Wrong order
await expect(page.locator('ul > li')).toContainText(['Text 3', 'Text 2']);

// ✖ No item contains this text
await expect(page.locator('ul > li')).toContainText(['Some 33']);

// ✖ Locator points to the outer list element, not to the list items
await expect(page.locator('ul')).toContainText(['Text 3']);

Аргументы

  • expected строка | регулярное выражение | массив<строка | регулярное выражение>

    Ожидаемая подстрока или регулярное выражение или список таковых.

  • options Объект (необязательно)

    • ignoreCase логическое (необязательно)

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

    • timeout число (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

    • useInnerText логическое (необязательно)

      Использовать ли element.innerText вместо element.textContent при извлечении текста узла DOM.

Возвращаемое значение

  • Promise<void>

Подробности

Когда параметр expected является строкой, Playwright нормализует пробелы и переводы строк как в фактическом тексте, так и в ожидаемой строке перед сопоставлением. При использовании регулярного выражения фактический текст сопоставляется как есть.

toHaveAccessibleDescription​

Обеспечивает, что Locator указывает на элемент с заданным доступным описанием.

Использование

const locator = page.getByTestId('save-button');
await expect(locator).toHaveAccessibleDescription('Save results to disk');

Аргументы

  • description строка | регулярное выражение

    Ожидаемое доступное описание.

  • options Объект (необязательно)

    • ignoreCase логическое (необязательно)

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

    • timeout число (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращаемое значение

  • Promise<void>

toHaveAccessibleName​

Обеспечивает, что Locator указывает на элемент с заданным доступным именем.

Использование

const locator = page.getByTestId('save-button');
await expect(locator).toHaveAccessibleName('Save to disk');

Аргументы

  • name string | RegExp

    Ожидаемое доступное имя.

  • options Object (необязательно)

    • ignoreCase boolean (необязательно)

      Выполнять ли совпадение без учёта регистра. Опция ignoreCase имеет приоритет над соответствующим флагом регулярного выражения, если он указан.

    • timeout number (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращаемое значение

  • Promise<void>

toHaveAttribute(name, value)​

Обеспечивает, что Locator указывает на элемент с заданным атрибутом.

Использование

const locator = page.locator('input');
await expect(locator).toHaveAttribute('type', 'text');

Аргументы

  • name string

    Имя атрибута.

  • value string | RegExp

    Ожидаемое значение атрибута.

  • options Object (необязательно)

    • ignoreCase boolean (необязательно)

      Выполнять ли совпадение без учёта регистра. Опция ignoreCase имеет приоритет над соответствующим флагом регулярного выражения, если он указан.

    • timeout number (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращаемое значение

  • Promise<void>

toHaveAttribute(name)​

Обеспечивает, что Locator указывает на элемент с заданным атрибутом. Метод проверит наличие атрибута.

const locator = page.locator('input');
// Assert attribute existence.
await expect(locator).toHaveAttribute('disabled');
await expect(locator).not.toHaveAttribute('open');

Использование

await expect(locator).toHaveAttribute(name);
await expect(locator).toHaveAttribute(name, options);

Аргументы

  • name string

    Имя атрибута.

  • options Object (необязательно)

    • timeout number (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращаемое значение

  • Promise<void>

toHaveClass​

Обеспечивает, что Locator указывает на элемент с заданными классами CSS. Требуется точное совпадение или использование расширенного регулярного выражения.

Использование

<div class='selected row' id='component'></div>
const locator = page.locator('#component');
await expect(locator).toHaveClass(/selected/);
await expect(locator).toHaveClass('selected row');

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

const locator = page.locator('list > .component');
await expect(locator).toHaveClass(['component', 'component selected', 'component']);

Аргументы

  • expected string | RegExp | Array<string | RegExp>

    Ожидаемый класс или регулярное выражение или список этих элементов.

  • options Object (необязательно)

    • timeout number (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращаемое значение

  • Promise<void>

toHaveCount​

Обеспечивает, что Locator разрешается в точное количество узлов DOM.

Использование

const list = page.locator('list > .component');
await expect(list).toHaveCount(3);

Аргументы

  • count number

    Ожидаемое количество.

  • options Object (необязательно)

    • timeout number (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращаемое значение

  • Promise<void>

toHaveCSS​

Обеспечивает, что Locator приводит к элементу с заданным вычисляемым стилем CSS.

Использование

const locator = page.getByRole('button');
await expect(locator).toHaveCSS('display', 'flex');

Аргументы

  • name string

    Имя свойства CSS.

  • value string | RegExp

    Значение свойства CSS.

  • options Object (необязательно)

    • timeout number (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращает

  • Promise<void>

toHaveId​

Обеспечивает, что Locator указывает на элемент с заданным идентификатором узла DOM.

Использование

const locator = page.getByRole('textbox');
await expect(locator).toHaveId('lastname');

Аргументы

  • id строка | RegExp

    Идентификатор элемента.

  • options Объект (необязательно)

    • timeout число (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращает

  • Promise<void>

toHaveJSProperty​

Обеспечивает, что Locator указывает на элемент с заданным свойством JavaScript. Обратите внимание, что это свойство может быть как примитивного типа, так и обычным сериализуемым объектом JavaScript.

Использование

const locator = page.locator('.component');
await expect(locator).toHaveJSProperty('loaded', true);

Аргументы

  • name строка

    Имя свойства.

  • value Объект

    Значение свойства.

  • options Объект (необязательно)

    • timeout число (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращает

  • Promise<void>

toHaveRole​

Обеспечивает, что Locator указывает на элемент с заданным ролем ARIA.

Обратите внимание, что роль соответствует как строке, игнорируя иерархию ролей ARIA. Например, утверждение о роли суперкласса "checkbox" для элемента с ролью подкласса "switch" приведет к ошибке.

Использование

const locator = page.getByTestId('save-button');
await expect(locator).toHaveRole('button');

Аргументы

  • role "alert" | "alertdialog" | "application" | "article" | "banner" | "blockquote" | "button" | "caption" | "cell" | "checkbox" | "code" | "columnheader" | "combobox" | "complementary" | "contentinfo" | "definition" | "deletion" | "dialog" | "directory" | "document" | "emphasis" | "feed" | "figure" | "form" | "generic" | "grid" | "gridcell" | "group" | "heading" | "img" | "insertion" | "link" | "list" | "listbox" | "listitem" | "log" | "main" | "marquee" | "math" | "meter" | "menu" | "menubar" | "menuitem" | "menuitemcheckbox" | "menuitemradio" | "navigation" | "none" | "note" | "option" | "paragraph" | "presentation" | "progressbar" | "radio" | "radiogroup" | "region" | "row" | "rowgroup" | "rowheader" | "scrollbar" | "search" | "searchbox" | "separator" | "slider" | "spinbutton" | "status" | "strong" | "subscript" | "superscript" | "switch" | "tab" | "table" | "tablist" | "tabpanel" | "term" | "textbox" | "time" | "timer" | "toolbar" | "tooltip" | "tree" | "treegrid" | "treeitem"

    Требуемая роль aria.

  • options Объект (необязательно)

    • timeout число (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращает

  • Promise<void>

toHaveScreenshot(name)​

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

Использование

const locator = page.getByRole('button');
await expect(locator).toHaveScreenshot('image.png');

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

Аргументы

  • name строка | Массив<строка>

    Имя снимка.

  • options Объект (необязательно)

    • animations "disabled" | "allow" (необязательно)

      При установке в "disabled", останавливаются анимации CSS, переходы CSS и веб-анимации. Анимации обрабатываются по-разному в зависимости от их продолжительности:

      • конечные анимации быстро доводятся до завершения, поэтому они вызовут событие transitionend.
      • бесконечные анимации отменяются до начального состояния, а затем воспроизводятся заново после создания снимка.

      По умолчанию установлено значение "disabled" для отключения анимаций.

    • caret "hide" | "initial" (необязательно)

      При установке в "hide", курсор текста на снимке будет скрыт. При установке в "initial", поведение курсора текста не изменится. По умолчанию установлено значение "hide".

    • mask Массив<Локатор> (необязательно)

      Укажите локаторы, которые должны быть замаскированы при создании снимка. Замаскированные элементы будут перекрыты розовым прямоугольником #FF00FF (настраиваемым параметром maskColor), который полностью перекрывает его область.

    • maskColor строка (необязательно)

      Укажите цвет прямоугольника для замаскированных элементов в формате CSS цвета. Цвет по умолчанию — розовый #FF00FF.

    • maxDiffPixelRatio число (необязательно)

      Допустимое отношение пикселей, отличающихся от общего количества пикселей, от 0 до 1. Значение по умолчанию настраивается с помощью TestConfig.expect. По умолчанию не установлено.

    • maxDiffPixels число (необязательно)

      Допустимое количество пикселей, которые могут отличаться. Значение по умолчанию настраивается с помощью TestConfig.expect. По умолчанию не установлено.

    • omitBackground логическое (необязательно)

      Скрывает стандартный белый фон и позволяет создавать скриншоты с прозрачностью. Не применимо к jpeg изображениям. По умолчанию установлено значение false.

    • scale "css" | "device" (необязательно)

      При установке в "css", снимок будет содержать по одному пикселю на каждый пиксель CSS на странице. На устройствах с высокой плотностью пикселей это позволит сохранить скриншоты небольшими. Использование опции "device" создаст по одному пикселю на каждый пиксель устройства, поэтому снимки на устройствах с высокой плотностью пикселей будут в два или более раз больше.

      По умолчанию установлено значение "css".

    • stylePath строка | Массив<строка> (необязательно)

      Имя файла со стилями, которые нужно применить при создании скриншота. Здесь вы можете скрыть динамические элементы, сделать элементы невидимыми или изменить их свойства, чтобы помочь в создании повторяющихся скриншотов. Эти стили проникают в Shadow DOM и применяются к внутренним фреймам.

    • threshold число (необязательно)

      Допустимое различие воспринятого цвета в цветовом пространстве YIQ между тем же пикселем в сравниваемых изображениях, от нуля (строго) до одного (свободно). Значение по умолчанию настраивается с помощью TestConfig.expect. По умолчанию установлено значение 0.2.

    • timeout число (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию установлено значение timeout в TestConfig.expect.

Возвращает

  • Обещание<пустое значение>

toHaveScreenshot()​

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

Использование

const locator = page.getByRole('button');
await expect(locator).toHaveScreenshot();

Обратите внимание, что проверки скриншотов работают только с тестовым исполнителем Playwright.

Аргументы

  • options Объект (необязательно)
    • animations "disabled" | "allow" (необязательно)

      При установке в "disabled", останавливает анимации CSS, переходы CSS и веб-анимации. Анимации обрабатываются по-разному в зависимости от их продолжительности:

      • конечные анимации завершаются быстро, поэтому они будут вызывать событие transitionend.
      • бесконечные анимации отменяются до начального состояния, а затем воспроизводятся после скриншота.

      По умолчанию "disabled", что отключает анимации.

    • caret "hide" | "initial" (необязательно)

      При установке в "hide", скриншоты будут скрывать курсор текста. При установке в "initial", поведение курсора текста не будет изменено. По умолчанию "hide".

    • mask Массив<Локатор> (необязательно)

      Укажите локаторы, которые должны быть замаскированы при создании скриншота. Замаскированные элементы будут наложены розовой рамкой #FF00FF (настраиваемой параметром maskColor), которая полностью покрывает их границу.

    • maskColor строка (необязательно)

      Укажите цвет рамки наложения для замаскированных элементов в формате CSS. Цвет по умолчанию — розовый #FF00FF.

    • maxDiffPixelRatio число (необязательно)

      Допустимое отношение пикселей, отличающихся от общего числа пикселей, в диапазоне от 0 до 1. По умолчанию настраивается с помощью TestConfig.expect. Не задано по умолчанию.

    • maxDiffPixels число (необязательно)

      Допустимое количество отличающихся пикселей. По умолчанию настраивается с помощью TestConfig.expect. Не задано по умолчанию.

    • omitBackground логическое значение (необязательно)

      Скрывает фоновый белый цвет и позволяет создавать скриншоты с прозрачностью. Не применимо к jpeg изображениям. По умолчанию false.

    • scale "css" | "device" (необязательно)

      При установке в "css", скриншоты будут содержать один пиксель на каждый пиксель CSS на странице. Для устройств с высокой плотностью пикселей это позволит сохранить скриншоты небольшого размера. Использование параметра "device" создаст один пиксель на каждый пиксель устройства, так что скриншоты устройств с высокой плотностью пикселей будут в два раза больше или даже больше.

      По умолчанию "css".

    • stylePath строка | массив<строки> (необязательно)

      Имя файла, содержащего стили, которые необходимо применить при создании скриншота. Здесь вы можете скрыть динамические элементы, сделать элементы невидимыми или изменить их свойства, чтобы помочь в создании повторяющихся скриншотов. Эти стили проникают в Shadow DOM и применяются к внутренним кадрам.

    • threshold число (необязательно)

      Допустимое различие в восприятии цвета в цветовом пространстве YIQ между одним и тем же пикселем в сравниваемых изображениях, от нуля (строгое) до единицы (мягкое). По умолчанию настраивается с помощью TestConfig.expect. По умолчанию 0.2.

    • timeout число (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращает

  • Обещание<пустое значение>

toHaveText​

Обеспечивает, что Локатор указывает на элемент с заданным текстом. Все вложенные элементы будут учитываться при вычислении текстового содержимого элемента. Вы также можете использовать регулярные выражения для значения.

Использование

const locator = page.locator('.title');
await expect(locator).toHaveText(/Welcome, Test User/);
await expect(locator).toHaveText(/Welcome, .*/);

Если вы передадите массив в качестве ожидаемого значения, ожидания следующие:

  1. Локатор разрешается в список элементов.
  2. Количество элементов равно количеству ожидаемых значений в массиве.
  3. Элементы из списка имеют текст, соответствующий ожидаемым значениям массива по одному, в порядке следования.

Например, рассмотрим следующий список:

<ul>
  <li>Text 1</li>
  <li>Text 2</li>
  <li>Text 3</li>
</ul>

Давайте посмотрим, как мы можем использовать это утверждение:

// ✓ Has the right items in the right order
await expect(page.locator('ul > li')).toHaveText(['Text 1', 'Text 2', 'Text 3']);

// ✖ Wrong order
await expect(page.locator('ul > li')).toHaveText(['Text 3', 'Text 2', 'Text 1']);

// ✖ Last item does not match
await expect(page.locator('ul > li')).toHaveText(['Text 1', 'Text 2', 'Text']);

// ✖ Locator points to the outer list element, not to the list items
await expect(page.locator('ul')).toHaveText(['Text 1', 'Text 2', 'Text 3']);

Аргументы

  • expected строка | регулярное выражение | массив<строка | регулярное выражение>

    Ожидаемая строка или регулярное выражение или список таких.

  • options объект (необязательно)

    • ignoreCase логическое значение (необязательно)

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

    • timeout число (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

    • useInnerText логическое значение (необязательно)

      Использовать element.innerText вместо element.textContent при извлечении текстового содержимого узла DOM.

Возвращает

  • Обещание<пустое значение>

Подробности

Когда параметр expected является строкой, Playwright будет нормализовывать пробелы и символы перевода строки как в фактическом тексте, так и в ожидаемой строке перед сопоставлением. При использовании регулярного выражения фактический текст сопоставляется как есть.

toHaveValue​

Обеспечивает, что Локатор указывает на элемент с заданным значением ввода. Вы также можете использовать регулярные выражения для значения.

Использование

const locator = page.locator('input[type=number]');
await expect(locator).toHaveValue(/[0-9]/);

Аргументы

  • value строка | регулярное выражение

    Ожидаемое значение.

  • options объект (необязательно)

    • timeout число (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращает

  • Обещание<пустое значение>

toHaveValues​

Обеспечивает, что Locator указывает на многовыборный/выпадающий список (т.е. select с атрибутом multiple ) и указанные значения выбраны.

Использование

Например, приведённый ниже элемент:

<select id="favorite-colors" multiple>
  <option value="R">Red</option>
  <option value="G">Green</option>
  <option value="B">Blue</option>
</select>
const locator = page.locator('id=favorite-colors');
await locator.selectOption(['R', 'G']);
await expect(locator).toHaveValues([/R/, /G/]);

Аргументы

  • values Массив<строка | RegExp>

    Ожидаемые в данный момент выбранные варианты.

  • options Объект (необязательно)

    • timeout число (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращаемое значение

  • Promise<void>

toMatchAriaSnapshot​

Утверждает, что целевой элемент соответствует заданному снимку доступности.

Использование

await page.goto('https://demo.playwright.dev/todomvc/');
await expect(page.locator('body')).toMatchAriaSnapshot(`
  - heading "todos"
  - textbox "What needs to be done?"
`);

Аргументы

  • expected строка
  • options Объект (необязательно)
    • timeout число (необязательно)

      Время повторной проверки утверждения в миллисекундах. По умолчанию timeout в TestConfig.expect.

Возвращаемое значение

  • Promise<void>

Свойства​

not​

Изменяет утверждение на проверку противоположного условия. Например, этот код проверяет, что Locator не содержит текст "error":

await expect(locator).not.toContainText('error');

Использование

expect(locator).not

Тип

  • LocatorAssertions

© 2024 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-locatorassertions

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API