@axe-core/webdriverjs
Version:
Provides a method to inject and analyze web pages using axe
85 lines (81 loc) • 2.58 kB
TypeScript
import { WebDriver } from 'selenium-webdriver';
import { AxeResults, SerialFrameSelector, RunOptions, Spec } from 'axe-core';
interface BuilderOptions {
noSandbox?: boolean;
logIframeErrors?: boolean;
}
type CallbackFunction = (error: Error | null, results: AxeResults | null) => void;
declare class AxeBuilder {
private driver;
private axeSource;
private includes;
private excludes;
private option;
private config;
private builderOptions;
private legacyMode;
private errorUrl;
constructor(driver: WebDriver, axeSource?: string | null, builderOptions?: BuilderOptions);
/**
* Selector to include in analysis.
* This may be called any number of times.
*/
include(selector: SerialFrameSelector): this;
/**
* Selector to exclude in analysis.
* This may be called any number of times.
*/
exclude(selector: SerialFrameSelector): this;
/**
* Set options to be passed into axe-core
*/
options(options: RunOptions): this;
/**
* Limit analysis to only the specified rules.
* Cannot be used with `AxeBuilder#withTags`
*/
withRules(rules: string | string[]): this;
/**
* Limit analysis to only specified tags.
* Cannot be used with `AxeBuilder#withRules`
*/
withTags(tags: string | string[]): this;
/**
* Set the list of rules to skip when running an analysis.
*/
disableRules(rules: string | string[]): this;
/**
* Set configuration for `axe-core`.
* This value is passed directly to `axe.configure()`
*/
configure(config: Spec): this;
/**
* Performs an analysis and retrieves results.
*/
analyze(callback?: CallbackFunction): Promise<AxeResults>;
/**
* Use frameMessenger with <same_origin_only>
*
* This disables use of axe.runPartial() which is called in each frame, and
* axe.finishRun() which is called in a blank page. This uses axe.run() instead,
* but with the restriction that cross-origin frames will not be tested.
*/
setLegacyMode(legacyMode?: boolean): this;
/**
* Analyzes the page, returning a promise
*/
private analyzePromise;
/**
* Use axe.run() to get results from the page
*/
private runLegacy;
/**
* Get partial results from the current context and its child frames
*/
private runPartialRecursive;
/**
* Use axe.finishRun() to turn partial results into actual results
*/
private finishRun;
}
export { AxeBuilder, AxeBuilder as default };