url
Der Befehl url
lädt eine URL im Browser. Wenn eine baseUrl in der Konfiguration angegeben ist,
wird diese der URL mit Hilfe der url.resolve() Methode von Node vorangestellt. Ein Aufruf von
browser.url('...')
mit derselben URL wie beim letzten Mal wird ein Neuladen der Seite auslösen. Wenn
die URL jedoch einen Hash enthält, wird der Browser keine neue Navigation auslösen und der Benutzer
muss die Seite aktualisieren, um eine neue Navigation auszulösen.
Der Befehl gibt ein WebdriverIO.Request
Objekt zurück, das Informationen über die
Anfrage- und Antwortdaten des Seitenladevorgangs enthält:
interface WebdriverIO.Request {
id?: string
url: string
timestamp: number
navigation?: string
redirectChain?: string[],
headers: Record<string, string>
cookies?: NetworkCookie[]
\/**
* Error message if request failed
*\/
error?: string
response?: {
fromCache: boolean
headers: Record<string, string>
mimeType: string
status: number
},
/**
* List of all requests that were made due to the main request.
* Note: the list may be incomplete and does not contain request that were
* made after the command has finished.
*
* The property will be undefined if the request is not a document request
* that was initiated by the browser.
*\/
children?: Request[]
}
Der Befehl unterstützt die folgenden Optionen:
wait
Der gewünschte Zustand, in dem sich die angeforderte Ressource befinden soll, bevor der Befehl abgeschlossen wird. Es unterstützt die folgenden Zustände:
none
: kein Warten nach der Seitenanfrage und dem Empfang der Antwortinteractive
: warten, bis die Seite interaktiv istcomplete
: warten, bis der DOM-Baum der Seite vollständig geladen istnetworkIdle
: warten, bis keine ausstehenden Netzwerkanfragen mehr vorhanden sind
headers
Header, die mit der Anfrage gesendet werden sollen.
Standard: {}
auth
Anmeldeinformationen für die Basisauthentifizierung.
Hinweis: Dies überschreibt den vorhandenen Authorization
-Header, wenn er in der Option headers
angegeben ist.
timeout
Wenn auf eine Zahl gesetzt, wartet der Befehl die angegebene Anzahl von Millisekunden, bis die Seite alle Antworten geladen hat, bevor er zurückkehrt.
Hinweis: Damit dies wirksam wird, muss die Option wait
auf networkIdle
gesetzt sein.
Standard: 5000
Verwendung
browser.url(url, { wait, timeout, onBeforeLoad, auth, headers })
Parameter
Name | Typ | Details |
---|---|---|
url optional | string | die URL, zu der navigiert werden soll |
options optional | UrlOptions | Navigationsoptionen |
options.wait optional | 'none', 'interactive', 'networkIdle', 'complete' | Der gewünschte Zustand, in dem sich die angeforderte Ressource befinden soll, bevor der Befehl abgeschlossen wird. Standard: 'complete' |
options.timeout optional | number | Wenn auf eine Zahl gesetzt, wartet der Befehl die angegebene Anzahl von Millisekunden, bis die Seite alle Antworten geladen hat, bevor er zurückkehrt. Standard: 5000 |
options.onBeforeLoad optional | Function | Eine Funktion, die aufgerufen wird, bevor Ihre Seite alle Ressourcen geladen hat. Dies ermöglicht es Ihnen, die Umgebung leicht zu mocken, z.B. Web-APIs zu überschreiben, die Ihre Anwendung verwendet. |
options.auth optional | {user: string, pass: string} | Anmeldedaten für die Basisauthentifizierung |
options.headers optional | Record<string, string> | Header, die mit der Anfrage gesendet werden sollen |
Beispiele
// navigate to a new URL
const request = await browser.url('https://webdriver.io');
// log url
console.log(request.url); // outputs: "https://webdriver.io"
console.log(request.response?.status); // outputs: 200
console.log(request.response?.headers); // outputs: { 'content-type': 'text/html; charset=UTF-8' }
// With a base URL of http://example.com/site, the following url parameters resolve as such:
// When providing a scheme:
// https://webdriver.io
await browser.url('https://webdriver.io');
// When not starting with a slash, the URL resolves relative to the baseUrl
// http://example.com/site/relative
await browser.url('relative');
// When starting with a slash, the URL resolves relative to the root path of the baseUrl
// http://example.com/rootRelative
await browser.url('/rootRelative');
// navigate to a URL with basic authentication
await browser.url('https://the-internet.herokuapp.com/basic_auth', {
auth: {
user
pass
}
});
await expect($('p=Congratulations! You must have the proper credentials.').toBeDisplayed();
// navigate to a URL and mock the battery API
await browser.url('https://pazguille.github.io/demo-battery-api/', {
onBeforeLoad (win) {
// mock "navigator.battery" property
// returning mock charge object
win.navigator.getBattery = () => Promise.resolve({
level: 0.5,
charging: false,
chargingTime: Infinity,
dischargingTime: 3600, // seconds
})
}
})
// now we can assert actual text - we are charged at 50%
await expect($('.battery-percentage')).toHaveText('50%')
// and has enough juice for 1 hour
await expect($('.battery-remaining')).toHaveText('01:00)
Rückgabewert
- <WebdriverIO.Request>
returns
: ein Anfrageobjekt des Seitenladevorgangs mit Informationen über die Anfrage- und Antwortdaten