#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();
. Теперь вы можете принять или отклонить его.