Является ли использование тегов DOM в локаторах xpath хорошей практикой? - PullRequest
2 голосов
/ 09 мая 2019

В моих тестовых случаях чаще, чем часто, я использую локаторы XPath, которые проверяют текстовые атрибуты.Например,

public By label(String text) {
    return By.xpath("//label[contains(text(),'"+text+"')]");
}

и в тестовых случаях я использую его следующим образом:

webUI.verifyElementVisible(page.label("message"));

Я делаю это с метками, делениями, входами (заполнителями), интервалами и т. Д.

Это считается хорошей практикой?

Каковы будут недостатки этого в будущем?

Это значительно сокращает время моей разработки, делает мои хранилища объектов страниц намного чище и лаконичнее.

Ответы [ 2 ]

3 голосов
/ 09 мая 2019

Ключевой момент: Селектор CSS настоятельно рекомендуется использовать поверх XPath из-за его простоты, скорости и производительности.

Помните: Механизмы Xpath различны в каждом браузере, поэтому они несовместимы.

Специально, IE не имеет встроенного механизма xpath, поэтому селен внедряет свой собственный механизм xpath для совместимости своего API. Следовательно, мы теряем преимущество использования собственных функций браузера, которые по своей природе поддерживает WebDriver.

Следовательно, большая аудитория будет рекомендовать использовать CSS поверх Xpath.

Пример: Селектор CSS для метки (текст): метка [for = city]

<label for="city">New York</label> 
2 голосов
/ 09 мая 2019

Это одна из моих причин использования Xpath (другая причина - обратный обход дерева DOM).Обычно я бы использовал CSS-селекторы, когда это возможно, но при поиске определенного текста на странице Xpath-элемент [содержит (., "Текст")] мой предпочтительный выбор.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...