Surveillance WUX avec le serveur WUX et Selenium 3
Introduction
Le contrôle de l'expérience utilisateur consiste à enregistrer des tâches automatisées de navigation sur le web (PWR/WUX) et d'interaction avec le bureau et les applications du système Windows (PDR). Ces enregistrements peuvent aller d'un clic de souris sur un navigateur web à l'ouverture d'une application sur le bureau, en passant par la saisie d'un texte ou la réalisation d'une recherche sur le web. Cela permet de configurer des fonctions et de les enregistrer automatiquement en vue d'une exécution ultérieure à la recherche de résultats.
Différences entre supervision UX et WUX
Ces deux systèmes de surveillance servent à l’exécution de tâches automatisées de navigation web grâce au système Pandora Web Robot Daemon (PWRD).
Le système UX réalise des surveillances grâce à l’agent software installé sur une machine, tandis que la supervision WUX se base sur un serveur intégré dans Pandora FMS.
Pandora Web Robot Daemon (PWRD) est un service qui prévoit les outils nécessaires pour automatiser les sessions de navigations web. Pour cela, il utilise une archive qui contient une liste des actions nécessaires pour naviguer sur le portail web de l’utilisateur.
Par ailleurs, la surveillance UX permet l’exécution de tâches automatisées qui interagissent avec le bureau et les applications du système Windows®. Ce type de tâches ne peuvent être réalisées avec WUX.
Pandora FMS UX est un système qui exécute des tâches automatisées, remettant à Pandora FMS un rapport avec les résultats de l’exécution, le temps requis et des captures avec les éventuelles erreurs rencontrées.
Si vous disposez d’un système d’automatisation de tâches, Pandora FMS UX permet aussi d’exécuter les scripts que vous avez déjà et d’en surveiller leur exécution.
Il est important de préciser l’usage de ce type de surveillance. Ces deux méthodes se basent sur l’exécution de la supervision grâce aux plugins dans les agents software installés dans les machines correspondantes.
Surveillance PWR UX
Compte tenu des différences entre la surveillance UX et la surveillance WUX, de manière générale, la surveillance UX doit respecter une série de conditions préalables liées à l'environnement à surveiller, avec les étapes préliminaires suivantes :
- Installer Java®.
- Créez un profil dans Mozilla Firefox®.
- Installation d'un service Selenium®.
- Répartir les PWR dans le système.
- Installez l'IDE de Selenium® pour Mozilla Firefox®.
- Enregistrement d'une session PWR.
Pour l'exécution standard de sessions préenregistrées, utilisez la fonction Plugin Pandora UX dans sa dernière version 28-04-2022.
Expérience utilisateur Web (WUX) avec Selenium 3
Pour le déploiement de Selenium dans les serveurs WUX on utilisera un stack de conteneurs pour un déploiement rapide et facile à étendre.
Configurations préalables
Docker et Docker Compose doivent être installés.
Pour installer Docker, suivez la documentation selon votre système d'exploitation dans
Pour Selenium, utilisez les images officielles pour l'installation et déploiement du stack dans:
Le répertoire de Selenium met à votre disposition de différentes images avec navigateurs. Pour Pandora FMS, nous vous recommandons les conteneurs Mozilla Firefox® et Google Chrome®.
Déploiement du stack Selenium
Afin de déployer le stack Selenium, créez un fichier en format YAML avec les configurations nécessaires :
# To execute this docker-compose yml file use `docker-compose -f up` # Add the `-d` flag at the end for detached execution version: "3" services: selenium-hub: image: pandorafms/pandorafms-selenium-hub mem_limit: 2G container_name: selenium-hub-v3 logging: driver: "json-file" options: max-file: "5" max-size: "4m" mode: "non-blocking" environment: - TZ=Europe/Amsterdam ports: - "4444:4444" chrome: image: pandorafms/pandorafms-selenium-node-chrome mem_limit: 2G volumes: - /dev/shm:/dev/shm depends_on: - selenium-hub logging: driver: "json-file" options: max-file: "5" max-size: "4m" mode: "non-blocking" environment: - TZ=Europe/Amsterdam - HUB_HOST=selenium-hub - HUB_PORT=4444 firefox: image: pandorafms/pandorafms-selenium-node-firefox mem_limit: 2G volumes: - /dev/shm:/dev/shm depends_on: - selenium-hub logging: driver: "json-file" options: max-file: "5" max-size: "4m" mode: "non-blocking" environment: - TZ=Europe/Amsterdam - HUB_HOST=selenium-hub - HUB_PORT=4444
Dans l'exemple ci-dessus, vous devez apporter les modifications nécessaires pour chaque cas, comme la limite de mémoire, le fuseau horaire, le nombre de nœuds, etc.
Vous pouvez garder le fichier avec le nom docker-compose.yml
pour rendre son identification plus facile.
Pour activer le conteneur de la configuration que vous avez défini, il faut juste d'exécuter (remplacer <compose-file>
par le nom que vous avez choisi pour le fichier) :
docker-compose -f <compose-file> up -d
Pour vérifier les services en exécution dans le conteneur, utilisez :
docker-compose -f <compose-file> ps
Pour afficher l'état et les journaux des services Selenium, utilisez la commande suivante :
docker-compose -f <compose-file> logs
Une fois les vérifications pertinentes sont faites, pour vérifier que le grid fonctionne correctement et que les workers ont été enregistrés comme nous avons défini dans le fichier de configuration, accédez à l'URL suivante :
http://<ip_selenium_server>:4444/grid/console
Si vous avez besoin d'augmenter le nombre de workers :
docker-compose -f <compose-file> scale chrome=X firefox=Y
Infrastructure du service Selenium
Selenium fonctionne en tant que HUB dans lequel un conteneur est activé, qui fonctionne en tant que grille où déployer les conteneurs worker dont vous avez besoin.
Configuration de Pandora FMS
Pour l'utilisation du mode centralisé (WUX) il est necéssaire d'appliquer la configuration suivante au serveur Pandora FMS.
Quel que soit le mode choisi, une fois intitié vous pouvez attribuer des exécutions aux sessions de navigation, en ajoutant les paramètres de configuration WUX server au fichier de configuration du serveur Pandora FMS.
Ajoutez la configuration suivante à la fin du ficihier /etc/pandora/pandora_server.conf
(rémplasez ip_wux_host>
par l'adresse IP du serveur, si c'est le même serveur qui exécute lServeur PAndora FMS, utilisez 127.0.0.1
) :
wuxserver 1 wux_host <ip_wux_host> wux_port 4444
Le fichier de configuration du serveur a un nouvel jeton pour éliminer les sessions qui peuvent être en file d'attente chaque fois que le serveur Pandora FMS est initié.
clean_wux_sessions 1 #(default)
Gestion des fils de Pandora FMS
- La gestion des threads de
wuxserver
se fait automatiquement lors du démarrage du servicepandora_server
. - Elle est effectuée en tenant compte du nombre de nœuds d'un navigateur MINOR dans le hub Selenium. Par exemple :
- Si 2 nœuds Firefox et 2 nœuds Chrome sont configurés dans le hub, le nombre de threads
wuxserver
sera 2. - Si 1 nœud Firefox et 4 nœuds Chrome sont configurés dans le hub, le nombre de threads sera 1.
- Si 6 nœuds Firefox sont configurés dans le hub, le nombre de threads sera 6.
Notez que chaque thread indique les sessions qui peuvent être envoyées simultanément du wuxserver
au hub Selenium.
Annexe : Ajouter des workers pour Internet Explorer et Microsoft Edge
S'il est nécessaire de lancer des transactions web contre des navigateurs Microsoft®, il ess nécessaire de configurer une machine (qu'elle soit physique ou virtuelle) avec la version de Windows® souhaitée et configurer le contrôleur ou driver en suivant la documentation officielle.
Documentation pour l'installation du driver Internet Explorer®:
github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver
Nous recommandons l'utilisation du driver 3.141 version 32bit pour éviter les problèmes de performance de la version 64bit.
Documentation pour l'installation du driver de Microsoft Edge® :
https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
Pour l'exécution Selenium, il sera nécessaire d'avoir installé Java® dans l'appareil Windows®.
Pour vérifier si vous avez Java®, exécutez la commande suivante :
java -version
Obtenez une sortie pareille à la suivante :
Le fichier JAR Selenium est aussi nécessaire pour exécuter le serveur locallement et l'enregistrer dans votre grille. Vous pouvez l'obtenir dans :
https://www.selenium.dev/downloads/
Pour activer le serveur Microsoft Edge®, exécutez dans un terminal dans le répertoire où vous avez le fichier JAR le suivant :
java -jar selenium-server-standalone-<VER>.jar -port 5555 -role node -hub http://<ip_selenium_server>:4444/grid/register -browser "browserName=MicrosoftEdge, platform=WINDOWS, maxInstances=1"
Pour activer le serveur Internet Explorer® la commande est similaire, mais vous devez spécifier le chemin <PATH>
du driver que vous avez téléchargé :
java -Dwebdriver.ie.driver=<PATH>IEDriverServer.exe -jar selenium-server- standalone<VER>.jar -port 5555 -role node -hub http://ip_selenium_server:4444/grid/register -browser "browserName=internet explorer,platform=WINDOWS,maxInstances=1"
Configurez le pare-feu de Windows® pour permettre le traffic dans les ports spécifiés dans la commande d'exécution. Dans le cas des exemples antérieures : 5555 et 4444.
Enregistrement
Pour la version 3 de Selenium, ils seront compatibles les anciens enregistrements ainsi que les nouveaux, bien que ça ne garantit pas la compatibilité totale avec les versions anciennes.
Pour pouvoir enregistrer une nouvelle session, installez l'extension Selenium IDE dans le navigateur que vous souhaitez.
Firefox
https://addons.mozilla.org/es/firefox/addon/selenium-ide/
Chrome
https://chrome.google.com/webstore/detail/selenium-ide/mooikfkahbdckldjjndioackbalphokd
L'icône sera celui qui permet d'initier l'environnenment d'enregistrement une fois l'extension est installée.
Si vous cliquez, ça vous montrera un menu qui vous permet dìniter de nouveaux projets d'enregistrement.
Une fois l'enregistrement fait, vous aurez un résultat pareil à celui-ci :
Apart de la fonctionnalité fournie par Selenium, Pandora FMS dispose des commandes personnalisées pour extraire de l'information du cible à superviser.
Commandes
Vous pouvez trouver la liste de commandes compatibles pour les utiliser dans Pandora FMS dans l'annexe des commandes.
Recommendations et suggestions lors des enregistrements
Ici nous détaillons une série de recommendations et conseils lors des enregistrements des transactions Selenium IDE ainsi que pour intégrer avec Pandora FMS les commandes les plus complexes :
- Diviser la transaction en étapes aussi que possible. Donc les les modules d'état et de temps créés ainsi que les captures d'écran seront segmentés et il sera plus facile de localiser où est-ce que la transaction a échouée.
- Utiliser la commande Selenium
set speed
etwait for
pour éviter de faux négatifs. Lors de l'exécution d'une transaction, les commandes Selenium n'ont pas de délais par défaut depuis qu'un d'entre eux finit jusqu'à l'exécution du suivant, et quelques-uns n'ont pas de temps de finalisation ou timeout. Cela fait que l'exécution soit exécutée très rapidement dans aussi peu de temps que possible, mais en raison d'un processus si rapide, si le web est un peu lente ou il prend un seconde de plus, il ne trouvera pas l'élément dans la nouvelle page et la vérification échouera. Par exemple, après exécuter la commandeclick
et changer de page, si après vous avez une commande qui intéragit avec un élément de la nouvelle pafe et la page prend une seconde de plus pour charger, il ne trouvera pas la'élément dans la nouvelle page et la vérification échouera. Pour éviter cettes situtations, il existe la commandeset speed
, qui ajoute un délai avec la quantité de millisecondes indiqués dans le cible entre chaque commande. Nous vous recommandons de l'établir au début de la transaction. Il y a aussi pour les cas ou vous savez que la charge d'une page ou d'un élément peuvent se retarder, les commandeswait for element present
,wait for visible
ywait for text
dans lesquelles vous pouvez établir le tamps en millisecondes qu'il attendera pour que l'élément apparaît sur la page avant de considérer la transaction échouée. Il est important de remarquer que l'utilisation de cettes commandes augmente la fiabilité de la vérification il aussi augmente le temps d'ecécution de la transaction. - Faire des vérification des éléments. Pour ça des commandes telles que
assert
etverify
, dans ses différents versants. Finir une transaction par exemple avec un clique ne vous garantit pas que la nouvelle page que l'élément doit ouvrir soit en fait ouverte, seulement qu'il est possible de cliquer sur l'élément. Si après le clique, vous entrezverify text
dans un texte que vous savez que vous allez seulement chager après de cliquer, ça serait en fait une manière de vérifier que la page où vous allez après cliquer est disponible. - Utiliser
store window handle
dans transactions dans lasquelles vous allez changer fenêtres. Le changement de fenêtre (avecselect window
) peut échouer si vous n'avez pas stocké précédement un identifiant dans la fenêtre initial. - Utiliser
xpath
lorsque le Target par identificateur de CSS ou lorsque vous voulez chercher du contenu dans la page. Par défaut l'enregistreur Selenium IDE introduit dans le cible (target) de l'élément le localisateur du CSS, mais aussi enregistre le localisateur parxpath
, pourtant il est possible de voir tous les localisateurs qu'il garde si vous cliquez dans la boîte du cible dans l'enregistreur:
Aussi, en utilisant des chemins par xpath
, il est possible de chercher des textes dans les étiquettes des pages pour réaliser des enregistrements beaucoup plus dynamiques. Dans la capture d'écran antérieure regardez qu'il est possible d'utiliser le texte “Innovateurs de la supervision” dans toutes les étiquettes span
de la page, pas dans un localisateur particulier.
- Utilisation correcte de la commande
execute script
. Cette commande exécute une partie du code de JavaScript dans la fenêtre dans laquelle la transaction est localisée. Il est recommandée de lire le guide pour connaître son utilisation et les différents options qu'elle offre : https://ui.vision/rpa/docs/selenium-ide/executescript . Cependant, l'utilisation des variables stockées précédement (par une commandastore text
par exemple) doit être entre doubles guillemets pour que le webdriver de Pandora FMS les interprète correctement. Ici il y a un exemple d'une variable stockée avecstore text
et son utilisation avecexecute script
de telle manière que le serveur Pandora FMS l'interprète correctement. Notez que cette utilisation de la variable entre des guillemets échouera lors de l'exécution du script dans l'enregistreur Selenium IDE :
Gestion et affichage de données
Créer un module d'analyse web dans la Console Pandora FMS
Une fois vous avez une session de navigation enregistrée, il faut le déployer en tant que Module dans la Console Pandora FMS.
À cette fln, accèdez à n'importe quel des agents associés au serveur avec une fonctionnalité WUX activée et crééz un module du type Analyse web en choisissant l'option Create a new web analysis module :
Cliquez sur Create et après remplissez tous les champs dans le formulaire :
Name
Module WUX (Père) ; rappelez-vous que tous les sousmodules avec les résultats de la supervision dépendront de ce nouveau module.
Run performance tests
Il spécifique le lancement des vérifications de performance, c'est à dire de superviser pas seulement l'expérience utilisateur mais ausse les statistiques de performancce de l'accès au site web cible.
Execute tests from
Il indique le serveur WUX qui exécutera la vérification.
Browser
Navigateur web avec lequel exécuter la vérification.
Le navigateur indiqué doit apparaître dans la grille ou serveur Selenium utilisé par le serveur WUX.
User data dir
(Version 764 ou ultérieure) Facultatif : il permet de spécifier un répertoire pour les données.
L'option User data dir ne fonctionne que sur le navigateur web Google Chrome.
Profile
(Version 764 ou ultérieure) Facultatif : il permet de spécifier un profil utilisateur. Si le nom du profil n'existe pas, utilisez le profil par défaut.
L'option Profile ne fonctionne que sur le navigateur web Google Chrome.
Accept insecure certificates
Sil est activé, n'importe quel certificat non-sécurisé sera accepté (auto-signé, expiré, etc.) qui fait partie de la navigation.
Cette option est seulement disponible pour les navigateurs Google Chrome® et Mozilla Firefox®, et seulement sera appliquée si la vérification exécutée par un serveur Selenium 3.
Historical data
Sauvegardez ou pas l'information historique des modules qui supervisent l'expérience utilisateur.
Section de texte
Copiez (ou téléchargez avec le bouton Browse…) le contenu des fichiers de la session de navigation que vous avez enregistré précédement.
FF interval
Intervalle de temps Flip Flop d'exécution du module (en secondes).
Retries
Nombre de tentatives pour lancer le module.
Macros personnalisées
Le fonctionnement des macros personnalisées comprend le remplacement de certaines chaînes de texte présentes dans le fichier de session navigation par certaines valeurs personnalisables.
Dans les cas de modules d'analyse web, cette fonctionnalité a été amélioré, permetant des macros dinamiques qui permettent que ces valeurs soient traduits en dates et heures variables.
Pourquoi cette fonctionnalité ?
Supposez que vous avez besoin de superviser, par le biais d'une session de navegation, le correcte fonctionnement d'une application web de réservation de salles de réunion.
Si vous établissez une date et heure fixée lors de remplir les données du formulaire, il est possible que le système cancèle la réservation parce à quelque moment il est dans le passé ; par exemple, vous pourriez réserver une salle pour la semaine prochaine.
Il est aussi possible de trouver un temps maximale pour pouvoir faire la réservation et que le système vous fait réserver la salle dans un temps concret, par exemple pas supérieur au mois en vigueur.
Pour éviter d'éditer la macro tous les quelques jours, et ne pas s'inquiéter à cause de la section de configuration, vous pouvez utiliser les macros dinamiques, en indicant le système que vous réservez la salle toujours pour le jour suivant au moment de faire la vérification.
Afin de pouvoir utiliser cette fonctionnalité, les valeurs doivent avoir un format spécifique, en obtenant les remplacements possibles suivantes :
@DATE_FORMAT
: date/heure actuelle avec format défini par l'utilisateur.@DATE_FORMAT_nh
: heures.@DATE_FORMAT_nm
: minutes.@DATE_FORMAT_nd
: jours.@DATE_FORMAT_ns
: secondes.@DATE_FORMAT_nM
: mois.@DATE_FORMAT_nY
: années.
Ou “ n ” peut être un numéro sin sgne positif ou négatif.
Et FORMAT suive le standard de strftime de Perl
Exemples :
@DATE_%Y-%m-%d %H:%M:%S @DATE_%H:%M:%S_300s @DATE_%H:%M:%S_-1h
Affichage des données
L'information générée par WUX sera affichée sous forme de modules comme suit. L'activation de la vue en mode hiérarchique, dans la liste de modules aidera à afficher l'information de manière beaucoup plus claire :
Dans cette hiérarchie vous trouverez les modules suivants :
- módulo_Global_Status : Indiquera l'état global de la navigation complète.
- Au cas où il existe un enregistrement il donne l'état de l'enregistrement WUX.
- Dans le cas où les run performance Test sont activées mais il n'y a pas d'enregistrement inclu, l'état du module Global Status est celui de la vérification fait lors de l'obtention de ces modules.
- módulo_Global_Time : Il indiquera le temps global employé dans la navigation complète.
- módulo_Global_Screenshot : Il contient une image avec le résultat de l'échec de navigation, il ne sera généré qu'en cas d'échec.
- módulo_Phase X : Nom de étape_Status : Il indiquera l'état de la navigation pendant l'étape X.
- módulo_Phase X : Nom de étape_Time : Il indiquera le temps employé dans l'étape X.
Exemple : Vue de la capture d'erreur.
Attention : Si vous avez mis à jour depuis une version précédente à Pandora FMS 7.0NG 712 vous devez fair un léger changement.
Afin de pouvoir stocker les captures d'écran générées par le serveur WUX, vous devez lancer les opérations suivantes dans votre schéma de base de données :
alter table tagente_estado modify column datos mediumtext; alter table tagente_datos_string modify column datos mediumtext;
Si vous ne faites pas ces actions, les captures pourraient être incomplètes.
En accèdant à la section WUX de l'agent vous pouvez voir des détails supplémentaires de la transaction et ses étapes :
Les statistiques du site web sont résumées dans les concepts suivants :
- Stats_TT : Temps total pour obtenir le site web.
- Stats_TDNS : Temps total pour résoudre l'adresse IP du cible.
- Stats_TTCP: Temps employé pour connecter par le biais de TCP.
- Stats_TSSL : Temps employé pour établir communication SSL.
- Stats_TST : Temps passé jusqu'au démarrage du transfert de données.
- Stats_TTC : Temps passé en transférant des données ; il groupera tous les temps de tranfert de ressources.
- Stats_TTR : Temps employé pour transférer le contenu de la page.
- Stats_TTR_main : Temps employé pour transférer le code HTML.
- Stats_TTR_image : Temps employé pour transférer les ressources du type image (
png|jpg|jpeg|bmp|tiff|gif|webp|svg
). - Stats_TTR_css : Temps employé pour transférer les feuilles de styles.
- Stats_TTR_js : Temps employé pour tranférer les fichiers JavaScript.
Attribuer des alertes à un module d'analyse web
Les alertes associées aux modules d'analyse web suivent la même distance dynamique de fontionnement que tout le système d'alertes Pandora FMS.
Pour compatibilité il est recommandé d'attribuer les modèles d'alertes sur les souséléments autogénérés par le module d'analyse web, comme par exemple :
- L'état de navigation global.
- Alertes sur les seuils de temps.
- Alertes avec modèle d'avertissement mis sur “ toujours ” pour les modules capture d'image de résultats.
Nouveaux widgets pour Dashboards
Afin de pouvoir répresente les informations de la navigation d'utilisateurs, de nouveaux types de widget ont été ajoutés :
Widget d'état des étapes de navigation
Widget de statistiques du site web
Liste des commandes prises en charge
Commandes internes
- run : Il exécute un test.
- build_transaction : Il pré-construit une transaction basée sur le passé test (interne).
- get_transaction : Il renvoie la transaction en cours, toujours utilisée pour récupérer les résultats, l'ordre des phases et les variables.
- sessions : Il récupère la liste des sessions présentes dans hub.
- kill_sessions : Supprimer toutes les sessions existantes dans hub.
Commandes supplémentaires
- extract : Il combine le code source et le code propre pour l'extraction.
- storeExtraction : Il enregistre le résultat de extract dans une variable.
- dispatchEvent : Il déclenche un événement JavaScript sur un élément donné.
- takeElementScreenshot : Il effectue une capture d'écran d'un élément spécifique.
- phase_start : Il initie une phase et transforme le test en une transaction WUX.
- phase_end : Terminer une phase.
Commandes qui génèrent des modules
- getValue : Il extrait une valeur.
getValue;nom_du_module;type_module;REGEX_capture
- getVariable : Il extrait une valeur spécifique d'une variable.
getVariable;nom_du_module;type_module;nom_du_variable
- getScreenshot : Il extrait une capture d'écran.
getScreenshot;nom_du_module
Toutes les commandes propres doivent apparaître dans le fichier de test (.side
) sous forme de commentaires. Sinon, le test échouera dans l'extension Selenium.
Commandes fournies par l'extension d'enregistrement (v3)
- addSelection
- answerOnNextPrompt
- assert
- assertAlert
- assertChecked
- assertConfirmation
- assertEditable
- assertElementPresent
- assertElementNotPresent
- assertNotChecked
- assertNotEditable
- assertNotSelectedValue
- assertNotText
- assertPrompt
- assertSelectedValue
- assertSelectedLabel
- assertText
- assertTitle
- assertValue
- check
- chooseCancelOnNextConfirmation
- chooseCancelOnNextPrompt
- chooseOkOnNextConfirmation
- click
- clickAt
- close
- doubleClick
- doubleClickAt
- dragAndDropToObject
- echo
- editContent
- else
- elseIf
- end
- executeScript
- executeAsyncScript
- if
- mouseDown
- mouseDownAt
- mouseOver
- mouseUp
- mouseUpAt
- open
- pageLoadTimeout
- pause
- removeSelection
- select
- selectFrame
- selectWindow
- sendKeys
- setSpeed
- setWindowSize
- store
- storeAttribute
- storeJson
- storeText
- storeTitle
- storeValue
- storeWindowHandle
- storeXpathCount
- submit
- type
- uncheck
- verify
- verifyChecked
- verifyEditable
- verifyElementPresent
- verifyElementNotPresent
- verifyNotChecked
- verifyNotEditable
- verifyNotSelectedValue
- verifyNotText
- verifySelectedLabel
- verifySelectedValue
- verifyText
- verifyTitle
- verifyValue
- waitForElementEditable
- waitForElementNotEditable
- waitForElementNotPresent
- waitForElementNotVisible
- waitForElementPresent
- waitForElementVisible
- waitForText
- webdriverAnswerOnVisiblePrompt
- webdriverChooseCancelOnVisibleConfirmation
- webdriverChooseOkOnVisibleConfirmation