Запуск теста транспортира в firefox очистить всплывающее окно

#javascript #angular #firefox #protractor #end-to-end

#javascript #angular #firefox #транспортир #сквозной

Вопрос:

Я запускаю сквозной тест транспортира для своего приложения angular. Я не могу очистить всплывающее окно с помощью ввода или экранирования.

 await element(by.xpath("//*")).sendKeys(protractor.Key.ENTER); 
or 
await element(by.xpath("//*")).sendKeys(protractor.Key.ESCAPE);
  

Я хочу запустить тест в Firefox, у меня нет никаких проблем с запуском теста в Google Chrome
Ниже я прикрепил всплывающее окно загрузки, я попытался изменить настройки в браузере так, чтобы всплывающее окно не появлялось, но ниже у меня не сработало.

Меню Сервис> Параметры> Вкладка Общие> Раздел загрузки> снимите соответствующий флажок для окна загрузки. Моя версия firefox 82.0

Ниже приведен тест

 it("should clear the pop up and proceed",async function(){
  await element(by.xpath("//*")).sendKeys(protractor.Key.ESCAPE);
  wait = browser.wait(EC.elementToBeClickable($('#mat-expansion-panel-header-0')), 5000);
  let pageTitle = await browser.getTitle();
  expect(pageTitle).toEqual('xyz');
})
  

Любые предложения или помощь о том, как очистить всплывающие окна в firefox, запускающие сквозной тест, будут отличными!
введите описание изображения здесь

Комментарии:

1. Пожалуйста, дайте мне знать, если мой вопрос неясен

2. У меня есть другие спецификации, но транспортир застрял, пытаясь очистить всплывающее окно, поэтому время ожидания спецификаций

Ответ №1:

Что нужно знать о предупреждении

Мы не можем идентифицировать предупреждения с помощью инструментов проверки.

Мы не можем писать xpaths для оповещений

Это не окно

Мы не можем обрабатывать оповещения с помощью JavaScript Executor.

Это не позволит выполнять какие-либо другие операции с веб-страницей

Класс Alerts предоставляет несколько методов для обработки предупреждений, присутствующих на веб-странице; используя эти методы, мы можем принимать, отклонять, получать сведения об оповещениях, а также устанавливать некоторые значения.

Мы должны создать объект для класса Alert.мы можем создать его как Alert al = new Alert() , но этот объект представляет собой просто адрес памяти, очевидно, что мы можем получить доступ к методам, присутствующим внутри, но этот объект не знает, где или на какой странице должна выполняться эта операция accept()
dismiss()
getText()
sendKeys()

Мы можем создавать оповещения об объектах, как показано ниже:

let abc:Alert = browser.switchTo().alert(); . Теперь вы можете принять или отклонить его.