我安装了phantomjs 1.9.7& casperjs 1.1.0现在我看到我的所有脚本都需要更新并删除第一行,因为它会产生以下致命错误:
致命:您无法在测试环境中覆盖预配置的casper实例。 文档:http://docs.casperjs.org/en/latest/testing.html#test-command-args-and-options
另外在另一个问题中阅读我明白我必须从我的脚本中删除这一行:
var casper = require('casper').create();
这是很多工作,因为我有200多个需要更新的脚本!!!
所以我的问题是如何在不更新所有脚本的情况下克服此问题(在Can't run the testing framework in CasperJS中提到)
var casper = require('casper').create();
if (casper.cli.has("ip") === false) {
casper.echo("Usage: casper.js test get_info.js --ip=<x.x.x.x>").exit();
}
casper.test.begin('get info', 1, function suite(test) {
casper.start("http://" + casper.cli.get("ip") + ":xxxx/man/", function() {
test.assertTitle("TEST GUI", "GUI has the correct title");
test.assertExists('form[name="loginForm"]', "login form is found");
this.fill('form[name="loginForm"]', {
'userId': 'xxxxx',
'password': 'yyyyy'
}, true);
});
casper.then(function() {
test.assertTextExists("Welcome", "Login into TEST GUI");
this.click('a#test_menu.menu1itemUnSel[tabindex="4"]');
});
casper.then(function() {
casper.wait(5000, function() {
this.echo('should appear after 5s');
});
});
casper.then(function() {
test.assertTextExists("TEST Data", "Login into Data");
this.click('a#test_menu_data.menu2itemUnSel[tabindex="4"]');
});
casper.then(function() {
casper.wait(5000, function() {
this.echo('should appear after 5s');
});
});
casper.then(function() {
test.assertTextExists("Logout", "Loggin out from TEST GUI");
this.click('a.minorLinkshighlight');
});
casper.run(function() {
test.done();
this.exit();
});
});
在我安装phantomjs 1.9.7&amp;之前,上面的脚本工作正常。 casperjs 1.1.0,我唯一记得的是我的服务器必须重新安装之前的版本!
先谢谢。
答案 0 :(得分:0)
是的,这是我避免更新旧的casperjs脚本的方法,因为在测试环境中覆盖了预先配置的casper实例!
转到casperjs路径并在路径模块中编辑:
/../ casperjs /模块/ casper.js
并注明以下几行:
exports.create = function create(options) {
"use strict";
// This is a bit of a hack to check if one is trying to override the preconfigured
// casper instance from within a test environment.
// if (phantom.casperTest && window.casper) {
// console.error("Fatal: you can't override the preconfigured casper instance in a test environment.");
// console.error("Docs: http://docs.casperjs.org/en/latest/testing.html#test-command-args-and-options");
// phantom.exit(1);
// }
return new Casper(options);
};
这对我有用。你应该自担风险使用它!