Какова производительность каждого типа селектора? - PullRequest
0 голосов
/ 10 марта 2020

В Codecept Js у вас есть другой способ выбора элементов и управления ими для тестирования e2e:

  • CSS селектор
  • Xpath селектор
  • Семанти c локатор
  • Локатор строитель

Но у меня есть несколько вопросов об их производительности. Какой тип локатора лучший? Какое соотношение между ними? В настоящее время я использую конструктор локаторов, но не знаю, насколько они эффективны, например, селектор CSS или селектор идентификатора.

1 Ответ

1 голос
/ 11 марта 2020

Нет метрик производительности между типами локаторов для Codecept JS, AFAIK.

О типах локаторов

Конструктор локаторов просто создает локатор xpath.

CSS и локатор xpath имеет аналогичные логи c для помощников (WebDriver, Puppeteer, Playwright и др. c). Разница в скорости появляется в браузере Уровень драйвера.

AFAIK , IE11 с WebDriver работает быстрее с xpath, но Chrome и Firefox с css. Для Nightmare, для Puppeteer и других это может отличаться.

Для semanti c locators - зависит от типа локатора. Он пытается найти элемент с одной стратегией, чем с другими. Таким образом, технически существует высокая вероятность, что локаторы semanti c будут работать медленнее.

Codecept JS tip

И я не знаю, как на самом деле Вам нужны трюки производительности, но я знаю один совет (работает для текущей и более старых версий, для <= 2.5.0): </p>

Если вы укажете тип селектора, например I.click({ css: "button#some-selector" });, это будет немного быстрее, чем использование не указанного селектора I.click("button#some-selector") из-за реализации semanti c (нечетких) локаторов.

Для не описанного типа локатора Codecept попытается «угадать», какой тип локатора вы используете и, в некоторых случаях, он будет работать так же, как semanti c locator - с поиском пару раз с разными стратегиями.

UPD добавлена ​​информация о типах локаторов

...