如何让 Protractor 在不重新加载浏览器的情况下重新加载 DOM

时间:2021-07-21 17:05:00

标签: selenium-webdriver protractor webdriver-io

如何让 Protractor 在不重新加载浏览器的情况下重新加载 DOM?

我有一个 Web 应用程序,它完全加载,然后在 5 秒后动态地向页面添加调查并且 DOM 发生变化。我的量角器测试无法在调查弹出窗口(Angular 应用上的 Qualtrics 调查)中找到任何元素,包括关闭按钮。

那么,我怎样才能让 Protractor 重新读取 DOM 以便它知道调查弹出窗口?

重新加载页面或重新导航到相同的 URI 不是一种选择,因为它会重置应用程序并且页面状态丢失并且调查将消失。

使用 waitForAngularEnabled 将不起作用,因为 DOM 在 5 秒计时器后再次更改。

例如,这些都不起作用:

isSurveyDialog() {
  return element(by.css('div.QSIPopOver')).isPresent() as Promise<boolean>;
}

isSurveyDialog() {
  const EC = protractor.ExpectedConditions;
  return browser.wait(EC.presenceOf($('.QSIPopOver')), 10000) as Promise<boolean>;
}

是否有较低级别的“webdriver js”方法来执行此操作?

编辑: 现象解释:页面加载完成后,几秒钟后,红色圈出的HTML元素被动态添加到DOM中,无需刷新页面。 enter image description here

0 个答案:

没有答案