18

我们有一个应用程序,并且在本地测试它会显示一个无效的 SSL 证书警告。通常我会添加一个异常并继续它。但是量角器无论如何都可以忽略这一点?

我在 selenium 中看到了一些可以忽略 SSL 但在量角器中似乎找不到的功能。

4

3 回答 3

30

这对我有用,(在conf文件中):

capabilities: {
    browserName : 'firefox',
    marionette : true,
    acceptInsecureCerts : true
}

希望有帮助。

于 2017-12-13T11:50:30.140 回答
4
capabilities: {
    browserName: 'chrome',
    chromeOptions: {
        // for ci test
        args: ['--headless', 'no-sandbox', "--disable-browser-side-navigation",
            "--allow-insecure-localhost"
            /// for https sites: ignore ssl on https://localhost...
            /// further args please see https://peter.sh/experiments/chromium-command-line-switches/
        ]
    }
}

也许您想截取一些屏幕截图来测试错误发生的位置

import fs from 'fs';

function writeScreenShot(data, filename) {
    const stream = fs.createWriteStream(filename);
    stream.write(new Buffer(data, 'base64'));
    stream.end();
}

export function takeScreenshot(browser, path){
    browser.takeScreenshot().then((png) => {
        writeScreenShot(png, path);
    });
}

但从长远来看,我建议迁移到 cypress ( https://www.cypress.io/ ),因为它还有许多开箱即用的其他功能:视频、屏幕截图等。相信我,这是值得的;)

于 2018-06-06T11:24:06.033 回答
0

尝试

webdriver-manager 更新 --ignore_ssl

或者为 firefox 配置 protractor.conf.js

var makeFirefoxProfile = function(preferenceMap) {
    var profile = new FirefoxProfile();
    for (var key in preferenceMap) {
        profile.setPreference(key, preferenceMap[key]);
    }
    return q.resolve({
        browserName: 'firefox',
        marionette: true,
        firefox_profile: profile
    });
};

exports.config = {
    seleniumAddress: 'http://localhost:4444/wd/hub',
    framework: 'jasmine2',
    getMultiCapabilities: function() {
        return q.all([
            makeFirefoxProfile(
                {
                    'browser.acceptSslCerts': true
                }
            )
        ]);
    },
}
于 2017-12-12T21:53:19.230 回答