Webdriver.io browser.getText()有时返回undefined

问题描述 投票:0回答:2

我有这段代码:

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(selector)中)返回undefined用于看起来像这样的选择器:

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

每次运行测试时都不会发生这种情况,但偶尔会发生这种情况。它让我疯狂,因为行为不一致。有时它会起作用,有时则不起作用。 有没有人有类似的问题?请帮忙!谢谢。

webdriver-io
2个回答
1
投票

getText依赖于在页面视口中可见的元素(因此,如果它从页面滚动,它将返回一个空字符串)

相反,您可以使用getHTML(false)来获取元素的文本内容(只需确保它是最内层的元素,否则您将在返回的内容中获取HTML元素)


0
投票

如果你使用我也做过的getHTML,你可以删除HTML标签,如果它们不是innerHTML:

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();
}

对不起匈牙利的记谱法。

© www.soinside.com 2019 - 2024. All rights reserved.