【发布时间】:2014-07-22 06:51:39
【问题描述】:
我使用 CasperJS 测试框架制作一些测试套件已经快一个月了,但我在其中一个中遇到了问题。
这是我想要做的:我正在浏览一个 url (page1),我必须从另一个 url 执行另一个操作(模拟我们在图形浏览器上的新标签)而不退出第一个 (page1 )。第二个 url 的操作将改变我的第一个。希望它足够清楚:)
所以现在当我到达观察我的第一个网址的步骤时,我通过执行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();
});
});
我真的很想使用 CasperJS 来做到这一点,但我开始认为这是不可能的,我开始寻找不同的解决方案,例如这篇文章: CasperJS, parallel browsing WITH the testing framework。但我以前从未使用过 node.js,所以如果这是唯一的方法,请给我一些例子。
【问题讨论】:
标签: javascript node.js casperjs