Webdriver.io browser.getText()有时返回未定义

时间:2018-11-13 13:37:46

标签: webdriver-io

我有这段代码:

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

    return browser.getText(selector);
}

有时,此函数(getText(selector),但在深度浏览器中为getText(selector))会返回undefined来表示选择器,如下所示:

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

这并非每次运行测试时都会发生,但偶尔会发生。这使我发疯,因为行为不一致。有时它有用,有时却没有。
有人有类似的问题吗?请帮忙!谢谢。

2 个答案:

答案 0 :(得分:1)

getText取决于页面视口中可见的元素(因此,如果将其从页面上滚动下来,它将返回一个空字符串)

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

答案 1 :(得分:0)

如果使用我也使用过的getHTML,如果它们不是innerHTML,则可以去除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();
}

对匈牙利表示法表示抱歉。