Node.js zombie.js和谷歌地图API
我对zombie.js测试框架和谷歌地图API有问题 我有一个简单的zombie.js,它加载主页并尝试单击登录链接。但是,当我查看主页HTML返回的内容时(从zombie.js浏览器对象的角度来看),我在正文部分只看到以下内容:Node.js zombie.js和谷歌地图API,node.js,mocha.js,zombie.js,Node.js,Mocha.js,Zombie.js,我对zombie.js测试框架和谷歌地图API有问题 我有一个简单的zombie.js,它加载主页并尝试单击登录链接。但是,当我查看主页HTML返回的内容时(从zombie.js浏览器对象的角度来看),我在正文部分只看到以下内容: <body> <script src="https://maps.gstatic.com/intl/en_us/mapfiles/api-3/9/12/main.js" type="text/javascript"></scr
<body>
<script src="https://maps.gstatic.com/intl/en_us/mapfiles/api-3/9/12/main.js" type="text/javascript"></script>
</body>
我今天遇到了这个问题-您只需要异步加载API。与其说这是一个解决方案,不如说是一个有文档记录的替代方案,您可以在这里阅读: 基本上,您只需更改以下代码:
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=SET_TO_TRUE_OR_FALSE" type="text/javascript"></script>
<script type="text/javascript">
function initialize() {
var map = new google.maps.Map(/* ... */);
}
window.onload = initialize();
</script>
函数初始化(){
var map=new google.maps.map(/*…*/);
}
window.onload=初始化();
对此(几乎完全从上面的链接中删除):
函数初始化(){
var map=new google.maps.map(/*…*/);
}
函数loadScript(){
var script=document.createElement(“脚本”);
script.type=“text/javascript”;
script.src=”http://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=TRUE_OR_FALSE&callback=initialize";
document.body.appendChild(脚本);
}
window.onload=loadScript;
这里需要注意的关键是,您必须将回调参数传递给script.src标记(在本例中,我们提供了初始化,但它可以是您想要的任何内容)-这将允许google在动态注入的maps脚本标记完成加载后触发您的初始化代码
第二种机制修复了我的僵尸测试
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=SET_TO_TRUE_OR_FALSE" type="text/javascript"></script>
<script type="text/javascript">
function initialize() {
var map = new google.maps.Map(/* ... */);
}
window.onload = initialize();
</script>
<script type="text/javascript">
function initialize() {
var map = new google.maps.Map(/* ... */);
}
function loadScript() {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=TRUE_OR_FALSE&callback=initialize";
document.body.appendChild(script);
}
window.onload = loadScript;
</script>