脚本加载前从外部js监视功能-赛普拉斯

时间:2020-09-27 14:23:55

标签: automated-tests cypress chai

我正在为我的网站编写测试用例,其中分别加载了多个js文件以实现不同的功能。

对于一个js文件,每当脚本加载时,就会通过window对象暴露一个变量,并且该对象具有我要监视的功能。

我在页面上放置了一些div,一旦外部js加载,div就会调用我需要监视的函数,因此脚本加载后对间谍的任何尝试都会失败,因为该函数是在注册间谍之前执行的。

例如。 加载了js文件window.abc后,就会在abc对象中填充abc.js

对象window.abc具有函数triggerFunc,可以像window.abc.triggerFunc()一样进行访问。

在屏幕上放置了某些div标签,看起来像

<div>
<script>
window.abc.triggerFunc()
</script>
</div>

这些标签的放置方式使得在加载abc.js之后立即执行脚本。

现在我想监视triggerFunc并检查它被调用了多少次,等等。

问题是,由于window.abc为空,我无法在触发js文件之前使用间谍程序。 在js加载后,我无法监视,因为在注册间谍时,该功能已从页面执行,并且无法对其进行任何断言。

关于如何解决这个问题的任何想法?

注意:很抱歉使用模糊的术语,例如abctriggerFunc,但出于安全目的,我无法透露名称。我希望你能理解。

0 个答案:

没有答案