«NoSuchSessionError» при запуске Selenium с Nodejs и Mocha - PullRequest
0 голосов
/ 17 октября 2018

Я пишу тестовый пример с Selenium и Mocha на JavaScript.Версия узла v10.10.0.Версия Mocha v5.2.0.

Вот мой тестовый код:

require('chromedriver');
const assert = require('assert');
const {Builder, By, until} = require('selenium-webdriver');

var capabilities = {
    'browserName' : 'chrome',
    'chromeOptions' : {
      'args' : ["--disable-plugins"]
    }
}

describe('Checkout Formy', () => {
    let driver;

    before(async () => {
        driver = await new Builder().withCapabilities(capabilities).build();        
    });

    it('Large page scroll', async () => {
        try {
            await driver.get('http://formy-project.herokuapp.com/scroll');               

            // Find form input at the bottom of the page
            let name = await driver.findElement(By.id('name'));

            // Scroll to the name input field 
            driver.executeScript('arguments[0].scrollIntoView()', name);     
            driver.sleep(300);   
            name.sendKeys('Dale Nguyen');

            // Find date field
            let date = await driver.findElement(By.id('date'));
            date.sendKeys('01/01/2018');  

            // // assertion codes...   

            // done();
        } catch (error) {
            console.log(error);            
        }

    });

    after(() => driver.quit());
})

Я запускаюсь нормально в первый раз, затем во второй или третий раз, когда я запускаю этот тест, он показывает предупреждение.

(node:45609) UnhandledPromiseRejectionWarning: NoSuchSessionError: invalid session id
  (Driver info: chromedriver=2.42.591059 (a3d9684d10d61aa0c45f6723b327283be1ebaad8),platform=Mac OS X 10.12.6 x86_64)
    at Object.checkLegacyResponse (/Users/dnguyen/Documents/projects/unit-test/selenium-javascript/node_modules/selenium-webdriver/lib/error.js:585:15)
    at parseHttpResponse (/Users/dnguyen/Documents/projects/unit-test/selenium-javascript/node_modules/selenium-webdriver/lib/http.js:533:13)
    at Executor.execute (/Users/dnguyen/Documents/projects/unit-test/selenium-javascript/node_modules/selenium-webdriver/lib/http.js:468:26)
    at process._tickCallback (internal/process/next_tick.js:68:7)
(node:45609) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:45609) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminatethe Node.js process with a non-zero exit code.

Есть идеи, что происходит?Спасибо,

1 Ответ

0 голосов
/ 18 октября 2018

Попробуйте установить это так

var selenium = require('selenium-webdriver');
var capabilities = selenium.Capabilities.chrome();

capabilities.set('chromeOptions', {
      'args': ['--disable-plugins']
});

var driver = new selenium.Builder().forBrowser('chrome').withCapabilities(capabilities).build();
...