Я собираюсь провести e2e-тест своего приложения, но не могу выполнить щелчок в поисковой системе. Это пример, который я хочу попробовать «щелкнуть» по первому элементу, но транспортир застрял на изображении ниже:
Веб-сайт, который я ' По мнению авторов, это: 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();
});
});
Я думаю, это что-то вроде "потери" фокуса приложения ... Не знаю ...
У вас есть есть идеи?
С уважением