Продолжить цикл после получения теста оповещения из браузера в тесте транспортира жасмина

Я внедряю платформу Protrator с жасминовым бегуном в моем угловом приложении. Я нажимаю на каждый элемент с ожидаемым результатом. Теперь у меня есть список компаний в моем приложении. У каждой компании есть две или три машины, это боковая панель. Я реализовал два цикла for, которые с помощью loop через компанию и машины. Теперь в одном списке машин появляется ошибка и в результате отображается предупреждение от localhost. По этой причине цикл обрывается и выходит из строя. Я хочу реализовать условие там, чтобы оно могло обнаружить условие и продолжить цикл. Но я не мог понять, как я могу это реализовать.

Мой тестовый код

    for (let company = 0; company < await companyOption.count(); company++) {
                await companyOption.get(company);

                for (let machine = 0; machine < await machineList.count(); machine++) {
                        await click.onto(machineList.get(machine));

                  if (window.alert()) {
                   //here i want to implement if browser.switchto.alert() is appear then test should be continue to next loop
                        } else {
                            await expect(machineList.get(machine).isSelected());

                   }

             .................... other code
      }

Код предупреждения в машинописи

    ngOnInit() {

    this.route.paramMap.switchMap((params: ParamMap, index) => this.machineService.load(parseInt(params.get("machineId")))).subscribe(machine => {
        this.machine = machine;
        if (this.machine.type === null)
            window.alert("No machine type assigned for " + this.machine.name + "\nAssign a type to view the details.");


    });
}

1 ответ

Попробуй это

for (let company = 0; company < await companyOption.count(); company++) {

    await companyOption.get(company);

    for (let machine = 0; machine < await machineList.count(); machine++) {

        await click.onto(machineList.get(machine));
        // solution! //
        let errorMessage; // define a variable, which is currently undefined

        try {
            // try run this code, if alert is not present it'll throw an error
            // if alert is present it skips is
            await browser.switchTo().alert().accept(); 
        } catch (e) {
            // if there was no alert and an error was thrown than assign error to variable
            // if there was alert this block will be skipped and errorMessage will stay undefined
            errorMessage = e.message;
        }

        // this block will be executed if alert was present!
        // otherwise do nothing
        if (errorMessage !== undefined) {
           // ... your code here ...
        }
        // end of solution //
}

Я проверил свой код, и он работает, если все еще не работает, поищите ошибки в ВАШЕЙ части кода

Другие вопросы по тегам