транспортир зависает после запуска .sendKeys - PullRequest
0 голосов
/ 16 ноября 2018

Я новичок в использовании транспортира и пытаюсь запустить даже простой скрипт.

Признак "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);
});

1 Ответ

0 голосов
/ 16 ноября 2018

Вы можете использовать ExpectedConditions в транспортире

https://www.protractortest.org/#/api?view=ProtractorExpectedConditions

Given ('peek capture is running', {timeout: 30000},  async function ()  {

var EC = protractor.ExpectedConditions;
var input1 = element(by.id('login-email'));
var input2 = element(by.id('login-password'));
var btn = element(by.css('#theButton'));
browser.wait(EC.visibilityOf(input1), 10000);
input1.sendKeys('****');
browser.wait(EC.visibilityOf(input2), 10000);
input2.sendKeys('****');
browser.wait(EC.isClickable(btn), 10000);
btn.click();

})
...