0

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

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

4

1 回答 1

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 中显示。

希望这有助于引导您沿着正确的道路前进!

于 2018-03-26T09:25:39.980 回答