无法在无头铬合金中运行量角器黄瓜测试

时间:2018-01-29 16:20:52

标签: google-chrome protractor cucumber selenium-chromedriver google-chrome-headless

我正在使用量角器 - 黄瓜框架进行UI测试。这在chrome中运行良好,但是当在无头chrome中运行时,我的测试失败并显示错误消息。

是否可以在无头铬合金中运行量角器黄瓜?如果是这样,我如何停止以下错误消息并让我的测试成功运行。我不明白为什么当铬不是无头时,它运行良好。

我正在使用的版本: 量角器:5.2.2 硒:3.8.1 Web驱动程序:12.0.6 ChromeDriver:2.35 Chrome浏览器:62.0

我已将我的conf.js文件包含在

下面 在无头镀铬中运行时出现

错误消息:

  

场景:::导航到BMK页面并选择上个月的日期       [15:47:41] E /量角器 - 在页面http://localhost/上找不到Angular:retri es寻找超出角度       [15:47:41] E / launcher - 在页面上找不到Angular http://localhost/.I如果这不是Angular应用程序,您可能需要关闭等待Angul ar。                                 请参阅                                 https://github.com/angular/protractor/blob/master/docs /timeouts.md#waiting-for-angular-on-page-load       [15:47:41] E / launcher - 错误:在http://ah-测试/页面上找不到Angular。如果这不是Angular应用程序,您可能需要关闭Angular等待。       [15:47:41] E / launcher - 进程已退出,错误代码为199

Conf.js

//protractor.conf.js
exports.config = {
    //seleniumAddress: 'http://127.0.0.1:4444/wd/hub',
    seleniumAddress: 'http://localhost:4444/wd/hub',
    getPageTimeout: 80000,
    allScriptsTimeout:  5000000,
    framework: 'custom',
    // path relative to the current config file
    frameworkPath: './index.js',
    //frameworkPath: require.resolve('protractor-cucumber-framework'),
    capabilities: {
        'browserName': 'chrome',
        'chromeOptions': {
            useAutomationExtension: false,
            args: [ "--headless","--disable-gpu","--window-size=800x600"],

        }

    },
    //directConnect: true,

useAllAngular2AppRoots: true,
// Spec patterns are relative to this directory.
specs: ['Features/*.feature'],

baseURL: 'http://ah-test/',

 //  onPrepare: function () {
   // browser.manage().window().maximize();
//},

cucumberOpts: {
    format: ['json:reports/reports.json', 'pretty'],
    require: 'Features/step_definitions/*.js',
    //require: 'Features/step_definitions/hooks/hooks.js',
    tags: false,
   // format: 'pretty',
    profile: false,
    'no-source': true,
},

1 个答案:

答案 0 :(得分:1)

这行需要在onPrepare方法中的配置文件中或在browser.get之前的行中,用于测试文件或步骤定义文件中。 browser.ignoreSynchronization = true;

 onPrepare: () => {
    browser.ignoreSynchronization = true;
    //browser.manage().window().setSize(1640,920);
    browser.manage().window().maximize();
    Reporter.createDirectory(jsonReports);
}

如果在无头模式下运行时会出现空白屏幕,则需要在功能中添加行,此行用于无头参数:[“ --headless”,“-disable-gpu”,“- window-size = 800x600“],此行用于启用ssl或https的网站-acceptInsecureCerts:true,

 capabilities: {
    browserName: "chrome",
    acceptInsecureCerts : true,
    'chromeOptions': {
        useAutomationExtension: false,
        args: [ "--headless","--disable-gpu","--window-size=800x600"]
    }
},

您可以问我任何与量角器有关的问题。 谢谢