处理Selenium Webdriver中针对Node.js的警报

时间:2018-10-03 23:18:19

标签: node.js selenium automated-tests xss

我正在nodejs中运行一个简单的Web服务器。在服务器端,我要检查用户是否成功获取UI中的警报框。可以是(确认,提示等)。有效负载在URL中。为了检查这一点,我创建了一个URL并将其传递给selenium来检查它是否创建了一个警告框。但是,我所有处理警报的尝试都失败了,但有一个例外。这是我的代码

/* 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()等,但是它们仍然抛出相同的异常。我在这里想念什么?

0 个答案:

没有答案