如何解决“不允许使用HTTP方法”? 我正在使用Angular 8,Firefox在Ubuntu 19.04上为v69.0。 量角器为5.4.0。茉莉花芯是3.4.0
相同的e2e测试在Chrome中有效。 我的单元测试使用Karma启动,并且可以在Firefox中正常运行。
存储库位于https://github.com/admiralfeb/ggtavern.pub
protractor-firefox-ci.conf.js
const { JUnitXmlReporter } = require('jasmine-reporters');
const { SpecReporter } = require('jasmine-spec-reporter');
/**
* @type { import("protractor").Config }
*/
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./src/**/*.e2e-spec.ts'
],
capabilities: {
browserName: 'firefox',
marionette: true,
firefoxOptions: {
args: ['--headless']
},
'moz:firefoxOptions': {
args: ['--headless']
}
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function () { }
},
onPrepare() {
require('ts-node').register({
project: require('path').join(__dirname, './tsconfig.json')
});
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
var junitreporter = new JUnitXmlReporter({
savePath: require('path').join(__dirname, '../tests/e2e'),
consolidateAll: true
});
jasmine.getEnv().addReporter(junitreporter);
}
};
答案 0 :(得分:1)
我确实有同样的问题,对我来说,它是由ng cli生成的afterEach函数导致的:
afterEach(async () => {
// Assert that there are no errors emitted from the browser
const logs = await browser.manage().logs().get(logging.Type.BROWSER);
expect(logs).not.toContain(jasmine.objectContaining({
level: logging.Level.SEVERE,
} as logging.Entry));
});
删除时,一切正常。 Firefox的Selenium驱动程序似乎无法向浏览器询问控制台日志。