Невозможно найти вложенные элементы после загрузки страницы - PullRequest
0 голосов
/ 27 ноября 2018

В тестовой спецификации мне нужно нажать кнопку на домашней странице и дождаться полной загрузки страницы.Кнопка была нажата только один раз, и когда я перезапускаю спецификацию, она выходит из строя из-за того, что транспортир не может достичь конца вложенных элементов на element(by.tagName('app-banner')

it('should click a button',  async () => {
    const EC = protractor.ExpectedConditions;
    page.login().then(() => {
      browser.wait(element(by.id('Body')).element(by.tagName('app-root')).isDisplayed, 5000).
      then(async () => {
        browser.wait(await element(by.tagName('app-root')).element(by.tagName('app-banner')).isDisplayed, 5000).
        then(async () => {
         await element(by.tagName('app-root')).element(by.tagName('app-banner')).
          element(by.id('topbar')).element(by.id('user-display')).click();
          });
        });
      });
  });

- HTML Hierarchy

<app-home>
   <div _ngcontent-c1 class=”layout-wrapper”>
     <app-banner>
       <div _ngcontent-c3 id=”topbar”>
          <a id=”user-display”>
             <bar-switchuser>
                <span>
                    <p-dropdown>
                    </p-dropdown>
                </span>
             </bar-switchuser>
           </a>
        </div>
    <app-banner>
</div>

1 Ответ

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

Вы определили ExpectedConditions, но не используете его.Зачем?Используйте его вместо isDisplayed:

await browser.wait(ExpectedConditions.visibilityOf(element(by.id('Body')).element(by.tagName('app-root')), 5000, "Element is not visible in 5 sec")

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