我使用CasperJS测试框架来制作一些测试套件,因为现在差不多一个月了,但我遇到了其中一个问题.
这就是我想要做的事情:我正在浏览一个网址(第1页),我必须从另一个网址(在我们的图形浏览器上模拟一个新标签)进行另一个操作,而不必退出第一个网页(第1页).第二个网址的操作将改变我的第一个网址.希望它足够清楚:)
所以现在当我到达我的第一个网址的步骤时,我通过做一个打开第二个thenOpen(),所以它正在进行一个新的导航步骤,我正在失去当前的会话,我不能再回来了.我尝试了许多方法,例如使用历史记录,重新打开页面,使用CasperJS中的事件,我也尝试使用PhantomJS但没有成功.
这是一些伪代码,使其更清晰:
casper.test.begin("A random test suite", 0, function testSuite(test) {
casper.start(url1, function () {
casper.then(function() {
// do some action on the first url
});
casper.then(function () {
// open url2 and do some action in a new tab to not lose the session of url1
});
casper.then(function () {
// check url1 (who should be still open)
});
});
casper.run(function () {
test.done();
});
});
Run Code Online (Sandbox Code Playgroud)
我真的想用CasperJS来做这件事,但我开始认为这是不可能的,我开始寻找不同的解决方案,比如这篇文章: CasperJS,并行浏览测试框架.但我以前从未使用过node.js,所以如果这是唯一的方法请给我一些例子.