sitespeed.io/lib/plugins/axe/axePostScript.js

30 lines
911 B
JavaScript

const axe = require('axe-core').source;
module.exports = async function (context) {
// Insert the axe source
await context.selenium.driver.executeScript(axe);
// Only configure if we have more keys thhan axe.enable
if (context.options.axe && Object.keys(context.options.axe).length > 1) {
await context.selenium.driver.executeScript(
'axe.configure(' + JSON.stringify(context.options.axe) + ');',
'CONFIGURE_AXE'
);
}
// Get the result from axe
try {
const result = await context.selenium.driver.executeAsyncScript(
'window.axe.run().then(arguments[arguments.length - 1]);',
'RUNNING_AXE'
);
// Use the extras field in Browsertime and pass on the result
context.result[context.result.length - 1].extras.axe = result;
} catch (e) {
context.log.error(
'Could not run the AXE script, no AXE information collected',
e
);
}
};