Я новичок в использовании транспортира и пытаюсь запустить даже простой скрипт.
Признак "field1" заполняется, а затем скрипт зависает.Удаление «await» в .sendKeys приводит к запуску скрипта, но если я затем переместлю «if (await field2.isPresent ()) {» ниже «field1» sendKeys, то снова заполняется только «field1».
Проблема, как мне кажется, связана с обещаниями, но это только предположение.Что мне нужно, так это иметь возможность иметь свои проверки .isPresent в любом месте моих сценариев.Это, очевидно, упрощенный пример, и он сделан для простоты объяснения.
угловая версия 6
protractor.conf.js
allScriptsTimeout: 30000, ... SELENIUM_PROMISE_MANAGER: false,
package.json extract
"cucumber": "^ 5.0.2", "cucumber-html-reporter": "^ 4.0.4", "jasmine": "^ 3.3.0 "," jasmine-core ":" 2.99.1 "," jasmine-spec-reporter ":" 4.2.1 "," транспортир ":" ^ 5.4.1 "," транспортир-огурец-каркас ":"^ 6.1.1 "," protractor-html-screenshot-reporter ":" 0.0.21 ",
Given ('peek capture is running', {timeout: 30000}, async function () {
await browser.get('#/login');
let field1: ElementFinder = element(by.id('login-email'));
let field2: ElementFinder = element(by.id('login-password'));
let field3: ElementFinder = element(by.css('#theButton'));
if (await field1.isPresent()) {
if (await field2.isPresent()) {
await field1.sendKeys('theuser@the.org');
await field2.sendKeys('the password');
await field3.click();
await browser.sleep(1500);
}
}
return(null);
});