【问题标题】:Webdriver.io browser.getText() sometimes returns undefinedWebdriver.io browser.getText() 有时会返回 undefined
【发布时间】:2019-04-16 08:39:09
【问题描述】:

我有这段代码:

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

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

【问题讨论】:

    标签: webdriver-io


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      如果你使用 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();
      }
      

      对不起匈牙利符号。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多