Как найти и заполнить модал с помощью транспортира? - PullRequest
0 голосов
/ 18 января 2019

У меня есть сайт, созданный с помощью JHipster: http://www.jhipsterpress.com/#/post/15/view, который я пытаюсь проверить с помощью Protractor (я новичок).Итак, первое, что я хотел бы проверить, это войти на сайт.Когда вы входите, вы должны войти в модал.

  describe('JhipsterPress Demo App', function() {
it('Should login', function() {
    browser.get('http://www.jhipsterpress.com/#/post/15/view');

        element(by.id('username')).sendKeys('admin');
        element(by.id('password')).sendKeys('admin');
        var username = element(by.binding('username'));
        var password = element(by.binding('password'));
        element(by.css("button[class='btn btn-primary']")).click().then(function(){
        const EC = protractor.ExpectedConditions;
        // Waits max. 5 seconds for the input field to become clickable
        browser.wait(EC.elementToBeClickable(by.css("button[class='btn btn-primary']")), 5000);
    });
});

});

Транспортир говорит ...

  Message:
    Failed: by.id(...).click is not a function
  Stack:
    TypeError: by.id(...).click is not a function

РЕДАКТИРОВАТЬ: И после исправления ошибки в скобках:

Failures:
1) JhipsterPress Demo App Should login
  Message:
    Failed: element not interactable
      (Session info: chrome=71.0.3578.98)
      (Driver info: chromedriver=2.45.615291 (ec3682e3c9061c10f26ea9e5cdcf3c53f3f74387),platform=Windows NT 10.0.17134 x86_64)
  Stack:
    ElementNotVisibleError: element not interactable
      (Session info: chrome=71.0.3578.98)
      (Driver info: chromedriver=2.45.615291 (ec3682e3c9061c10f26ea9e5cdcf3c53f3f74387),platform=Windows NT 10.0.17134 x86_64)

Ответы [ 2 ]

0 голосов
/ 18 января 2019

Вы находитесь в данный момент, потому что Protractor пытается взаимодействовать с полями ввода появляющегося модального диалога. Для решения этой проблемы вы можете использовать Ожидаемое условие из Protractor.

С ними вы можете подождать, пока поля ввода не станут взаимодействующими:

element(by.id('login').click()).then(function(){
    const EC = protractor.ExpectedConditions;
    // Waits max. 5 seconds for the input field to become clickable
    browser.wait(EC.elementToBeClickable(element(by.id('username')), 5000);
    element(by.id('username')).sendKeys('admin');
    ...
});
0 голосов
/ 18 января 2019

Ваша ошибка в том, что ваши скобки испорчены. Вам нужно закрыть локатор перед функцией click.

Изменить element(by.id('login').click()) на element(by.id('login')).click()

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