【问题标题】:How to use intern leadfoot waitForDeletedByXpath function?如何使用实习生leadfoot waitForDeletedByXpath函数?
【发布时间】:2018-03-18 16:43:27
【问题描述】:

在什么情况下我可以使用实习生的 Leadfoot waitForDeletedByXpath 功能?从文档中,我了解到此方法等待元素在 Page 中变得不可见。但是在实施时似乎并非如此。我使用的场景如下:

我的应用程序中有一个页面,我可以在其中搜索带有一些预定义参数的数据。单击搜索按钮后,页面上会出现加载图标,直到数据加载到数据网格中,加载图标在数据加载后消失。所以我试图使用这个函数来等到加载图标从页面上消失,这样我就可以毫无问题地读取数据网格中的数据,但它似乎不是那样工作的。 有人可以说明一下这个功能是如何工作的,并指出我正确的方向来实现我想要做的事情。 谢谢

【问题讨论】:

    标签: javascript ui-automation typescript-typings intern leadfoot


    【解决方案1】:

    我相信这里发生的事情是对 waitForDeletedByXPath 方法的轻微误解。

    这个方法的文档说的是:
    “等待此元素内与给定名称属性匹配的所有元素被销毁。”

    当您的加载图标消失时,它很可能仍然是 DOM 的一部分,尽管它只是设置为不可见。此方法期望元素不再是 DOM 的一部分。

    根据我的经验,您需要做的是为您的加载图标设置自己的“等待元素不可见”方法。

    例如:

    return this.remote .then(function () { const waitForLoadingIconNotDisplayed = function (remoteSession) { return remoteSession .findByCssSelector('your_loading_icon_css_selector') .isDisplayed() .then(function (isDisplayed) { if (isDisplayed) { return waitForLoadingIconNotDisplayed(remoteSession); } return true; }); }; return Promise.all([waitForLoadingIconNotDisplayed(this.parent)]); })

    这将循环直到满足条件,即您的加载图标不再设置为使用 Promise.all() 调用在 UI 中显示。

    希望这有助于引导您走上正确的道路!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多