如何在量角器 e2e 测试中等待浏览器?

How to wait browser on protractor e2e test?

我有一个不稳定的测试。关于我的加载屏幕。我用

await browser.wait(EC.invisibilityOf(...)); // It contains parameters.

await browser.sleep(2000);

但有时仍然是工作,不是。我有一个按钮。我的测试尝试按钮单击加载屏幕因此失败。加载屏幕消失时必须等待。(我尝试使用 wait 和 sleep )

我是怎么解决这个问题的。我需要帮助。

It must wait when loading screen was gone

  1. 创建一个 while 循环。
  2. 检查加载屏幕是否消失
    • 如果为真,那就做你的事
    • 否则稍等
  3. 让循环执行直到条件returns为真

以及

if the loading screen is gone

您可以查看加载屏幕元素的CSS。可以

display: none;

visibility: hidden;

取决于隐藏方式。

仅仅因为您的加载屏幕不可见并不意味着下一页已经准备好与之交互。您可以尝试等待下一页上某个元素的可见性,或者尝试将睡眠更改为等待 browser.driver.sleep(2000)。

我可能会从您希望加载的页面中取出一个元素并尝试

await browser.wait(EC.presenceOf(reqElement), 5000,
   'reqElement not displayed on page after 5 seconds, loading screen may still be visible'
)