Мой сценарий состоит в том, чтобы автоматизировать три раздела на одной странице, и в каждом разделе есть переключатель, раскрывающийся список и т. Д.
После заполнения всех полей в каждом разделе мне нужно нажать кнопку «Продолжить», и загрузка занимает некоторое время.
Я успешно завершил автоматизацию двух разделов, но когда я нажимаю кнопку «Продолжить» во втором разделе, чтобы перейти к третьему. Я сталкиваюсь с ошибкой ниже
"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, выпадаю в этом разделе и нажимаю кнопку продолжения.
Фактически: он висит на этом экране и выдает ошибку выше.
Я полагаю, что проблема связана с обещаниями веб-драйвера селена. Кто-нибудь может мне помочь с этим?
Я все еще нахожусь в обучении с огуречным каркасом транспортира.