Sendkeys не работает в транспортире из-за "ошибки отсрочки обещания веб-драйвера селена" - PullRequest
0 голосов
/ 28 марта 2019

enter image description hereenter image description here Мой сценарий состоит в том, чтобы автоматизировать три раздела на одной странице, и в каждом разделе есть переключатель, раскрывающийся список и т. Д.

После заполнения всех полей в каждом разделе мне нужно нажать кнопку «Продолжить», и загрузка занимает некоторое время. Я успешно завершил автоматизацию двух разделов, но когда я нажимаю кнопку «Продолжить» во втором разделе, чтобы перейти к третьему. Я сталкиваюсь с ошибкой ниже

 "TypeError: doneDeferred.fulfill is not a function" 

Я понял, что это может быть проблема синхронизации. Итак, я использовал

  browser.ignoreSynchronisation=true;

Также я попытался использовать

  await browser.sleep(30000).then(function() {
    console.log('Hello');
   });

потому что я подумал, что, поскольку загрузка занимает некоторое время, он не вводит значения. Но, как ни странно, он не входит внутрь функции и не печатает сообщение журнала консоли.

   and this is the code in the debugger.js file:

    validatePortAvailability_(port) {
     if (this.debuggerValidated_) {
        return selenium_webdriver_1.promise.when(false);
     }
     let doneDeferred = selenium_webdriver_1.promise.defer();
     // Resolve doneDeferred if port is available.
     let tester = net.connect({ port: port }, () => {
        doneDeferred.reject('Port ' + port + ' is already in use. Please 
       specify ' +
            'another port to debug.');
    });
    tester.once('error', (err) => {
        if (err.code === 'ECONNREFUSED') {
            tester
                .once('close', () => {
                doneDeferred.fulfill(true);
            })
                .end();
        }
        else {
            doneDeferred.reject('Unexpected failure testing for port ' + 
     port + ': ' + JSON.stringify(err));
        }
    });
    return doneDeferred.promise.then((firstTime) => {
         this.debuggerValidated_ = true;
        return firstTime;
    }, (err) => {
        console.error(err);
        return process.exit(1);
    }); 

Ожидается: я передаю значения через sendkeys, выпадаю в этом разделе и нажимаю кнопку продолжения.

Фактически: он висит на этом экране и выдает ошибку выше.

Я полагаю, что проблема связана с обещаниями веб-драйвера селена. Кто-нибудь может мне помочь с этим?

Я все еще нахожусь в обучении с огуречным каркасом транспортира.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...