Firefox: истекло время ожидания элемента <body>(протокол JSONWire?) - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть специфическая проблема с видимым dom на моем тесте в nightwatch с firefox (решена с помощью chrome).

  Timed out while waiting for element <body> to be present for 5000 milliseconds. - expected "visible" but got: "not found"
       at Object.Demo test Google (/usr/src/app/tests/google.js:10:17)
       at <anonymous>
       at process._tickCallback (internal/process/next_tick.js:188:7)

Все функции на элементе dom имеют одинаковый сбой!browser.click(..) и т.д ...

У меня была такая же проблема с хромом, но я решил с параметром в конфигурации:

chromeOptions: {
        w3c: false
    },

Я думаю, что у меня такая же проблема с Firefox, но неуверен в протоколе JSONWire ??

Мои версии:

nightwatch v1.2.3
chromedriver 77.0.0
geckodriver 1.17.0

Мой конф:

const args = require('minimist')(process.argv);

let grid = args['grid'] === 'true';

// firefox setting
let FIREFOX_CONFIGURATION = {
    browserName: 'firefox',
    javascriptEnabled: true,
    acceptSslCerts: true,
    loggingPrefs: {"driver": "INFO", "server": "OFF", "browser": "INFO"},
};

// chrome setting
let CHROME_CONFIGURATION = {
    browserName: 'chrome',
    chromeOptions: {
        w3c: false
    },
    javascriptEnabled: true,
    acceptSslCerts: true,
    loggingPrefs: {"driver": "INFO", "server": "OFF", "browser": "INFO"}
};

// settings
module.exports = {
    src_folders: ['tests'],
    output_folder: 'reports/output',
    globals_path: "globals_path.js",
    webdriver: {
        "start_process": grid
    },
    test_settings: {
        default: {
            "log_path": "reports/logs",
            selenium_port: 4444,
            selenium_host: "hub",
            silent: true,
            screenshots: {
                enabled: true,
                path: "reports/screenshots",
                on_failure: true,
                on_error: true
            },

        },

        "chrome" : {
            "webdriver": {
                "server_path": "./nodes_modules/.bin/chromedriver",
                "cli_args": [
                    "--verbose"
                ]
            },

            desiredCapabilities: CHROME_CONFIGURATION
        },

        "firefox" : {
            "webdriver": {
                "server_path": "./nodes_modules/.bin/geckodriver",
                "cli_args": [
                    "--verbose"
                ]
            },

            desiredCapabilities: FIREFOX_CONFIGURATION
        },

        "selenium_server" : {
            "selenium" : {
                "start_process": grid,
                "post": 4444,
                "server_path": "./node_modules/selenium-server-standalone-jar/jar/selenium-server-standalone-3.141.59.jar",
                "cli_args": {
                    "webdriver.gecko.driver": "./node_modules/.bin/geckodriver",
                    "webdriver.chrome.driver": "./node_modules/.bin/chromedriver",
                    "webdriver.ie.driver":""
                }
            },

            desiredCapabilities: CHROME_CONFIGURATION
        }
    }
};

Мой тест:

'use strict'

// taken from http://nightwatchjs.org/guide
module.exports = {

    'Demo test Google' : function (browser) {

        browser.url('https://www.google.com');
        browser.assert.title('Google');
        browser.waitForElementVisible('body', 5000);
        browser.assert.elementPresent('body');
        browser.expect.element('body').to.be.visible;
        browser.setValue('input[type=text]', 'nightwatch');
        browser.assert.value('input[type=text]', 'nightwatch');
        browser.click('input[name="btnK"]');
        browser.end();

    }

};

ДонНе используйте автономный, но селен-сетка с докером.Grid console: v.3.141.59.

Можете ли вы мне помочь?Я много раз искал в сети, я в отчаянии.

...