在什么情况下我可以使用实习生的潜行waitForDeletedByXpath功能?从文档中,我理解的是这个方法等待元素在Page中变得不可见。但实施它并不是这样。我使用它的场景如下:
我的应用程序中有一个页面,我可以使用一些预定义的参数搜索数据。单击搜索按钮后,页面上将显示加载图标,直到数据加载到数据网格中,加载数据后加载图标消失。所以我试图使用这个功能等到加载图标从页面中消失,这样我就可以在没有任何问题的情况下读取数据网格中的数据,但它似乎没有那样工作。 有人可以说明这个功能是如何工作的,并指出我朝着正确的方向去实现我想要做的事情。 谢谢
答案 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中显示。
希望这有助于引导你走上正确的道路!