我正在为我的网站编写测试用例,其中分别加载了多个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加载后,我无法监视,因为在注册间谍时,该功能已从页面执行,并且无法对其进行任何断言。
关于如何解决这个问题的任何想法?
注意:很抱歉使用模糊的术语,例如abc
或triggerFunc
,但出于安全目的,我无法透露名称。我希望你能理解。