在什么场景下可以使用实习生的leadfoot waitForDeletedByXpath函数?根据文档,我所理解的是这个方法等待元素在Page中变得不可见。但在实现它的过程中,似乎并非如此。我使用的场景如下所示:
在我的应用程序中有一个页面,我可以在其中使用一些预定义的参数搜索数据。单击搜索按钮后,加载图标将出现在页面上,直到数据加载到数据网格中,加载图标在加载数据后消失。所以我尝试使用这个函数来等待,直到页面上的加载图标消失,这样我就可以读取datagrid中的数据而不会有任何问题,但它似乎不是这样工作的。有没有人可以解释一下这个函数是如何工作的,并给我指出正确的方向,以实现我想要做的事情。谢谢
发布于 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中显示的条件为止。
希望这篇文章能引导你走上正确的道路!
https://stackoverflow.com/questions/49350387
复制相似问题