首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用实习生leadfoot waitForDeletedByXpath功能?

如何使用实习生leadfoot waitForDeletedByXpath功能?
EN

Stack Overflow用户
提问于 2018-03-19 00:43:27
回答 1查看 63关注 0票数 0

在什么场景下可以使用实习生的leadfoot waitForDeletedByXpath函数?根据文档,我所理解的是这个方法等待元素在Page中变得不可见。但在实现它的过程中,似乎并非如此。我使用的场景如下所示:

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

EN

回答 1

Stack Overflow用户

发布于 2018-03-26 17:25:40

我认为这里发生的事情是对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中显示的条件为止。

希望这篇文章能引导你走上正确的道路!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49350387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档