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