XPath: установление явного идентификатора атрибута улучшит производительность теста (скорость)

0

Я выполнял некоторые модульные тесты и как часть тестирования XML-скриптов обнаружил HTML-элементы с их Xpath.

Мне сказали другие тестеры, что включение явного идентификатора, такого как [@id="IDName"], улучшит производительность, поскольку это позволит приложению быстрее находить элемент.

Это правда, или это миф?

Как пример, это несколько Xpaths, с которыми я имею дело:

XPATH без идентификаторов:

/html/body/div[2]/div/div/div[3]/div/table/tbody//tr

XPath с идентификаторами:

//body[@id= "body"]/div[@id= "wrapper"]/div[@id= "MainContent"]/div[@id="Grid"]/div[@id="DataTableContainer"]/div/table/thead

Действительно ли Java сможет найти второй элемент быстрее первого?

  • 0
    Возможно, вы захотите сделать /html/body[@id="body"]/... , // , aka /descendant-or-self::node()/ имеет стоимость
  • 0
    Вы пытались измерить это?
Показать ещё 2 комментария
Теги:
xpath
junit

1 ответ

1

Все зависит от процессора XPath, который вы используете.

Измерьте его и посмотрите.

Использование функции id() с большей вероятностью даст вам быстрый доступ, чем использование предиката, но это зависит от того, что он является атрибутом идентификатора DTD.

Если вы хотите быть уверенным в индексированном доступе, используйте XSLT и функцию key().

Ещё вопросы

Сообщество Overcoder
Наверх
Меню