Riferimento API
È possibile visualizzare informazioni di riferimento per le API di test del browser.
azioni
Questa funzione di test del browser API crea una nuova sequenza di azioni utilizzando l' WebDriver. La sequenza non viene inviata all'esecuzione finché non si chiama la funzione ` Actions.perform ()` nel codice.
Utilizzo
$browser.actions().sendKeys("synthetic").perform();
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
Actions |
Nuova sequenza di azioni per questa istanza. |
options |
Object |
Opzioni di configurazione per la sequenza Azioni . |
Esempi
Esempio 1: per fare clic, utilizzare il seguente codice:
const element = await $browser.waitForAndFindElement(by, timeout);
$browser.actions().move({origin: element}).press().release().perform();
Esempio 2: per passare il mouse su un elemento del browser, utilizzare il seguente codice:
const element = await $browser.waitForAndFindElement(by, timeout);
$browser.actions().move({origin: element, duration: 2000}).perform();
Per essere compatibile con la vecchia funzione mouseMove , utilizzare il seguente comando:
$browser.actions().mouseMove(element).perform();
$browser.actions().mouseMove() metodo per garantire la compatibilità con una versione precedente e implementano il metodo con, $browser.actions().move() poiché il metodo è stato rimosso da Selenium nel 2021 in questa PR.Esempio 3: per inviare le chiavi, immetti il seguente codice:
await $browser.get("http://www.bing.com");
await $browser.actions().sendKeys("synthetic").perform();
addHeader
Questo test del browser API modifica l'intestazione delle richieste a HTTP.
Utilizzo
$browser.addHeader(key: string, val: string): Promise<void>;
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<void> |
Il valore restituito è una promessa. |
key |
string |
HTTP : nome dell'intestazione. |
val |
string |
Il valore dell'intestazione " HTTP ". |
Esempi
await $browser.addHeader(
"User-Agent",
"Mozilla/5.0 (iPhone; CPU OS 10_15_5 (Ergänzendes Update) like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/14E304 Safari/605.1.15"
);
await $browser.get("https://www.yahoo.com/");
await $browser.takeScreenshot();
await $browser.addHeader(
"User-Agent",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:86.0) Gecko/20100101 Firefox/86.0"
);
await $browser.get("https://www.yahoo.com/");
await $browser.takeScreenshot();
addHeaders
Questo test del browser API modifica l'intestazione delle richieste a HTTP.
Utilizzo
$browser.addHeaders(headers: { [key: string]: string }): Promise<void>;
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<void> |
Il valore restituito è una promessa. |
headers |
{ [key: string]: string } |
Intestazioni HTTP |
Esempi
await $browser.addHeaders({
key1: "val1",
key2: "val2",
});
addHostnamesToDenylist
Questo strumento di test dei browser API aggiunge i nomi host alla tua lista di esclusione.
Utilizzo
$browser.addHostnamesToDenylist(hostnameArr: string[]): Promise<void>
addHostnamesToDenylist funzione per il filtraggio di URL, ma non rimuove la addHostnamesToBlacklist funzione per garantire la compatibilità del codice con le versioni precedenti.$browser.addHostnamesToBlacklist(hostnameArr: string[]): Promise<void>
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<void> |
Il valore restituito è una promessa. |
hostnameArr |
string[] |
Nome host per la corrispondenza e il supporto dei caratteri jolly |
Esempi
await $browser.addHostnamesToDenylist(["*.css", "*.png"]);
await $browser.addHostnamesToAllowlist(["*"]);
addHostnamesToAllowlist
Questo strumento di verifica dei browser API aggiunge i nomi host alla tua lista dei siti consentiti.
Utilizzo
$browser.addHostnamesToAllowlist(hostnameArr: string[]): Promise<void>
addHostnamesToAllowlist funzione per il filtraggio di URL, ma non la addHostnamesToWhitelist rimuove per garantire la compatibilità del codice con le versioni precedenti.$browser.addHostnamesToWhitelist(hostnameArr: string[]): Promise<void>
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<void> |
Il valore restituito è una promessa. |
hostnameArr |
string[] |
Nome host per la corrispondenza e il supporto dei caratteri jolly. |
Esempi
await $browser.addHostnamesToDenylist(["*.css", "*.png"]);
await $browser.addHostnamesToAllowlist(["*"]);
addHostnameToDenylist
Questo test del browser API aggiunge un nome host alla tua lista di esclusione.
Utilizzo
$browser.addHostnameToDenylist(hostname: string): Promise<void>
addHostnameToDenylist funzione per il filtraggio di URL, ma non la addHostnameToBlacklist rimuove per garantire la compatibilità del codice con le versioni precedenti.$browser.addHostnameToBlacklist(hostname: string): Promise<void>
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<void> |
Il valore restituito è una promessa. |
hostname |
string |
Il nome host per la corrispondenza e il supporto dei caratteri jolly |
Esempi
await $browser.addHostnameToDenylist(`*.css`);
await $browser.addHostnameToAllowlist(`*`);
addHostnameToAllowlist
Questo test del browser API aggiunge un nome host alla tua lista dei siti consentiti.
Utilizzo
$browser.addHostnameToAllowlist(hostname: string): Promise<void>
addHostnameToAllowlist funzione per il filtraggio di URL, ma non rimuove la addHostnameToWhitelist funzione per garantire la compatibilità del codice con le versioni precedenti.$browser.addHostnameToWhitelist(hostname: string): Promise<void>
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<void> |
Il valore restituito è una promessa. |
hostname |
string |
Il nome host per la corrispondenza e il supporto dei caratteri jolly. |
Esempi
await $browser.addHostnameToDenylist(`*.css`);
await $browser.addHostnameToAllowlist(`*`);
clearProxy
Questo test del browser API cancella o rimuove la configurazione proxy corrente.
Utilizzo
$browser.clearProxy(): Promise<void>;
deleteHeader
Questo strumento di test dei browser API elimina le intestazioni definite dall'utente.
Utilizzo
$browser.deleteHeader(key: string): Promise<void>;
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<void> |
Una promessa che verrà risolta al completamento di questo comando. |
key |
string |
HTTP : nome dell'intestazione. |
Esempi
await $browser.addHeader('header1-xxx', 'abcd');
await $browser.addHeaders({
key1: 'val1',
key2: 'val2',
});
await $browser.deleteHeaders(['key1']);
await $browser.get(`http://localhost:${devport}/header-test`);
let userHeaders: Map<string, any> = $browser.getHeaders();
console.log("User customized headers: ", [...userHeaders]);
expect(userHeaders.size).toEqual(2);
deleteHeaders
Questo strumento di test dei browser API elimina le intestazioni definite dall'utente.
Utilizzo
$browser.deleteHeaders: (header: string[]) => Promise<void>;
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<void> |
Una promessa che verrà risolta al completamento di questo comando. |
header |
string[] |
HTTP Nomi delle intestazioni. |
Esempi
await $browser.addHeader('header1-xxx', 'abcd');
await $browser.addHeaders({
key1: 'val1',
key2: 'val2',
});
await $browser.deleteHeaders(['key1']);
await $browser.get(`http://localhost:${devport}/header-test`);
let userHeaders: Map<string, any> = $browser.getHeaders();
console.log("User customized headers: ", [...userHeaders]);
expect(userHeaders.size).toEqual(2);
deleteHostnameFromDenylist
Questo strumento di verifica del browser API elimina un nome host dalla tua lista di esclusione.
Utilizzo
$browser.deleteHostnameFromDenylist(hostname: string): Promise<void>;
deleteHostnameFromDenylist funzione per il filtraggio di URL, ma non la deleteHostnameFromBlacklist rimuove per garantire la compatibilità del codice con le versioni precedenti.$browser.deleteHostnameFromBlacklist(hostname: string): Promise<void>;
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<void> |
Il valore restituito è una promessa. |
hostname |
string |
Il nome host per la corrispondenza e il supporto dei caratteri jolly. |
deleteHostnameFromAllowlist
Questa API di test del browser elimina un nome host dall'elenco di autorizzazione.
Utilizzo
$browser.deleteHostnameFromAllowlist(hostname: string): Promise<void>;
deleteHostnameFromAllowlist funzione a API, ma non rimuove la deleteHostnameFromWhitelist funzione per garantire la compatibilità con le versioni precedenti.$browser.deleteHostnameFromWhitelist(hostname: string): Promise<void>;
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<void> |
Il valore restituito è una promessa. |
hostname |
string |
Il nome host per la corrispondenza e il supporto dei caratteri jolly. |
deleteHostnamesFromDenylist
Questo strumento di verifica dei browser API elimina i nomi host dalla tua lista di esclusione.
Utilizzo
$browser.deleteHostnamesFromDenylist(hostnameArr: string[]): Promise<void>
deleteHostnamesFromDenylist funzione per il filtraggio di URL, ma non la deleteHostnamesFromBlacklist rimuove per garantire la compatibilità del codice con le versioni precedenti.$browser.deleteHostnamesFromBlacklist(hostnameArr: string[]): Promise<void>
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<void> |
Il valore restituito è una promessa. |
hostnameArr |
string[] |
Il nome host per la corrispondenza e il supporto dei caratteri jolly. |
deleteHostnamesFromAllowlist
Questo strumento di verifica dei browser API elimina i nomi host dalla tua lista dei siti consentiti.
Utilizzo
$browser.deleteHostnamesFromAllowlist(hostnameArr: string[]): Promise<void>
deleteHostnamesFromAllowlist funzione per il filtraggio di URL, ma non la deleteHostnamesFromWhitelist rimuove per garantire la compatibilità del codice con le versioni precedenti.$browser.deleteHostnamesFromWhitelist(hostnameArr: string[]): Promise<void>
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<void> |
Il valore restituito è una promessa. |
hostnameArr |
string[] |
Il nome host per la corrispondenza e il supporto dei caratteri jolly. |
dollaro-dollaro
Il comando $$ è un collegamento per richiamare il comando findElements per richiamare più elementi sulla pagina. Il comando restituisce un array con i risultati dell'elemento. Questi risultati hanno un prototipo esteso per richiamare i comandi di azione.
È possibile concatenare $ o $$ insieme per navigare nella struttura ad albero DOM.
Per ulteriori informazioni su come selezionare elementi specifici, consultare Selettori CSS.
Utilizzo
$browser.$$(selector);
Parametri
| Nome | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<WebElement[]> |
Il valore restituito è una promessa che verrà risolta con un array WebElements. |
selector |
String, Function |
Il selettore o la funzione JavaScript per recuperare un determinato elemento. |
Esempi
Il file index.html è il seguente:
<ul id="menu">
<li><a href="/">Home</a></li>
<li><a href="/">Developer Guide</a></li>
<li><a href="/">API</a></li>
<li><a href="/">Contribute</a></li>
</ul>
Utilizzare $$ per trovare gli elementi nel modo seguente:
test("should get text a menu link", async () => {
const menu = (await $browser.$$("#menu"))[0];
const li = await menu.$$("li");
console.log(await li[2].$("a").getText()); // outputs: "API"
});
test("should get text a menu link - JS Function", async () => {
const text = (
await $browser.$$(function () {
// Arrow function is not allowed here.
return document.querySelectorAll("#menu"); // Element[]
})
)[0];
const li3Text = await (await text.$$("li"))[2].$("a").getText();
console.log(li3Text); // outputs: "API"
});
dollaro
Il comando $ è un collegamento per richiamare il comando findElement per richiamare un singolo elemento sulla pagina. Il comando restituisce un oggetto. L'oggetto ha un prototipo esteso per richiamare i comandi di azione.
È possibile concatenare $ o $$ insieme per navigare nella struttura ad albero DOM.
Per ulteriori informazioni su come selezionare elementi specifici, consultare Selettori CSS.
Utilizzo
$browser.$(selector): WebElementPromise;
Parametri
| Nome | Immettere | Descrizione |
|---|---|---|
RETURN |
WebElementPromise |
Il valore restituito è un oggetto di tipo ` WebElementPromise `. |
selector |
String, Function |
La funzione Selettore o JavaScript per recuperare più elementi. |
Esempi
Il file index.html è il seguente:
<ul id="menu">
<li><a href="/">Home</a></li>
<li><a href="/">Developer Guide</a></li>
<li><a href="/">API</a></li>
<li><a href="/">Contribute</a></li>
</ul>
Utilizzare $per trovare l'elemento nel modo seguente:
test("should get text a menu link", async () => {
const text = await $browser.$("#menu").$$("li");
console.log(await text[2].$("a").getText()); // outputs: "API"
});
test("should get text a menu link - JS Function", async () => {
const text = await $browser.$(function () {
// Arrow function is not allowed here.
return document.querySelector("#menu"); // Element
}).$$("li");
console.log(text.$$("li")[2].$("a").getText()); // outputs: "API"
});
esegui
Questo sito di test dei browser API esegue il codice fornito [Command] utilizzando command.Executor la funzione WebDriver.
Utilizzo
$browser.execute(command) => Promise<T>
Promise<T> è una promessa che verrà risolta con il risultato del comando.
Parametri
| Parametro | Immettere | Descrizione |
|---|---|---|
command |
Command |
Comando da pianificare |
executeAsyncScript
Questo strumento di test del browser API esegue un frammento di codice asincrono JavaScript nel contesto del frame o della finestra attualmente selezionati. Il frammento di script viene eseguito come corpo di una funzione anonima. Se lo script viene fornito come oggetto funzione, tale funzione viene convertita in una stringa da inserire nella finestra di destinazione.
Se si forniscono argomenti in aggiunta allo script, questi vengono inclusi come argomenti dello script e possono essere utilizzati come riferimento utilizzando l'oggetto arguments . Gli argomenti possono essere un valore booleano, un numero, una stringa o WebElement. Gli array e gli oggetti possono essere utilizzati anche come argomenti di script se ogni elemento aderisce ai tipi indicati.
A differenza dell'esecuzione sincrona di JavaScript con executeScript, gli script eseguiti con questa funzione devono segnalare esplicitamente di aver terminato l'esecuzione avviando la callback fornita. Questo callback viene sempre inserito nella funzione eseguita come ultimo argomento e quindi potrebbe essere indicato con arguments[arguments.length - 1]. Le seguenti operazioni vengono eseguite per risolvere il valore di ritorno di questa funzione rispetto al primo argomento della funzione di callback dello script:
- Per un elemento HTML, il valore si risolve in WebElement.
- I valori di ritorno null e non definiti si risolvono in null.
- Booleani, numeri e stringhe si risolvono così come sono.
- Le funzioni si risolvono nella loro rappresentazione di stringa.
- Per array e oggetti, ogni elemento membro viene convertito in base alle regole indicate.
Utilizzo
$browser.executeAsyncScript<T>(script: string|Function, ...var_args: any[]): Promise<T>;
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise.<T> |
Una promessa che verrà risolta con il valore di ritorno dello script. |
script |
string, Function |
Lo script da eseguire. |
...args |
* |
Gli argomenti da passare allo script. |
Esempi
Esempio 1: per eseguire una sospensione sincronizzata con la finestra attualmente selezionata, utilizzare i comandi come mostrato nel seguente esempio:
const start = new Date().getTime();
$browser.executeAsyncScript(
"window.setTimeout(arguments[arguments.length - 1], 500);"
).then(function () {
console.log("Elapsed time: " + (new Date().getTime() - start) + " ms");
});
Esempio 2: per sincronizzare un test con una applicazione Ajax, utilizzare i comandi come mostrato nel seguente esempio:
const button = $browser.$("#compose-button");
button.click();
$browser.executeAsyncScript(
"var callback = arguments[arguments.length - 1];" +
"mailClient.getComposeWindowWidget().onload(callback);"
);
$browser.switchTo().frame("composeWidget");
$browser.$("#to").sendKeys("dog@example.com");
Esempio 3: per inserire XMLHttpRequest e attendere il risultato, utilizza i seguenti comandi. In questo esempio, lo script di inserimento viene specificato con un letterale di funzione. Quando si utilizza questo formato, la funzione viene convertita in una stringa per l'inserimento. Pertanto, la funzione non deve fare riferimento ad alcun simbolo non definito nell'ambito della pagina sottoposta a test.
$browser.executeAsyncScript(function () {
var callback = arguments[arguments.length - 1];
var xhr = new XMLHttpRequest();
xhr.open("GET", "/resource/data.json", true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
callback(xhr.responseText);
}
};
xhr.send("");
}).then(function (str) {
console.log(JSON.parse(str)["food"]);
});
executeScript
Questo strumento di test del browser API esegue un frammento di codice tratto da JavaScript nel contesto del frame o della finestra attualmente selezionati. Il frammento di script viene eseguito come corpo di una funzione anonima. Se si fornisce lo script come oggetto funzione, tale funzione viene convertita in una stringa da inserire nella finestra di destinazione.
Se si forniscono argomenti in aggiunta allo script, questi vengono inclusi come argomenti dello script e potrebbero essere utilizzati come riferimento utilizzando l'oggetto arguments . Gli argomenti possono essere un valore booleano, un numero, una stringa o WebElement. Gli array e gli oggetti possono essere utilizzati anche come argomenti di script se ogni elemento aderisce ai tipi indicati.
Lo script potrebbe fare riferimento a tutte le variabili accessibili dalla finestra corrente. Inoltre, lo script viene eseguito nel contesto della finestra, quindi document potrebbe essere utilizzato per fare riferimento al documento corrente. Non sono disponibili variabili locali una volta terminata l'esecuzione dello script, anche se le variabili globali persistono.
Se lo script ha un valore di ritorno, vale a dire, se lo script contiene un'istruzione di ritorno, vengono eseguite le seguenti operazioni per risolvere il valore di ritorno di questa funzione:
- Per un elemento HTML, il valore si risolve in WebElement.
- I valori di ritorno null e non definiti si risolvono in null.
- Booleani, numeri e stringhe si risolvono così come sono.
- Le funzioni si risolvono nella loro rappresentazione di stringa.
- Per array e oggetti, ogni elemento membro viene convertito in base alle regole indicate.
Utilizzo
$browser.executeScript<T>(script: string|Function, ...var_args: any[]): Promise<T>;
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise.<T> |
Una promessa che verrà risolta con il valore di ritorno dello script. |
script |
string, Function |
Lo script da eseguire. |
...args |
* |
Gli argomenti da passare allo script. |
findElement
Questo strumento di test del browser API individua un elemento nella pagina. Se non è possibile trovare l'elemento, il driver restituisce error.NoSuchElementError.
Utilizzo
$browser.findElement(locator: Locator): WebElementPromise;
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
WebElementPromise | Un WebElement che può essere utilizzato per immettere comandi rispetto all'elemento individuato. Se l'elemento non viene trovato, l'elemento viene invalidato e tutti i comandi pianificati vengono arrestati. |
locator |
By , function |
Il localizzatore da utilizzare. |
Esempi
Non utilizzare questa funzione per verificare se un elemento è presente nella pagina. Devi invece usare findElements :
$browser.findElements($driver.By.id("foo"))
.then((found) => console.log("Element found? %s", !!found.length));
È possibile definire i criteri di ricerca per un elemento utilizzando uno dei factory nello spazio dei nomi webdriver.By o come oggetto webdriver.By.Hash di breve durata. Ad esempio, le seguenti due istruzioni sono equivalenti:
var e1 = $browser.findElement($driver.By.id("foo"));
var e2 = $browser.findElement({ id: "foo" });
È inoltre possibile fornire una funzione di localizzazione personalizzata, che accetta come parametro questa istanza e restituisce un oggetto `WebElement` oppure una promessa che verrà risolta con un oggetto ` WebElement `. Se la promessa restituita viene risolta con un array di WebElements,, WebDriver utilizza il primo elemento. Ad esempio, per trovare il primo collegamento visibile in una pagina, è possibile utilizzare i seguenti comandi:
var link = $browser.findElement(firstVisibleLink);
function firstVisibleLink(driver) {
var links = driver.findElements(By.tagName("a"));
return promise.filter(links, function (link) {
return link.isDisplayed();
});
}
findElements
Questo test del browser API ricerca diversi elementi nella pagina. Per informazioni sulle strategie di localizzazione degli elementi, consultare findElement .
Utilizzo
$browser.findElements(locator: Locator): Promise<WebElement[]>;
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
Promessa <WebElement[ ]> | Una promessa che verrà risolta con un array WebElements. |
locator |
By, function |
Il localizzatore da utilizzare. |
generateTOTPToken
Questo strumento di verifica del browser API genera un token con password monouso basata sul tempo (TOTP) a partire da una chiave TOTP. Puoi utilizzare questo link API per effettuare l'accesso tramite l'autenticazione a due fattori.
Utilizzo
$browser.generateTOTPToken(key: string, options?: TOTPOptions): string;
Parametri
| Parametro | Immettere | Descrizione |
|---|---|---|
RETURN |
string |
Un token TOTP (one - time password) basato sul tempo |
key |
string |
Una chiave TOTP, stringhe base32 |
options |
Object,undefined |
Facoltativo: impostazioni facoltative, ad esempio {digits: 8, algorithm:
"SHA-512", period: 60}. Le impostazioni predefinite sono {digits: 6, algorithm: "SHA-1", period: 30} |
Esempi
Esempio 1: per generare un token TOTP e accedere con l'autenticazione a due fattori nel test dello script del browser:
await $browser.waitForAndFindElement($driver.By.id("password"), 15000);
let totp_token = $browser.generateTOTPToken($secure.totpKey);
await $browser.findElement($driver.By.id("password")).then((element) => {
return element.clear().then(() => {
return element.sendKeys(totp_token);
});
});
Esempio 2: per generare un token TOTP nel test script SIDE Selenium :
{
"id": "ec51296b-4d16-4167-ac83-ba87f89cc0c7",
"comment": "Generate a TOTP token from a TOTP key",
"command": "executeScript",
"target": "return $browser.generateTOTPToken($secure.totpKey);",
"targets": [],
"value": "totpToken"
}
ottenere
Questo link per il test dei browser API rimanda a URL.
Utilizzo
$browser.get(url: string): Promise<void>;
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<void> |
Una promessa che verrà risolta al termine del caricamento del documento. |
url |
string |
L'indirizzo completo URL per accedere al sito. |
getAllWindowHandles
Questo test del browser API esegue un comando per recuperare l'elenco corrente degli handle delle finestre disponibili.
Utilizzo
$browser.getAllWindowHandles(): Promise<string[]>;
Parametri
| Parametro | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<string[]> |
Una promessa che verrà risolta con un array di handle di finestra. |
getCapabilities
Questo test del browser API rileva le funzionalità di questa istanza.
Utilizzo
$browser.getCapabilities(): Promise<Capabilities>;
Parametri
| Parametro | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<Capabilities> |
Una promessa che verrà risolta con le capacità di questa istanza. |
getCurrentUrl
Questo test del browser API esegue un comando per recuperare l' URL della pagina corrente.
Utilizzo
$browser.getCurrentUrl(): Promise<string>;
Parametri
| Parametro | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<string> |
Una promessa che verrà mantenuta con l'attuale URL. |
getHeaders
Questo sito web dedicato ai test dei browser API raccoglie le intestazioni personalizzate dagli utenti.
Utilizzo
$browser.getHeaders(): Map<string, any>;
Parametri
| Parametro | Immettere | Descrizione |
|---|---|---|
RETURN |
Map<string, any> |
Intestazioni definite dall'utente |
Esempi
await $browser.addHeader('header1-xxx', 'abcd');
await $browser.addHeaders({
key1: 'val1',
key2: 'val2',
});
await $browser.deleteHeaders(['key1']);
await $browser.get(`http://localhost:${devport}/header-test`);
let userHeaders: Map<string, any> = $browser.getHeaders();
console.log("User customized headers: ", [...userHeaders]);
expect(userHeaders.size).toEqual(2);
getPageSource
Questo strumento di test del browser API recupera il codice sorgente della pagina corrente. L'origine restituita è una rappresentazione del DOM sottostante. Non si prevede che l'origine venga formattata o che venga eseguito l'escape nello stesso modo della risposta non elaborata inviata dal server Web.
Utilizzo
$browser.getPageSource(): Promise<string>;
Parametri
| Parametro | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<string> |
Una promessa che verrà risolta con l'origine pagina corrente. |
getProxy
Questo strumento di verifica del browser API recupera la configurazione proxy corrente.
Utilizzo
$browser.getProxy(): FFProxyConfig | CProxyConfig;
Questo metodo ` API ` può essere richiamato anche tramite $network l'oggetto:
$network.getProxy(): FFProxyConfig | CProxyConfig;
Parametri
| Parametro | Immettere | Descrizione |
|---|---|---|
RETURN |
CProxyConfig oppure FFProxyConfig | Oggetto di configurazione proxy in incapsulamento specifico di Chrome o Firefox . |
Configurazione proxy
/**
* Firefox extension - An object encapsulating a complete proxy configuration
* https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/proxy/settings
*/
export interface FFProxyConfig {
proxyType?: FFProxyType,
http?: string;
ssl?: string,
ftp?: string;
autoConfigUrl?: string,
autoLogin?: boolean,
httpProxyAll?: boolean,
passthrough?: string,
proxyDNS?: boolean,
socks?: string,
socksVersion?: number,
}
/**
* Chrome extension - An object encapsulating a complete proxy configuration
* https://developer.chrome.com/docs/extensions/reference/proxy/#type-ProxyConfig
*/
export interface CProxyConfig {
mode: CProxyType,
rules?: {
bypassList?: string[],
fallbackProxy?: ProxyServer,
proxyForFtp?: ProxyServer,
proxyForHttp?: ProxyServer,
proxyForHttps?: ProxyServer,
singleProxy?: ProxyServer,
},
pacScript?: {
data?: string,
mandatory?: boolean,
url?: string,
},
};
getSession
Questo test del browser API recupera la sessione di questo utente.
Utilizzo
$browser.getSession(): Promise<Session>;
Parametri
| Parametro | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<Session> |
Una promessa per la sessione di questo cliente. |
getTitle
Questo test del browser API esegue un comando per recuperare il titolo della pagina corrente.
Utilizzo
$browser.getTitle(): Promise<string>;
Parametri
| Parametro | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<string> |
Una promessa che verrà risolta con il titolo della pagina corrente. |
getWindowHandle
Questo test del browser API esegue un comando per recuperare l'handle della finestra corrente.
Utilizzo
$browser.getWindowHandle(): Promise<string>;
Parametri
| Parametro | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<string> |
Una promessa che verrà risolta con l'handle della finestra corrente. |
gestisci
Questo test del browser API recupera l'interfaccia delle opzioni per questa istanza.
Utilizzo
$browser.manage(): Options;
Parametri
| Parametro | Immettere | Descrizione |
|---|---|---|
RETURN |
Options |
L'interfaccia delle opzioni per questa istanza. |
Opzioni
Le opzioni forniscono metodi per la gestione dello stato del driver e del browser.
| Immettere | Descrizione |
|---|---|
addCookie(spec: IWebDriverOptionsCookie):
Promise<void> |
Pianifica un comando per aggiungere cookie. |
deleteAllCookies(): Promise<void>; |
Pianifica un comando per eliminare tutti i cookie visibili alla pagina corrente. |
deleteCookie(name: string):
Promise<void>; |
Pianifica un comando per eliminare il cookie con il nome fornito. Se nessun cookie con il nome fornito è visibile alla pagina corrente, questo comando è un no - op. |
getCookies():
Promise<IWebDriverCookie[]>; |
Pianifica un comando per richiamare tutti i cookie visibili alla pagina corrente. Ogni cookie viene restituito come oggetto ` JSON `, come descritto dal protocollo di comunicazione WebDriver. |
getCookie(name: string):
Promise<IWebDriverCookie>; |
Pianifica un comando per richiamare cookie con il nome fornito. Restituisce null se non è disponibile alcun cookie di questo tipo. Il cookie viene restituito come oggetto ` JSON `, come descritto dal protocollo di comunicazione WebDriver. |
logs(): Logs; |
Fornisce l'interfaccia per la gestione dei log del driver. |
getTimeouts(): Promise<ITimeouts>; |
Richiama i timeoutcorrenti. |
setTimeouts(timeouts: ITimeouts):
Promise<void>; |
Imposta i timeoutcorrenti. |
window(): Window; |
Fornisce l'interfaccia per gestire la finestracorrente. |
IWebDriverCookie
| Parametri | Immettere | Descrizione |
|---|---|---|
name |
string |
Il nome del cookie. |
value |
string |
Il valore cookie. |
path |
string |
Il percorso cookie. Il valore predefinito è "/" quando viene aggiunto un cookie. |
domain |
string |
Il dominio a cui è visibile il cookie. Quando viene aggiunto un cookie, il valore predefinito è l' URL del documento del contesto di navigazione corrente. |
secure |
boolean |
Il parametro indica se il cookie è un cookie sicuro. Il valore predefinito è false, che significa che il cookie non è un cookie sicuro. |
httpOnly |
boolean |
Il parametro indica se il cookie è un cookie di sola lettura ( HTTP ). Il valore predefinito è false, il che significa che il cookie non è un cookie esclusivo dell' HTTP. |
expiry |
number |
La scadenza viene sempre restituita in secondi dall'epoca in cui si richiamano i cookie dal browser. |
Timeout
| Parametro | Immettere | Descrizione |
|---|---|---|
script |
number |
Specifica il tempo massimo di attesa per l'esecuzione di uno script valutato. |
pageLoad |
number |
Specifica il tempo massimo di attesa per il completamento del caricamento di una pagina. Il valore predefinito è 300000 millisecondi. |
implicit |
number |
Specifica la quantità massima di tempo di attesa per il successo di un localizzatore di elementi quando si individuano elementi sulla pagina. Il valore predefinito è 0 millisecondi. |
Finestra
export interface ILocation {
x: number;
y: number;
}
export interface ISize {
width: number;
height: number;
}
export interface IRectangle {
x: number;
y: number;
width: number;
height: number;
}
Un'interfaccia per la gestione della finestra corrente.
| Immettere | Descrizione |
|---|---|
getPosition(): Promise<ILocation>; |
Richiama la posizione corrente della finestra, relativa alla parte superiore sinistra dello schermo. |
setPosition(x: number, y: number):
Promise<void>; |
Riposiziona la finestra corrente. |
getSize(): Promise<ISize>; |
Richiama la dimensione corrente della finestra. |
setSize(width: number, height: number):
Promise<void>; |
Ridimensiona la finestra corrente. |
getRect(): Promise<IRectangle>; |
Restituisce la dimensione e la posizione della finestra di livello superiore corrente. |
setRect({x, y, width, height}:
Partial<IRectangle>): Promise<IRectangle>; |
Imposta la dimensione e la posizione della finestra di livello superiore corrente. È possibile aggiornare solo la dimensione omettendo x e y oppure solo la posizione omettendo le opzioni width e height . |
maximize(): Promise<void>; |
Ingrandisce la finestra corrente. |
Esempi
let tm = await $browser.manage().getTimeouts();
console.log('current timeout', tm.implicit, tm.pageLoad, tm.script);
await $browser.manage().timeouts().pageLoadTimeout(119);
tm = await $browser.manage().getTimeouts();
expect(tm.pageLoad).toBe(119);
console.log('current timeout', tm.implicit, tm.pageLoad, tm.script);
await $browser.manage().timeouts().pageLoadTimeout(89);
tm = await $browser.manage().getTimeouts();
expect(tm.pageLoad).toBe(89);
console.log('current timeout', tm.implicit, tm.pageLoad, tm.script);
passare a
Questo test del browser API recupera l'interfaccia di navigazione per questa istanza.
Utilizzo
$browser.navigate(): Navigation;
Parametri
| Parametro | Immettere | Descrizione |
|---|---|---|
RETURN |
Navigation |
L'interfaccia di navigazione per questa istanza. |
Navigazione
L'interfaccia di navigazione per andare avanti e indietro nella cronologia del browser.
| Immettere | Descrizione |
|---|---|
to(url: string): Promise<void>; |
Pianifica l'esecuzione di un comando per passare a un nuovo URL. |
back(): Promise<void>; |
Pianifica un comando per spostarsi indietro nella cronologia del browser. |
forward(): Promise<void>; |
Pianifica un comando per spostarsi avanti nella cronologia del browser. |
refresh(): Promise<void>; |
Pianifica un comando per aggiornare la pagina corrente. |
setAuthentication
Questo test del browser API modifica le impostazioni di autenticazione per le future richieste HTTP.
Utilizzo
$browser.setAuthentication(authName: string, authPass: string): Promise<void>;
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<void> |
Una promessa viene risolta quando vengono applicate le impostazioni. |
authName |
string |
Nome utente per l'autenticazione. |
authPass |
string |
Password utente per l'autenticazione. |
Esempi
await $browser.setAuthentication(basicauthuser, password);
await $browser.get(`http://${httpserver}/basic/page1.html`)
.then(() => $browser.takeScreenshot());
setProxy
Questo test del browser API configura un server proxy da utilizzare per tutte le richieste HTTP, HTTPS e FTP.
Utilizzo
$browser.setProxy(proxyURL: string | URL, noProxy?: string): Promise<void>;
Questo metodo ` API ` può essere richiamato anche tramite $network l'oggetto.
$network.setProxy(proxyURL: string | URL, noProxy?: string): Promise<void>
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<void> |
Una promessa viene risolta quando vengono applicate le impostazioni. |
proxyURL |
string, URL |
Una stringa « URL » per connettersi al server proxy. La stringa " URL " deve avere il formato definito nel metodo " url.parse " ( urlString ) del nodo. Ad esempio, http://proxy_host:8888 o https://user:pass@proxy_host:8888 |
noProxy |
string |
Facoltativo: un elenco separato da virgole di host che ignora tutti i proxy. |
setProxyAdvanced
Questo strumento di test del browser API imposta la configurazione del proxy utilizzando il formato supportato da Chrome o dall'estensione Firefox API per l'utilizzo del proxy.
Utilizzo
$browser.setProxyAdvanced(proxyConfig: CProxyConfig | FFProxyConfig, authName?: string, authPass?: string): Promise<void>;
Questo metodo ` API ` può essere richiamato anche tramite $network l'oggetto.
$network.setProxyAdvanced(proxyConfig: CProxyConfig | FFProxyConfig, authName?: string, authPass?: string): Promise<void>;
Parametri
| Parametro | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<void> |
Una promessa viene risolta quando vengono applicate le impostazioni. |
proxyConfig |
CProxyConfig oppure FFProxyConfig | Un oggetto di configurazione proxy in incapsulamento specifico di Chrome o Firefox . |
authName |
string |
Facoltativo: un nome utente del server proxy per l'autenticazione. |
authPass |
string |
Facoltativo: una password utente del server proxy per l'autenticazione. |
Esempi
async function testProxyAdvanced() {
await $browser.clearProxy();
var ffconfig = {
proxyType: "manual",
//proxyType: "autoConfig",
http: proxy_4,
ssl: proxy_4,
ftp: proxy_4,
autoConfigUrl: pacfile,
passthrough: noproxy,
autoLogin: true,
}
var pxyserver = {
host: httpserver,
port: 8088,
scheme: "http",
}
var cconfig = {
mode: "fixed_servers",
rules: {
bypassList: noproxy.split(','),
fallbackProxy: {
host: "my-proxy-server.us.ibm.com",
port: 8080,
},
proxyForFtp: pxyserver,
proxyForHttp: pxyserver,
proxyForHttps: pxyserver,
},
pacScript: {
url: pacfile,
},
}
var bname = null;
await $browser.getCapabilities().then(cap=> {
bname = cap.getBrowserName();
});
var config = (bname == 'chrome') ? cconfig : ffconfig;
await $browser.setProxyAdvanced(config, proxyuser, password);
await $browser.get(`http://${httpserver}/demo/page2.html`)
.then(() => $browser.takeScreenshot());
}
setProxyAuthentication
Questo test del browser API modifica le impostazioni di autenticazione del proxy per le future richieste HTTP, HTTPS e FTP.
Utilizzo
$browser.setProxyAuthentication(authName: string, authPass: string): Promise<void>;
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<void> |
Una promessa viene risolta quando vengono applicate le impostazioni. |
authName |
string |
Un nome utente del server proxy per l'autenticazione. |
authPass |
string |
Una password utente del server proxy per l'autenticazione. |
Esempi
async function testProxyAuthentication() {
await $browser.clearProxy();
await $browser.setProxy(proxy_3, noproxy);
await $browser.setProxyAuthentication(proxyuser, password);
await $browser.get(`http://${httpserver}/demo/page2.html`)
.then(() => $browser.takeScreenshot());
}
setProxyForHttp
Questo test del browser API configura un server proxy da utilizzare per tutte le richieste HTTP.
Utilizzo
$browser.setProxyForHttp(proxyURL: string | URL, noProxy?: string): Promise<void>
Questo metodo ` API ` può essere richiamato anche tramite $network l'oggetto.
$network.setProxyForHttp(proxyURL: string | URL, noProxy?: string): Promise<void>
Parametri
| Parametro | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<void> |
Una promessa viene risolta quando vengono applicate le impostazioni. |
proxyURL |
string, URL |
Una stringa « URL » per connettersi al server proxy. La stringa ` URL ` deve avere il formato definito nel metodo ` url.parse ` ( urlString ) di Node. Ad esempio, http://proxy_host:8888 o https://user:pass@proxy_host:8888 |
noProxy |
string |
Facoltativo: un elenco separato da virgole di host che devono ignorare tutti i proxy. |
Esempi
let website;
let proxyServer = "proxyHost:proxyPort";
console.log(">>>>>>>>>>>>>>>>>>>", "Clear proxy configuration");
await $network.clearProxy();
console.log(">>>>>>>>>>>>>>>>>>>", "Set proxy configuration for HTTP request");
await $network.setProxyForHttp(proxyServer);
website = await accessWebSite();
checkHostname("www.google.com.hk", website)
setProxyForHttps
Questo test del browser API configura un server proxy da utilizzare per tutte le richieste HTTPS.
Utilizzo
$browser.setProxyForHttps(proxyURL: string | URL, noProxy?: string): Promise<void>;
Questo metodo ` API ` può essere richiamato anche tramite $network l'oggetto.
$network.setProxyForHttps(proxyURL: string | URL, noProxy?: string): Promise<void>;
Parametri
| Parametro | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<void> |
Una promessa viene risolta quando vengono applicate le impostazioni |
proxyURL |
string, URL |
Una stringa « URL » per connettersi al server proxy. La stringa " URL " deve avere il formato definito nel metodo " url.parse " ( urlString ) del nodo. Ad esempio, http://proxy_host:8888 o https://user:pass@proxy_host:8888 |
noProxy |
string |
Facoltativo: un elenco separato da virgole di host che devono ignorare tutti i proxy. |
Esempi
let website;
let sslProxyServer = "username:password@proxyHost:proxyPort";
console.log(">>>>>>>>>>>>>>>>>>>", "Clear proxy configuration");
await $network.clearProxy();
console.log(">>>>>>>>>>>>>>>>>>>", "Set proxy configuration for HTTPS request");
let testURL = new URL("http://" + sslProxyServer);
await $network.setProxyForHttps(testURL);
website = await accessWebSite();
checkHostname("www.google.com", website);
setProxyPAC
Questo test del browser API configura un server proxy tramite uno script PAC (Proxy Auto-Config).
Utilizzo
$browser.setProxyPAC(pacScriptURL: string, noProxy?: string, authMap?: Map<string, any>): Promise<void>;
Parametri
| Parametro | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<void> |
Una promessa viene risolta quando vengono applicate le impostazioni. |
pacScriptURL |
string |
L' URL e dello script PAC. |
noProxy |
string |
Facoltativo: un elenco separato da virgole di host che devono ignorare tutti i proxy. |
authMap |
Map |
Facoltativo: una mappa delle credenziali di autenticazione da fornire ai server proxy, che sono immesse dal Hostname dei server proxy. I valori di questa mappa devono essere definiti nel formato {username: "authUsername", password:
"authPassword"}. |
Esempi
const httpserver = '<DemoServerIP>';
const noproxy = "localhost,google.com,192.168.1.0/24";
const pacfile = `http://${httpserver}/pacfile`;
const authmap = new Map([
[ httpserver, {username: "proxyuser", password: "passw0rd"} ],
[ "httpserver2", {username: "user1", password: "passw0rd"} ],
])
async function testProxyPAC() {
await $browser.clearProxy();
await $browser.setProxyPAC(pacfile, noproxy, authmap);
await $browser
.get(`http://${httpserver}/demo/page2.html`)
.then(() => $browser.takeScreenshot());
}
sospensione
Questo test del browser API imposta un comando che mette il driver in stato di sospensione per un determinato periodo di tempo.
Utilizzo
$browser.sleep(ms: number): Promise<void>;
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<void> |
Una promessa che si risolverà al termine del sonno. |
ms |
number |
La quantità di tempo, in millisecondi, per la sospensione. |
Esempi
await $browser.get("https://www.yahoo.com/");
await $browser.sleep(3 * 1000);
await $browser.takeScreenshot();
switchTo
Questo test del browser API dispone di un'interfaccia che consente di spostare il focus del driver su un altro frame o su un'altra finestra.
Utilizzo
$browser.switchTo(): TargetLocator;
Parametri
| Parametro | Immettere | Descrizione |
|---|---|---|
RETURN |
TargetLocator | L'interfaccia TargetLocator per questa istanza. |
TargetLocator
Un'interfaccia per modificare il focus del driver in un altro frame o finestra.
Metodi istanza
| Immettere | Descrizione |
|---|---|
activeElement(): WebElementPromise; |
Pianifica un comando per richiamare l'elemento document.activeElement sul documento corrente o document.body se activeElement non è disponibile. |
defaultContent(): Promise<void>; |
Pianifica un comando per spostare lo stato attivo di tutti i comandi futuri sul primo frame della pagina. Il frame di destinazione può essere specificato con uno dei seguenti valori: - Un numero che indica un indice (a partire da zero) all'interno di un window.frames - Un riferimento WebElement, che corrisponde a un frame elemento DOM iframe o - Il null valore per selezionare il frame più in alto nella pagina. Il passaggio null equivale a chiamare ` defaultContent `. |
frame(id: Number |WebElement| null): Promise<void>; |
Modifica lo stato attivo di tutti i comandi futuri in un altro frame della pagina. |
parentFrame(): Promise<void>; |
Modifica lo stato attivo di tutti i comandi futuri nel frame principale del frame attualmente selezionato. Questo comando non ha effetto se il programma di controllo è già focalizzato sul contesto di esplorazione di livello superiore. |
window(nameOrHandle: string):
Promise<void>; |
Pianifica un comando per spostare lo stato attivo di tutti i comandi futuri in un'altra finestra. Windows possono essere specificati tramite il loro window.name attributo o tramite il loro handle (come restituito da ` getWindowHandle `). |
newWindow(typeHint: string):
Promise<void>; |
Crea una finestra del browser e sposta il focus per i comandi successivi di questo driver sulla nuova finestra. typeHint "finestra" o "scheda". Non è garantito che la finestra creata sia del tipo richiesto. Se il driver non supporta il tipo richiesto, viene aperta una nuova finestra del browser del tipo supportato dal driver. La promessa restituita viene risolta quando il driver sposta il focus sulla nuova finestra. |
alert(): AlertPromise; |
Pianifica un comando per passare alla finestra di dialogo modale attiva, come quelle aperte da window.alert(), window.confirm()e window.prompt(). La promessa restituita viene rifiutata con un error.NoSuchAlertError se non sono disponibili avvisi aperti. |
Esempi
/**
* samples of getting current window handle
* switch to a new window
* open new page in new tab
*/
console.log("Windows handle: ", await $browser.getWindowHandle(), "Current url: ", await $browser.getCurrentUrl());
console.log("switch to calendar tab");
let originalWindow = await $browser.getWindowHandle();
await $browser.switchTo().newWindow();
/**
* navigate to www.timeanddate.com
* assert page title by getTitle() api
* assert page title by getPageSource() api
*/
console.log("Access time and date page");
await $browser.get("http://www.timeanddate.com");
let page = await $browser.getPageSource();
assert.isTrue(page.includes("<title>timeanddate.com</title>"));
console.log("Page title: ", await $browser.getTitle());
/**
* switch back to original window
* take screenshot
*/
await $browser.switchTo().window(originalWindow);
await $browser.takeScreenshot();
takeScreenshot
Questo test del browser API imposta un comando per acquisire uno screenshot. Il driver tenta di restituire uno screenshot dei seguenti elementi, in ordine di preferenza:
- Pagina intera
- Finestra corrente
- Parte visibile del frame corrente
- Intero display che contiene il browser
Utilizzo
$browser.takeScreenshot(): Promise<string>;
Parametri
| Parametro | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<string> |
Una promessa che verrà risolta con lo screenshot come PNG con codifica base-64 . |
attesa
Questo test del browser API attende che una condizione restituisca un valore "vero". La condizione può essere specificata da una condizione, come una funzione personalizzata o come qualsiasi promessa - come thenable.
Per una condizione o una funzione, l'attesa valuta ripetutamente la condizione finché non restituisce un valore vero. Se si verificano errori mentre l' API e valuta la condizione, tali errori vengono propagati. Quando una condizione restituisce una promessa, il loop di polling attende che venga risolta e utilizza il valore risolto per verificare se la condizione è soddisfatta. Il tempo di risoluzione per una promessa viene sempre preso in considerazione per verificare se un'attesa è scaduta.
Se la condizione specificata è un « WebElementCondition, », l'operazione di attesa restituisce un « WebElementPromise » che rimanda all'elemento che soddisfa la condizione.
Utilizzo
$browser.wait(
condition: WebElementCondition,
opt_timeout?: number,
opt_message?: string): WebElementPromise;
Parametri
| Parametro | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<string> |
Una promessa che verrà risolta con il primo valore vero che viene restituito dalla funzione di condizione o rifiutato se la condizione scade. Se l'oggetto di input è un'istanza di un ` WebElementCondition, `, il valore restituito è un ` WebElementPromise `. |
condition |
IThenable<(T|null)> o Condition<(T|null)> o function(WebDriver): (T|null) |
La condizione su cui attendere, definita come una promessa, un oggetto condizione o una funzione da valutare come una condizione. |
opt_timeout |
number |
La durata, in millisecondi, dell'attesa che la condizione sia true. |
opt_message |
string oppure function |
Un messaggio facoltativo da utilizzare in caso di timeout dell'attesa. |
Esempi
Esempio 1: per attendere fino a 10 secondi che un elemento sia presente nella pagina, utilizzare i comandi come mostrato nel seguente esempio:
async function example() {
let button = await $browser.wait(
$driver.until.elementLocated($driver.By.id("foo")),
10000
);
await button.click();
}
Esempio 2: per attendere un elemento e fare clic, utilizzare i comandi come mostrato nel seguente esempio:
await $browser.wait(until.elementLocated(by), timeout);
const element = await $browser.findElement(by, timeout);
await $browser.wait(until.elementIsVisible(element), timeout, `${by} not visible`);
await $browser.wait(until.elementIsEnabled(element), timeout, `${by} not enabled`);
await element.click();
waitForAndFindElement
Questo test del browser API individua un elemento nella pagina e attende che diventi visibile. Se non viene trovato, il monitoraggio sintetico restituisce un errore. Il valore di timeout è facoltativo. Viene applicato separatamente ad entrambe le attività di ricerca dell'elemento e in attesa della sua visibilità. Pertanto, nel peggiore dei casi, questo metodo può impiegare fino al doppio del valore di timeout fornito. Il valore di timeout predefinito è 1000 ms (1 secondo).
Un WebElementPromise viene restituito se viene trovato un elemento con il localizzatore fornito nei parametri e l'elemento diventa visibile o quando le condizioni indicate non sono soddisfatte all'interno del timeoutspecificato.
Utilizzo
$browser.waitForAndFindElement(locator: Locator, timeout?: number) : WebElementPromise;
La funzione è simile alla seguente:
const element = await $browser.wait(until.elementLocated(locator), timeout);
await $browser.wait(until.elementIsVisible(element), timeout);
return await $browser.findElement(locator);
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
WebElementPromise |
Un WebElement che può essere utilizzato per immettere comandi rispetto all'elemento individuato. Se l'elemento non viene trovato, l'elemento viene invalidato e tutti i comandi pianificati vengono arrestati. |
locator |
by.By | function |
Il localizzatore da utilizzare. |
timeout |
number |
Facoltativo: la quantità di tempo, in millisecondi, da attendere. |
Esempi
$browser.waitForAndFindElement($driver.By.id("username"), 10000);
waitForPendingRequests
Questa funzione è per la compatibilità con le versioni precedenti.
Utilizzo
$browser.waitForPendingRequests(timeout?: number): Promise<void>;
La funzione è simile a
let script = "return document.readyState === 'complete'";
await $browser.wait(() => {
return $browser.executeScript(script);
}, timeout);
Parametri
| Parametri | Immettere | Descrizione |
|---|---|---|
RETURN |
Promise<void> |
Una promessa che verrà risolta al termine del caricamento del documento e di tutte le risorse secondarie. |
timeout |
number |
La quantità di tempo, in millisecondi, da attendere. |