Обработка оповещений в селеновом веб-драйвере для nodejs - PullRequest
0 голосов
/ 04 октября 2018

Я использую простой веб-сервер в nodejs.На стороне сервера я хочу проверить, был ли пользователь успешным в получении окна предупреждения в пользовательском интерфейсе.Может быть (подтвердить, подсказать и т. Д.).Полезная нагрузка находится в URL.Чтобы проверить это, я создаю URL и передаю его селену, чтобы проверить, создает ли он окно предупреждения.Тем не менее, все мои попытки обработать предупреждение провалились за исключением.Вот мой код

/* global */
const webdriver = require('selenium-webdriver')
const chrome    = require('selenium-webdriver/chrome')
var options   = new chrome.Options();
options.addArguments('headless');
var path = require('chromedriver').path;
let driver = new webdriver.Builder().
    withCapabilities({'browserName': 'chrome', 'alertBehavior': 'IGNORE'}).
    setChromeOptions(options).
    build();

   /* do bunch of stuff */

function checkXSS(payload) {
    console.log('checking payload')
    var url = 'http://<url>?payload=' + payload
    driver.get(url). //exception thrown here itself. 
    driver.switchTo().alert().then(function() {
      driver.switchTo().alert().accept();},
     function(){});
    }

И я получаю следующее исключение

UnexpectedAlertOpenError: unexpected alert open: {Alert text : XSS}

Я пробовал и другие способы, которые были предложены на stackoverflow.Например, используя driver.get.then (_, =>), alert.dismiss () и т. Д., Но все они по-прежнему выдают одно и то же исключение.Что мне здесь не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...