Javascript zombie.js:如何查看完整(即生成的)html
我正在使用CKEditor,我想做一些功能测试。问题是,CKEditor以某种方式将自己附加到一个TEXTAREA标记上,并通过javascript将元素添加到我可以看到的DOM中,即在Mozilla的“查看生成的源代码”菜单中 但是,在使用Zombie进行测试时,无论我等待页面加载多长时间,我都看不到生成的代码(我只在CKEditor添加的DOM元素中有a标记) 其中Javascript zombie.js:如何查看完整(即生成的)html,javascript,ckeditor,zombie.js,Javascript,Ckeditor,Zombie.js,我正在使用CKEditor,我想做一些功能测试。问题是,CKEditor以某种方式将自己附加到一个TEXTAREA标记上,并通过javascript将元素添加到我可以看到的DOM中,即在Mozilla的“查看生成的源代码”菜单中 但是,在使用Zombie进行测试时,无论我等待页面加载多长时间,我都看不到生成的代码(我只在CKEditor添加的DOM元素中有a标记) 其中browser=newzombie({debug:true,runScripts:true}) 虽然页面已加载,但它似乎只包含“
browser=newzombie({debug:true,runScripts:true})代码>
虽然页面已加载,但它似乎只包含“硬编码”的静态代码,而不包含由CKEditor通过javascript添加的代码
因此,问题是:是否有可能加载文档,使Zombie看到动态加载的元素?尝试browser.html()
。见第节
我只是有同样的问题,并找到了解决办法。。。如果有人停在这里:)
实际上,browser.html()
不会刷新html
必须使用xpath并获取outerHTML。尝试使用xpath获取节点,如下所示browser.xpath('/html')
。然后您可以获得它的outerHTML
我使用Mink(PHP),所以我没有确切的javascript代码,但我给你一个想法
browser.wait(function(arg){
return arg.document.querySelector('a');
}(browser),
function(arg){
console.log(arg.document.innerHTML);
}(browser));
console.log(browser.html());