Webdriver.io browser.getText () иногда возвращает неопределенное - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть этот кусок кода:

getText: (selector) => {
    browser.waitUntil(function () {
        return browser.isExisting(selector) === true;
    },timeout,
        'Could not find element after: ' + timeout,
        pollingTime);

    return browser.getText(selector);
}

И иногда эта функция (getText (селектор), но в глубоком browser.getText (селектор)) возвращает undefined для селектора, который выглядит следующим образом:

article[data-product-id="test-00020"] li.product-entry__summary__item.is-price span

Это происходит не каждый раз, когда запускается тест, но иногда происходит.Это сводит меня с ума, потому что поведение противоречиво.Иногда это работает, а иногда нет.
У кого-нибудь были подобные проблемы?Пожалуйста помоги!Спасибо.

Ответы [ 2 ]

0 голосов
/ 25 апреля 2019

Если вы используете getHTML, который я тоже использовал, вы можете удалить теги HTML, если они не являются внутренними HTML *:

var strArray = browser.getHTML("//div[myxpath]"); 
for(var i =0; i<strArray.length; i++){
  strArray[i]=strArray[i].replace(/(<([^>]+)>)/ig, "");
  strArray[i] = strArray[i].trim();
}

извините за венгерские обозначения.

0 голосов
/ 18 ноября 2018

getText зависит от элемента, видимого в области просмотра страницы (поэтому, если он прокручивается со страницы, он вернет пустую строку)

Вместо этого вы можете использовать getHTML(false), чтобы получитьтекстовое содержимое элемента (просто убедитесь, что это самый внутренний элемент, в противном случае вы получите HTML-элементы в возвращенном содержимом)

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