如何使用intern leadfoot waitForDeletedByXpath函数?

时间:2018-03-18 16:43:27

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

在什么情况下我可以使用实习生的潜行waitForDeletedByXpath功能?从文档中,我理解的是这个方法等待元素在Page中变得不可见。但实施它并不是这样。我使用它的场景如下:

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

1 个答案:

答案 0 :(得分:0)

我相信这里发生的事情是对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中显示。

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