• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Référence du navigateur scripté Synthétique (versions de moniteur 0.4.x ou inférieures)

Ce document concerne les versions 0.4.x ou inférieures du moniteur Synthétique. Voir également la documentation des versions 0.5 ou 0.6.0 du monitorer Synthétique et la version 100 et plus récente du monitorer Chrome .

Important

À compter du 26 août 2024, vous ne pouvez plus créer de nouveaux moniteurs à l'aide legacy runtimes sur des sites publics ou privés. Le 22 octobre 2024, nous mettrons fin à la vie des versions conteneurisées subordonnées privées (appels par minute) et legacy versions synthétiques du runtime.

Pour quelques exemples d'utilisation courante, voir Introduction au moniteur de navigateur scripté.

Présentation

Les navigateurs scriptés Synthétique vous donnent accès aux API Sélénium Webdriver 2.47.0 via les variables $driver et $browser. En particulier:

  • $driver fournit toutes les exportations du module selenium-webdriver (par exemple, ActionSequence, Button, By, WebElement, etc.).
  • $browser est une instance de selenium-webdriver.WebDriver() à saveur Synthétique : elle expose les principales API de base WebDriver comme get() et findElement(), ainsi que certaines API personnalisées de Synthétique.

Ce document décrit les fonctions disponibles pour Synthétique moniteur de navigateur scripté version 0.4.0 ou inférieure. Pour la documentation la plus récente du moniteur, consultez la documentation du moniteur version 0.5.0+.

Autres documents pertinents :

Fonctions de niveau supérieur : créez votre script

New Relic appelle les fonctions de niveau supérieur directement depuis votre instance $browser . Ils offrent une large gamme de fonctionnalités couvrant de nombreuses actions scriptables de base.

Fonction

Valeur de retour

$browser.actions()

Crée une nouvelle séquence d'action à l'aide de ce pilote. Pour obtenir la liste des actions disponibles, voir ActionSequence : Lier plusieurs actions.

vide

$browser.addHeader(headerKey: string, headerValue: string)

Ajoute l'en-tête headerKey avec la valeur headerValue à l'exécution.

vide

$browser.addHeaders(headers: ?)

Ajoute une carte d’en-têtes à l’exécution.

vide

$browser.deleteHeader(header: string)

Supprime un en-tête spécifique de l'exécution.

vide

$browser.deleteHeaders(header: [string])

Supprime tous les en-têtes de l'argument lors de l'exécution.

vide

$browser.addHostnameToBlacklist(hostname: string)

Interdit un nom d'hôte. Permet d'utiliser des caractères génériques.

vide

$browser.addHostnamesToBlacklist(hostnameArr: [string])

Interdit tout nom d'hôte dans un éventail d'arguments. Permet d'utiliser des caractères génériques.

vide

$browser.addHostnameToWhitelist(hostname: string)

Permet un nom d'hôte bloqué par défaut dans monitoring Synthétique.

vide

$browser.addHostnamesToWhitelist(hostnameArr: [string])

Permet tout nom d'hôte en argumentation.

vide

$browser.deleteHostnameFromBlacklist(hostname: string)

Supprime un nom d'hôte de la liste noire de cette instance de navigateur.

vide

$browser.deleteHostnamesFromBlacklist(hostnameArr: [string])

Supprime tous les noms d'hôte en argument de la liste non autorisée.

vide

$browser.deleteHostnameFromWhitelist(hostnameArr: [string])

Supprime un nom d'hôte de la liste autorisée de cette instance de navigateur.

vide

$browser.deleteHostnamesFromWhitelist(hostnameArr: [string])

Supprime tous les noms d'hôte en argument de la liste autorisée de cette instance de navigateur.

vide

$browser.executeAsyncScript(script: ?, var_args: ?)

Planifie une commande pour exécuter du JavaScript asynchrone dans le contexte du cadre ou de la fenêtre actuellement sélectionné.

promesse

