Как включить JavaScript Транспортир Firefox без головы - PullRequest
0 голосов
/ 13 января 2020

У нас есть тест e2e с транспортиром в безголовом режиме.

Сначала мы хотим проверить аутентификацию. Поведение аналогично приведенному выше:

1 / Пользователь нажимает на ссылку в браузере 2 / сервер проверит, аутентифицирован ли этот пользователь или нет 2.1, если пользователь прошел аутентификацию, домашняя страница отобразится на 2.2, если нет, пользователь будет перенаправлен на страницу входа sso с помощью

. Проблема в том, что javascript не будет выполнен. Я пытаюсь добавить некоторые флаги, но это не имеет никакого значения.

exports.config = {
    allScriptsTimeout: 20000,

    specs: [
        './e2e/account/**/account.spec.ts',
    ],

    capabilities: {
        'browserName': 'firefox',
        'marionette': true,  
        'moz:firefoxOptions': {
          args: [ "--headless"],
          firefox_binary: '/opt/firefox/firefox',
          binary_: '/opt/firefox/firefox',
         },
        acceptInsecureCerts: true,
        javascriptEnabled: true,
   },

    directConnect: true,

    baseUrl: 'http://demop-staging-ppd.com/',
    framework: 'mocha',

    // SELENIUM_PROMISE_MANAGER: false,

    mochaOpts: {
        reporter: 'spec',
        slow: 3000,
        ui: 'bdd',
        timeout: 720000
    },

    beforeLaunch: function() {
        require('ts-node').register({
            project: 'tsconfig.e2e.json'
        });
    },

    onPrepare: function() {
        browser.driver.manage().window().setSize(1280, 1024);
        // Disable animations
        // @ts-ignore
        browser.executeScript('document.body.className += " notransition";');
        const chai = require('chai');
        const chaiAsPromised = require('chai-as-promised');
        chai.use(chaiAsPromised);
        const chaiString = require('chai-string');
        chai.use(chaiString);
        // @ts-ignore
        global.chai = chai;
    },

    useAllAngular2AppRoots: true
};

файл spe c:

  before(async () => {
    await browser.waitForAngularEnabled(false);    
  });

  it('should content display content ', async () => {
    await browser.get('/');
    browser.sleep(5000);
    const content= await browser.getPageSource();
console.log(content)

  });

Я открыт для любых предложений и могу предоставить вас с любой дополнительной информацией.

[ОБНОВЛЕНИЕ]

Я изменяю свой конфигурационный файл, как указано выше, чтобы попытаться включить javascript в моем просмотре. Это работает на локальном, но когда я пытаюсь это на docker изображение не

capabilities: {
        'browserName': 'firefox',
        'marionette': true,
        'moz:firefoxOptions': {
            args: ["--headless"],
            firefox_binary: '/opt/firefox/firefox',
            binary_: '/opt/firefox/firefox',
            "prefs": {
                "javascript.options.showInConsole": true,
                "javascript.enabled": true
            },
            "log": { "level": "trace" }
        },
        acceptInsecureCerts: true,
        acceptSslCerts: true,

      },

1 Ответ

0 голосов
/ 13 января 2020
multiCapabilities: [ { browserName: 'firefox', firefoxOptions: { args: ['--headless'] }, 'moz:firefoxOptions': { args: [ '--headless' ] } } ]

Пожалуйста, проверьте с этим

Используйте webdriver-manager для выполнения. С directConnect у вас будет ошибка отказа в разрешении.

Я также зарегистрировался linux P C. Это прекрасно работает

enter image description here

...