量角器测试在Firefox中失败,并显示“不允许使用HTTP方法”

时间:2019-09-24 23:41:02

标签: angular protractor

如何解决“不允许使用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);
    }
};

1 个答案:

答案 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驱动程序似乎无法向浏览器询问控制台日志。