/*
* HTML parsing and access.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/
*/
// === Main ===
// ------------
/**
* Parse an HTML string.
* @param html - HTML source.
* @returns Document node object.
*/
export function parseHTML(html: string): Selection;
// === Selection ===
// -----------------
/**
* Represents a set of nodes in a DOM tree.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/
*/
export abstract class Selection {
protected __brand: never;
/**
* Get the value of an attribute for the first element in the Selection.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-attr/
* @param name - Name of attribute to get.
* @returns Attribute value.
*/
attr(name: string): string | undefined;
/**
* Get the children of each element in the set of matched elements,
* optionally filtered by a selector.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-children/
* @param selector - Selector expression.
* @returns Selected children.
*/
children(selector?: string): Selection;
/**
* For each element in the set, get the first element that matches the
* selector by testing the element itself and traversing up through its
* ancestors in the DOM tree.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-closest/
* @param selector - Selector expression.
* @returns Selected nodes.
*/
closest(selector: string): Selection;
/**
* Get the children of each element in the set of matched elements,
* including text and comment nodes.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-contents/
* @returns Selected nodes.
*/
contents(): Selection;
/**
* Return the value at the named data store for the first element in the
* set of matched elements.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-data/
* @param key - A string naming the piece of data to set.\
* @returns The value at the named data store.
*/
data(key?: string): string | undefined;
/**
* Iterate over a Selection (k6/html), executing a function for each
* matched element.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-each/
* @param handler - Logic to execute for each element.
*/
each(handler: Handler): void;
/**
* Reduce the set of matched elements to the one at the specified index.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-eq/
* @param index - An integer indicating the 0-based position of the element.
* @returns Unary set of selected element.
*/
eq(index: number): Selection;
/**
* Reduce the set of matched elements to those that match the selector
* or pass the function's test.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-filter/
* @param selector - Selector expression.
* @returns Selected elements.
*/
filter(selector: string): Selection; // tslint:disable:unified-signatures
/**
* Reduce the set of matched elements to those that match the selector
* or pass the function's test.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-filter/
* @param selector - A function used as a test for each element in the set.
* @returns Selected elements.
*/
filter(selector: Tester): Selection;
/**
* Reduce the set of matched elements to those that match the selector
* or pass the function's test.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-filter/
* @param selector - A selection to match elements against.
* @returns Selected elements.
*/
filter(selector: Selection): Selection;
/**
* Find the selection descendants, filtered by a selector.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-find/
* @param selector - Selector expression.
* @returns Selected elements.
*/
find(selector: string): Selection;
/**
* Reduce the set of matched elements to the first.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-first/
* @returns Unary set of first element.
*/
first(): Selection;
/**
* Retrieve the element matched by the selector.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-get/
* @param index - A zero-based integer indicating which element to retrieve.
* @returns Selected element.
*/
get(index: number): Element;
/**
* Reduce the set of matched elements to those that have a descendant that
* matches the selector.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-has/
* @param selector - Selector expression.
* @returns Selected elements.
*/
has(selector: string): Selection;
/**
* Get the HTML contents of the first element.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-html/
* @returns The HTML content of the first element.
*/
html(): string | undefined;
/**
* Check the current matched set of elements against a selector or element
* and return true if at least one of these elements matches the given
* arguments.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-is/
* @param selector - Selector expression.
* @returns Whether selector matched at least one element.
*/
is(selector: string): boolean;
/**
* Check the current matched set of elements against a selector or element
* and return true if at least one of these elements matches the given
* arguments.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-is/
* @param selector - A function used as a test for each element in the set.
* @returns Whether selector matched at least one element.
*/
is(selector: Tester): boolean;
/**
* Check the current matched set of elements against a selector or element
* and return true if at least one of these elements matches the given
* arguments.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-is/
* @param selector - A selection to match against.
* @returns Whether selector matched at least one element.
*/
is(selector: Selection): boolean;
/**
* Reduce the set of matched elements to the final one.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-last/
* @returns Unary set of last element.
*/
last(): Selection;
/**
* Pass each element in the current matched set through a function,
* producing a new Array containing the return values.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-map/
* @param mapper - Procedure to execute on each element.
* @returns Mapper return values.
*/
map(mapper: Mapper): unknown[];
/**
* Get the immediately following sibling of each element.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-next/
* @param selector - Selector expression.
* @returns Selected elements.
*/
next(selector?: string): Selection;
/**
* Get all following siblings of each element,
* optionally filtered by a selector.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-nextall/
* @param selector - Selector expression.
* @returns Selected elements.
*/
nextAll(selector?: string): Selection;
/**
* Get all following siblings of each element up to but not including the
* element matched by the selector.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-nextuntil/
* @param selector - Selector expression.
* @returns Selected elements.
*/
nextUntil(selector?: string): Selection;
/**
* Remove elements.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/
* @param selector - Selector expression.
* @returns Selection with matched elements removed.
*/
not(selector: string): Selection;
/**
* Remove elements.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/
* @param selector - A function used as a test for each element in the set.
* @returns Selection with matched elements removed.
*/
not(selector: Tester): Selection;
/**
* Get the parent of each element, optionally filtered by a selector.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-parent/
* @param selector - Selector expression.
* @returns Selected elements.
*/
parent(selector?: string): Selection;
/**
* Get the ancestors of each element, optionally filtered by a selector.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-parents/
* @param selector - Selector expression.
* @returns Selected elements.
*/
parents(selector?: string): Selection;
/**
* Get the ancestors of each element,
* up to but not including the element matched by the selector.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-parentsuntil/
* @param selector - Selector expression.
* @returns Selected elements.
*/
parentsUntil(selector?: string): Selection;
/**
* Get the immediately preceding sibling of each element.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-prev/
* @param selector - Selector expression.
* @returns Selected elements.
*/
prev(selector?: string): Selection;
/**
* Get all preceding siblings of each element,
* optionally filtered by a selector.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-prevall/
* @param selector - Selector expression.
* @returns Selected elements.
*/
prevAll(selector?: string): Selection;
/**
* Get all preceding siblings of each element
* up to but not including the element matched by the selector.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-prevuntil/
* @param selector - Selector expression.
* @returns Selected elements.
*/
prevUntil(selector?: string): Selection;
/**
* Encode a set of form elements as a string
* in standard URL-encoded notation for submission.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-serialize/
* @returns URL-encoded representation of the form or form elements.
*/
serialize(): string;
/**
* Encode a set of form elements as an array of name-value objects.
* `[{ name: "name", value: "value" }, ... ]`
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-serializearray/
* @returns Array of name value objects of the form or form elements.
*/
serializeArray(): FormValue[];
/**
* Encode a set of form elements as an object.
* `{ inputName: "value", checkboxName: "value", ... }`
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-serializeobject/
* @returns Object representation of the form or form elements,
* key is field name and value is field value.
*/
serializeObject(): { [name: string]: string };
/**
* Return the number of elements in the selection.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-size/
* @returns The number of elements in the selection.
*/
size(): number;
/**
* Reduce the set of elements to a subset specified by a range of indices.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-slice/
* @param start - An integer indicating the 0-based position at which the
* elements begin to be selected.
* @param end - An integer indicating the 0-based position at which the
* elements stop being selected.
* @returns Selected elements.
*/
slice(start: number, end?: number): Selection;
/**
* Get the text content of the selection.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-text/
* @returns Text content.
*/
text(): string;
/**
* Retrieve all the elements contained in the selection as an array.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-toarray/
* @returns A unary selection of each element.
*/
toArray(): Selection[];
/**
* Get the current value of the first element.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/selection/selection-val/
* @returns The value of the first element.
*/
val(): string | undefined;
}
/**
* Form field value.
*/
export interface FormValue {
/** Field name. */
name: string;
/** Field value. */
value: string;
}
/**
* Test procedure.
*/
export interface Tester {
/**
* @param index - Current index.
* @param element - Current element.
* @returns Whether element passes test.
*/
(index: number, element: Element): boolean;
}
/**
* Handle procedure.
*/
export interface Handler {
/**
* @param index - Current index.
* @param element - Current element.
*/
(index: number, element: Element): void;
}
/**
* Map procedure.
*/
export interface Mapper {
/**
* @param index - Current index.
* @param selection - Current selection.
* @returns Value selection maps to.
*/
(index: number, selection: Selection): unknown;
}
// === Attribute ===
// -----------------
/**
* HTML attribute.
*/
export abstract class Attribute {
protected __brand: never;
/** Name. */
name: string;
/** Owning element. */
ownerElement: Element;
/** Value. */
value: string;
/** Local part of qualified name. */
localName(): string;
/** Namespace URI. */
namespaceURI(): string;
/** Namespace prefix. */
prefix(): string;
}
// === Node type ===
// -----------------
/**
* Node type.
*/
export enum NodeType {
ElementNode = 1,
TextNode = 3,
CommentNode = 8,
DocumentNode = 9,
DoctypeNode = 10,
}
// === Element ===
// ---------------
/**
* HTML node.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/element/
*/
export abstract class Element {
protected __brand: never;
/** Dictionary of element attributes. */
attributes(): { [name: string]: Attribute };
/** Count of child elements. */
childElementCount(): number;
/** Child nodes. */
childNodes(): Element[];
/** Child elements. */
children(): Element[];
/** Class names. */
classList(): string[];
/**
* Class value.
* @returns Single string with all class names.
*/
className(): string | undefined;
/**
* Check whether contains element.
* @param element - Possibly contained element.
* @returns Whether contains element. Self containment returns `true`.
*/
contains(element: Element): boolean;
/** First child node. */
firstChild(): Element | undefined;
/** First child element. */
firstElementChild(): Element | undefined;
/**
* Get attribute value.
* @param name - Attribute name.
* @returns Attribute value.
*/
getAttribute(name: string): string | undefined;
/**
* Get attribute node.
* @param name - Attribute name.
* @returns Attribute node.
*/
getAttributeNode(name: string): Attribute | undefined;
/**
* Get descendant elements in class.
* @param name - Class name.
* @return Descendant elements in class.
*/
getElementsByClassName(name: string): Element[];
/**
* Get descendant elements with tag name.
* @param name - Tag name.
* @return Descendant elements with tag name.
*/
getElementsByTagName(name: string): Element[];
/**
* Check whether has attribute.
* @param name - Attribute name.
* @returns Whether has attribute.
*/
hasAttribute(name: string): boolean;
/** Whether has any attributes. */
hasAttributes(): boolean;
/** Whether has any child nodes. */
hasChildNodes(): boolean;
/** Identifier value. */
id(): string;
/** Inner HTML. Markup of content. */
innerHTML(): string | undefined;
/** Whether has the default namespace. */
isDefaultNamespace(): boolean;
/**
* Check whether node is equal.
* @param node - Node to check.
* @returns Whether node has equal HTML representation.
*/
isEqualNode(node: Element): boolean;
/**
* Check whether node is identical.
* @param node - Node to check.
* @returns Whether node is self.
*/
isSameNode(node: Element): boolean;
/** Value of `lang` attribute. */
lang(): string | undefined;
/** Last child node. */
lastChild(): Element | undefined;
/** Last child element. */
lastElementChild(): Element | undefined;
/**
* Check whether matches selector.
* @param selector - Selector expression.
* @returns Whether matches selector.
*/
matches(selector: string): boolean;
/** Namespace URI. */
namespaceURI(): string;
/** Next sibling element. */
nextElementSibling(): Element | undefined;
/** Next sibling node. */
nextSibling(): Element | undefined;
/** Node name. */
nodeName(): string;
/** Node type. */
nodeType(): NodeType | undefined;
/** Node value. */
nodeValue(): string | undefined;
/** Owning document node. */
ownerDocument(): Element | undefined;
/** Parent element. */
parentElement(): Element | undefined;
/** Parent node. */
parentNode(): Element | undefined;
/** Previous sibling element. */
previousElementSibling(): Element | undefined;
/** Previous sibling node. */
previousSibling(): Element | undefined;
/**
* Select a single descendant element.
* @param selector - Selector expression.
* @returns First matched element.
*/
querySelector(selector: string): Element | undefined;
/**
* Select descendant elements.
* @param selector - Selector expression.
* @returns All matched elements.
*/
querySelectorAll(selector: string): Element[];
/** Text content. */
textContent(): string;
/** String representation, eg `[object html.Node]`. */
toString(): string;
}
/**
* HTML element.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/element/
*/
export abstract class AnchorElement extends HrefElement {
protected __brand: never;
}
/**
* HTML element.
* https://grafana.com/docs/k6/latest/javascript-api/k6-html/element/
*/
export abstract class AreaElement extends HrefElement {
protected __brand: never;
}
/**
* HTML