我目前正在尝试为CI(Hudson)构建一个小测试套件。我编写了一个复杂的脚本,动态调用其他脚本并填充给定的DIV元素。
我的Selenium测试适用于琐碎的示例(加载www.google.com,搜索q-Element等)
但是当我尝试在我的PhantomJS实例中运行与Firefox驱动程序一起运行的复杂测试时,它会崩溃。发生了段错误。
我的问题是,如何为我的前端JS编写测试,该测试适用于运行(无头)的Hudson-Server。
或者有没有办法调试导致segfault的原因?
答案 0 :(得分:15)
Slimer.js类似于Phantom.js,但使用的是Gecko而不是Webkit。
答案 1 :(得分:14)
当使用Xvfb作为虚拟帧缓冲区(在托管网格节点的Linux机器上)时,可以进行无头安装。结束使用此和默认的Firefox。
答案 2 :(得分:9)
Phantom是一款不断发展的产品,只是最近才获得了与Selenium集成的能力,所以你可能遇到了它的错误;你试过向Phantom开发者报告吗?
答案 3 :(得分:6)
jsdom 现在是一个不错的选择,它非常成熟。
https://github.com/tmpvar/jsdom/
用于无头测试。我不认为它会像phantomjs一样进行屏幕截图,因为它没有webkit或gekko渲染器,它是纯粹的JS。
我发现这是因为phantomjs段错误并且新版本无法构建。 slimerjs并不是真正的无头,而且它的XULRunner基于哪个FireFox刚刚掉线,它对我当前的FF不起作用。
jsdom很酷,它起初是一个XML解析器,现在有一个完整的网络后端和jQuery支持。
API与phantomjs不同。