Транспортир не может щелкнуть по тегу <li> - PullRequest
0 голосов
/ 29 мая 2020

Я собираюсь провести e2e-тест своего приложения, но не могу выполнить щелчок в поисковой системе. Это пример, который я хочу попробовать «щелкнуть» по первому элементу, но транспортир застрял на изображении ниже:

enter image description here

Веб-сайт, который я ' По мнению авторов, это: https://rent.decathlon.it/

В результате возникает ошибка тайм-аута, поэтому элемент не нажимается.

Это код транспортира:

import { AppPage } from './app.po';
import {browser, by, element, logging} from 'protractor';
import {SearchBoxWizard} from '../elements/searchbox_wizard';

describe('workspace-project App', () => {
  let page: AppPage;

  beforeEach(() => {
    page = new AppPage();
  });

  it('shoud open select item', async () => {
    await page.navigateTo();
    browser.sleep(500);
    const searchBoxWizardElements = new SearchBoxWizard();
    await searchBoxWizardElements.getLocationInput().click();
    await searchBoxWizardElements.getLocationInput().clear();
    await searchBoxWizardElements.getLocationInput().sendKeys('Milano');
    await browser.sleep(500);
    element(by.css(`.autocomplete-search > ul > li:nth-child(1) > span`)).click();
  });

  afterEach(async () => {
    // Assert that there are no errors emitted from the browser
    const logs = await browser.manage().logs().get(logging.Type.BROWSER);
    expect(logs).not.toContain(jasmine.objectContaining({
      level: logging.Level.SEVERE,
    } as logging.Entry));
  });
});

Кто-то знает, почему?

Я использую этот стек:

  • Angular 8
  • транспортир 5,6 или 7
  • Карма 4,1
  • Jasmin 3

С уважением

РЕДАКТИРОВАТЬ :

Я заметил очень странное поведение. Если я проверю, отображается ли тело, транспортир не может видите, это код ...

  it('shoud open select item', async () => {
    await page.navigateTo();
    const searchBoxWizardElements = new SearchBoxWizard();
    const cookiePolicy = new CookiePolicy();
    await cookiePolicy.getAcceptCta().click();
    await searchBoxWizardElements.getLocationInput().click();
    await searchBoxWizardElements.getLocationInput().clear();
    await searchBoxWizardElements.getLocationInput().sendKeys('Milano').then(
      async _ => {
        await browser.sleep(2500);
        await element(by.css('body')).isDisplayed();
      });
  });

Я думаю, это что-то вроде "потери" фокуса приложения ... Не знаю ...

У вас есть есть идеи?

С уважением

1 Ответ

0 голосов
/ 02 июня 2020
  1. это определенно google api. Я это проверил. Запросы поступают от https://maps.googleapis.com/maps/api/place/js
  2. Вы пропустили await во многих местах. Вам нужно прочитать об обещаниях и способах их выполнения: await

browser.sleep потребности await

.click() потребности await

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