$browser.executeScript(script: ?, var_args: ?)

Planifie une commande pour exécuter JavaScript dans le contexte du cadre ou de la fenêtre actuellement sélectionné.

promesse

$browser.findElement(locator: $driver.Locator)

Planifiez une commande pour rechercher un élément sur la page. S'il n'est pas trouvé, New Relic renvoie une erreur.

Élément Web

$browser.findElements(locator: $driver.Locator)

Planifiez une commande pour rechercher plusieurs éléments sur la page.

promesse

$browser.waitForAndFindElement(locator: $driver.Locator [, timeout: number)

Planifiez une commande pour attendre et rechercher un élément sur la page, et une autre commande pour attendre qu'il soit visible. S'il n'est pas trouvé, New Relic renvoie une erreur. La valeur du délai d'expiration est facultative et s'applique séparément aux deux tâches de recherche de l'élément et d'attente de sa visibilité. Cela signifie que dans le pire des cas, cette méthode peut prendre jusqu'à deux fois la valeur de délai d'expiration fournie. La valeur de délai d'expiration par défaut est de 1 000 ms (1 seconde).

promesse

$browser.get(url: string)

Charge une page Web dans un navigateur Synthétique.

promesse

$browser.getAllWindowHandles()

Planifie une commande pour récupérer la liste actuelle des poignées de fenêtre disponibles.

promesse

$browser.getCapabilities()

Une promesse qui se résoudra avec les capacités de l'instance.

promesse

$browser.getCurrentUrl()

Planifie une commande pour récupérer l'URL de la page actuelle.

promesse

$browser.getHeaders()

Renvoie une carte des en-têtes actuellement configurés.

carte

$browser.getPageSource()

Planifie une commande pour récupérer la source de la page actuelle. La source de la page renvoyée est une représentation du DOM sous-jacent ; ne vous attendez pas à ce qu'elle soit formatée ou échappée de la même manière que la réponse envoyée depuis le serveur Web.

promesse

$browser.getSession()

Une promesse pour la séance de ce client.

promesse

$browser.getTitle()

Planifie une commande pour récupérer le titre de la page actuelle.

promesse

$browser.getWindowHandle()

Planifie une commande pour récupérer le handle de fenêtre actuel.

promesse

$browser.isElementPresent(locatorOrElement: $driver.Locator)

Planifie une commande pour tester si un élément est présent sur la page. Si un élément DOM est donné, cette fonction vérifiera s'il appartient au document sur lequel le pilote se concentre actuellement. Sinon, la fonction testera si au moins un élément peut être trouvé avec les critères de recherche donnés.

promesse

$browser.manage()

L'interface d'options pour cette instance. Vous pouvez gérer les cookies, les délais d'expiration et d'autres options de fenêtre.

vide

$browser.navigate()

L'interface de navigation (historique des fonctions du navigateur) pour cette instance.

vide

$browser.schedule(command: ?, description: string)

Planifie une commande à exécuter par le CommandExecutor de ce pilote.

promesse

$browser.sleep()

Planifie une commande pour mettre le pilote en veille pendant la durée donnée.

promesse

$browser.switchTo()

L'interface cible localisateur pour cette instance.

vide

$browser.takeScreenshot()

Planifiez une commande pour effectuer une capture d'écran.

promesse

$browser.wait(fn: $driver.until.Condition, timeout: number, opt_message: string)

Planifie une commande pour attendre qu'une condition soit remplie, telle que définie par une fonction fournie par l'utilisateur.

élément web

$browser.waitForPendingRequests(timeout: number)

Force le script à attendre que requests qui ont été initiées soient renvoyées, jusqu'au délai d'expiration. Utile pour suivre les ressources non bloquantes.

promesse

Liste d'interdiction : utilisation de caractères génériques

L'interdiction du domaine pour votre instance de navigateur nécessite que des caractères génériques correspondent à la syntaxe de l'URL à bloquer.

Une liste globale .com non autorisée doit contenir ces fonctions :

Fonction

Action de blocage

$browser.addHostnameToBlacklist('*.com');

a.com

$browser.addHostnameToBlacklist('*.*.com');

a.b.com

$browser.addHostnameToBlacklist('*.*.*.com');

a.b.c.com

$browser.addHostnameToBlacklist('www.*.com');

www.a.com

$browser.addHostnameToBlacklist('www.*.*.com');

www.a.b.com

$browser.addHostnameToBlacklist('www.*.*.*.com');

www.a.b.c.com

Options : Gérer l'instance du navigateur

Ces fonctions gèrent les options de votre instance de navigateur telles que les cookies, les délais d'expiration et la taille de la fenêtre. Accédez à ces options via la fonction $browser.manage() .

Fonction

Valeur de retour

$browser.manage().addCookie(name: string, value: string, opt_path: string, opt_domain: string, opt_isSecure: boolean, opt_expiry: number)

Planifie une commande pour ajouter un cookie.

promesse

$browser.manage().deleteAllCookies()

Planifie une commande pour supprimer tous les cookies visibles sur la page actuelle.

promesse

$browser.manage().deleteCookie(name: string)

Planifie une commande pour supprimer le cookie avec le nom donné. Cette commande est un no-op s'il n'y a pas de cookie avec le nom donné visible sur la page actuelle.

promesse

$browser.manage().getCookie(name: string)

Planifie une commande pour récupérer le cookie avec le nom donné. Renvoie null s'il n'existe pas de tel cookie. Le cookie sera renvoyé sous forme d'objet JSON comme décrit par le protocole Webdriver.

promesse

$browser.manage().getCookies()

Planifie une commande pour récupérer tous les cookies visibles sur la page actuelle. New Relic Syntheticcs renvoie chaque cookie sous forme d'objet JSON comme décrit par le protocole Webdriver.

promesse

$browser.manage().timeouts().implicitlyWait(ms: number)

Spécifie la durée pendant laquelle le pilote doit attendre lors de la recherche d'un élément s'il n'est pas immédiatement présent. La définition du délai d’attente sur 0 désactive l’attente implicite.

Soyez prudent lorsque vous augmentez le délai d'attente, car cela augmentera les temps d'exécution des tests, en particulier avec des stratégies de localisation plus lentes comme XPath. La valeur par défaut est de 10 secondes.

promesse

$browser.manage().timeouts().pageLoadTimeout(ms: number)

Définit la durée d'attente pour que le chargement d'une page soit terminé avant de renvoyer une erreur. Si le délai d'attente est négatif, le chargement des pages peut durer jusqu'à 180 secondes. La valeur par défaut est de 60 secondes.

promesse

$browser.manage().timeouts().setScriptTimeout(ms: number)

Définit la durée d'attente, en millisecondes, pour qu'un script asynchrone termine son exécution avant de renvoyer une erreur. La valeur par défaut est de 30 secondes.

promesse

$browser.manage().window().getPosition()

Récupère la position actuelle de la fenêtre, par rapport au coin supérieur gauche de l'écran.

promesse

$browser.manage().window().getSize()

Récupère la taille actuelle de la fenêtre.

promesse

$browser.manage().window().maximize()

Maximise la fenêtre actuelle.

promesse

$browser.manage().window().setPosition(x: number, y: number)

Repositionne la fenêtre actuelle.

promesse

$browser.manage().window().setSize(width: number, height: number)

Redimensionne la fenêtre actuelle.

promesse

localisateur : Rechercher un élément de page

Les localisateurs sont une collection de fonctions d'usine permettant de créer une instance locator . localisateur recherche des éléments DOM , qui peuvent être passés à des fonctions telles que $browser.findElement ou $browser.isElementPresent. Appelez-les via $driver.By.

Fonction

Valeur de retour

$driver.By.className(className: string)

Localise un élément qui a un nom de classe spécifique. Le localisateur renvoyé équivaut à la recherche d'éléments avec le sélecteur CSS .class.

localisateur

$driver.By.css(cssName: string)

Localise un élément à l'aide d'un sélecteur CSS.

localisateur

$driver.By.id(id: string)

Localise un élément par son ID.

localisateur

$driver.By.linkText(linkText: string)

Localise les éléments de lien dont le texte visible correspond à la chaîne donnée.

localisateur

$driver.By.js(js: string)

Localise un élément en évaluant une expression JavaScript.

localisateur

$driver.By.name(name: string)

Localise les éléments dont l'attribut name a la valeur donnée.

localisateur

$driver.By.partialLinkText(partialLinkText: string)

Localise les éléments de lien dont getText visible contient la sous-chaîne donnée.

localisateur

$driver.By.tagName(tagName: string)

Localise les éléments avec un nom tag donné. Le localisateur renvoyé équivaut à utiliser la fonction DOM getElementsByTagName .

localisateur

$driver.By.xpath(xpath: string)

Localise les éléments correspondant à un sélecteur XPath.

localisateur

WebElement : Interagir avec l'élément de page

Lorsqu'une fonction telle que $browser.findElement ou $browser.waitForAndFindElement renvoie une référence WebElement, ces fonctions peuvent être utilisées pour interagir avec cet élément. Grâce à eux, vous pouvez cliquer sur des boutons, envoyer du texte aux entrées du formulaire et obtenir les attributs des éléments à tester.

Fonction

Valeur de retour

click()

Clique sur cet élément.

vide

sendKeys(var_args: ?)

Planifie une commande pour taper une séquence sur l'élément DOM représenté par cette instance.

Élément Web

getTagName()

Planifie une commande pour interroger le nom tag/ nœud de cet élément.

Élément Web

getCssValue(name: string)

Planifie une commande pour interroger le style calculer de l'élément représenté par cette instance. Si l'élément hérite du style nommé de son parent, le parent sera interrogé pour sa valeur. Dans la mesure du possible, les valeurs de couleur seront converties en leur représentation hexadécimale (par exemple, #00ff00 au lieu de rgb(0, 255, 0)).

promesse

getAttribute(name: string)

Planifie une commande pour interroger la valeur de l'attribut donné de l'élément.

promesse

getText(name: string)

Récupère le innerText visible (non masqué par CSS) de cet élément, y compris les sous-éléments, sans aucun espace blanc de début ou de fin.

promesse

getSize()

Planifie une commande pour calculer la taille de la boîte englobante de cet élément, en pixels.

promesse

getLocation()

Planifie une commande pour calculer l'emplacement de cet élément, dans l'espace de la page.

promesse

isEnabled()

Planifie une commande pour demander si l'élément DOM représenté par cette instance est activé, comme indiqué par l'attribut désactivé.

promesse

isSelected()

Planifie une commande pour demander si cet élément est sélectionné.

promesse

submit()

Planifie une commande pour soumettre le formulaire contenant cet élément (ou cet élément s'il s'agit d'un élément FORM ). Cette commande est nulle si l'élément n'est pas contenu dans un formulaire.

promesse

clear()

Planifie une commande pour effacer la valeur de cet élément.

promesse

isDisplayed()

Planifie une commande pour tester si cet élément est actuellement affiché.

promesse

getOuterHtml()

Planifie une commande pour récupérer le code HTML externe de cet élément.

promesse

getInnerHtml()

Planifie une commande pour récupérer le code HTML interne de cet élément.

promesse

ActionSequence : Lier plusieurs actions

Les séquences d'actions peuvent créer une interaction complexe entre l'utilisateur et votre site Web.

  • Pour créer une nouvelle séquence d’actions, utilisez $browser.actions().
  • Pour lier plusieurs actions ensemble dans une séquence, incluez perform() après chacune. Cela exécute puis termine des séquences individuelles, y compris des séquences à action unique.

Le tableau suivant contient une liste des actions disponibles. Pour plus d'informations, consultez la documentation des actions Webdriver.

Fonction

Valeur de retour

click(opt_elementOrButton: ?, opt_button: ?)

Clique sur un bouton de la souris. Si un élément est fourni, la souris sera d'abord déplacée au centre de cet élément. Ceci est équivalent à WebElement.click().

séquence d'actions

doubleClick(opt_elementOrButton: ?, opt_button: ?)

Double-clique sur un bouton de la souris. Si un élément est fourni, la souris sera d'abord déplacée au centre de cet élément.

séquence d'actions

dragAndDrop(element: ?, location: ?)

Fonction pratique permettant d'effectuer une manœuvre de type « glisser-déposer ». L'élément cible peut être déplacé vers l'emplacement d'un autre élément, ou par un décalage (en pixels). L'emplacement est un objet avec deux propriétés x et y: {x: x_offset, y: y_offset}.

séquence d'actions

keyDown(key: ?)

Effectue une pression sur une touche de modification. Doit être l’un des suivants : ALT, CONTROL, SHIFT, COMMAND ou META. La touche de modification n'est pas désactivée tant que keyUp() ou sendKeys() n'est pas appelé. La touche enfoncée sera ciblée sur l'élément actuellement focalisé.

séquence d'actions

keyUp(key: ?)

Effectue une sortie de touche de modification. La sortie vise l'élément actuellement focalisé.

séquence d'actions

mouseDown(opt_elementOrButton: ?, opt_button: ?)

Appuie sur un bouton de la souris. Le bouton de la souris ne sera pas désactivé tant que mouseUp ne sera pas appelé, que cet appel soit effectué dans cette séquence ou dans une autre. Le comportement d'un événement hors service (comme l'appel mouseDown() ou click() lorsque le bouton est déjà maintenu enfoncé) n'est pas défini.

séquence d'actions

mouseUp(opt_elementOrButton: ?, opt_button: ?)

sortir un bouton de la souris. Le comportement n'est pas défini pour l'appel de cette fonction sans un appel préalable à mouseDown().

séquence d'actions

mouseMove(location: ?, offset: ?)

Déplace la souris. L'emplacement vers lequel se déplacer peut être spécifié en termes de position actuelle de la souris, d'un décalage par rapport au coin supérieur gauche d'un élément ou d'un élément (auquel cas le milieu de l'élément est utilisé).

séquence d'actions

perform()

Exécute cette séquence d'actions.

promesse

sendKeys(args: ?)

Simule la saisie de plusieurs touches. Chaque touche de modification rencontrée dans la séquence ne sera pas désactivée jusqu'à ce qu'elle soit rencontrée à nouveau. Tous les événements clés seront ciblés sur l'élément actuellement focalisé. Pour une liste complète des clés non alphanumériques prises en charge, consultez la documentation de la clé d'énumération Webdriver.

séquence d'actions

Promesses : Lier les actions en séquences

Vous pouvez également exécuter des fonctions directement sur les promesses. Synthétique monitoring est un environnement Node.js natif et utilise les promesses standards Node.js

Ces fonctions évaluent l’état des promesses, les annulent, etc. En particulier, vous pouvez créer des séquences d'actions avec la fonction then() et ses sœurs, thenFinally() et thenCatch(). Pour plus d'informations, voir Actions de séquence.

Fonction

Valeur de retour

cancel(string: reason)

Annule le calcul de la valeur de cette promesse, rejetant ainsi la promesse dans le processus. Cette méthode est un no-op si la promesse a déjà été résolue.

vide

isPending()

La valeur de cette promesse est-elle encore en cours de calcul ?

booléen

then(opt_callback: fn(T: ?), opt_errback: fn())

Enregistre les auditeurs lorsque cette instance est résolue. Il s'agit de la fonction de base utilisée pour lier des actions synchrones dans votre script.

promesse

thenFinally(callback: fn())

Enregistre un écouteur à invoquer lorsque cette promesse est résolue, que la valeur de la promesse ait été calculée avec succès ou non.

promesse

thenCatch(callback: fn())

Enregistre un auditeur pour le cas où cette promesse est rejetée.

promesse

La fonction $browser.navigate() expose un certain nombre de fonctions qui vous permettent de vous déplacer en arrière et en avant dans l'historique de votre navigateur, d'actualiser votre page et de naviguer vers de nouvelles pages.

Fonction

Valeur de retour

Conditions : Pause et attente des conditions

Utilisé avec $browser.wait, until interrompt l'exécution de votre script jusqu'à ce que la condition soit remplie. Pour plus d'informations sur les attentes explicites et implicites, consultez la documentation Webdriver.

Pour les exemples d'utilisation .wait et .until , voir les exemples de Webdriver.wait .

Les fonctions suivantes sont disponibles pour $driver.until.Condition:

Fonction

Valeur de retour

ableToSwitchToFrame(frame: ?)

Crée une condition qui attendra que le pilote d'entrée puisse basculer vers le cadre désigné. Le cadre cible peut être spécifié comme :

  • Un index numérique dans window.frames pour la trame actuelle

  • Un webdriver.WebElement, qui doit référencer un élément FRAME ou IFRAME sur la page actuelle

  • Un localisateur qui peut être utilisé pour localiser d'abord un FRAME ou IFRAME sur la page actuelle avant de tenter d'y accéder

    Une fois cette condition résolue avec succès, le conducteur pourra se concentrer sur le nouveau cadre.

condition

alertIsPresent()

Crée une condition qui attend qu'une alerte soit ouverte. En cas de succès, la promesse renvoyée sera remplie avec le handle de l'alerte ouverte.

condition

elementIsDisabled(element: $driver.WebElement)

Crée une condition qui attendra que l'élément donné soit désactivé.

condition

elementIsEnabled(element: $driver.WebElement)

Crée une condition qui attendra que l'élément donné soit activé.

condition

elementIsNotVisible(element: $driver.WebElement)

Crée une condition qui attendra que l'élément donné soit dans le DOM, mais non visible pour l'utilisateur.

condition

elementIsVisible(element: $driver.WebElement)

Crée une condition qui attendra que l'élément donné devienne visible.

condition

elementIsSelected(element: $driver.WebElement)

Crée une condition qui attendra que l'élément donné soit sélectionné.

condition

elementLocated(element: $driver.Locator)

Crée une condition qui bouclera jusqu'à ce qu'un élément soit trouvé avec le localisateur donné.

condition

elementsLocated(element: $driver.Locator)

Crée une condition qui bouclera jusqu'à ce qu'au moins un élément soit trouvé avec le localisateur donné.

condition

elementTextContains(element: $driver.WebElement, substr: string)

Crée une condition qui attendra que le texte visible de l'élément donné contienne la sous-chaîne donnée.

condition

elementTextIs(element: $driver.WebElement, text: string)

Sensible aux majuscules et minuscules. Crée une condition qui attendra que le texte visible de l'élément donné corresponde exactement au texte donné.

condition

elementTextMatches(element: $driver.WebElement, regex: string)

Crée une condition qui attendra que le texte visible de l'élément donné corresponde à une expression régulière.

condition

stalenessOf(element: $driver.WebElement)

Crée une condition qui attendra que l'élément donné devienne obsolète. Un élément est considéré comme obsolète une fois qu'il est supprimé du DOM ou qu'une nouvelle page a été chargée.

condition

titleContains(substr: string)

Crée une condition qui attendra que le titre de la page actuelle contienne la sous-chaîne donnée.

condition

titleIs(title: string)

Crée une condition qui attendra que le titre de la page actuelle corresponde à la valeur donnée.

condition

titleMatches(regex: string)

Crée une condition qui attendra que le titre de la page actuelle corresponde aux expressions régulières données.

condition

Droits d'auteur © 2025 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.