Продолжить цикл после получения теста оповещения из браузера в тесте транспортира жасмина
Я внедряю платформу 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 //
}
Я проверил свой код, и он работает, если все еще не работает, поищите ошибки в ВАШЕЙ части кода