[JAVA] Liste des options de séléniure

Préface

Lors de la création d'un test automatisé à l'aide de Selenide, il existe une option pour changer le comportement en donnant simplement un paramètre à Selenide sans codage. En les connaissant et en les utilisant, vous pouvez éviter un codage inutile, il est donc plus sûr de savoir à l'avance lors de l'utilisation de Selenide.

Le processus de chargement des options est écrit dans SelenideConfig.java, alors jetons un œil avec le code sur SelenideConfig. Il comprend également une brève explication et des impressions personnelles basées sur le contenu du document et l'expérience que j'ai utilisée. Excusez-moi si je me trompe.

supposition

Cette explication est basée sur la version 5.7 de séléniure, et l'explication par le document officiel peut également être renvoyée à partir de la page suivante. https://selenide.org/javadoc/current/com/codeborne/selenide/Configuration.html

Liste d'options

selenide.browser Utilisation ★★★ Vous pouvez spécifier le navigateur à utiliser. C'est pratique car vous n'avez pas à spécifier le navigateur dans le code lors du test avec plusieurs navigateurs. Choisissez parmi "chrome", "firefox", "legacy_firefox" (jusqu'à ESR 52), "ie", "opera", "edge".

  private String browser = System.getProperty("selenide.browser", CHROME);

selenide.headless Utilisation ★ Vous pouvez également exécuter en mode sans tête. Cependant, je pense qu'il est plus sûr de l'éviter en tant que test E2E. Est-il censé être utilisé pour le grattage? Il semble fonctionner uniquement avec Chrome (59+) et Firefox (56+).

  private boolean headless = Boolean.parseBoolean(System.getProperty("selenide.headless", "false"));

selenide.remote Utilisation ★ Il semble que ce paramètre soit nécessaire lors de l'utilisation de RemoteWebDriver, par exemple lors de l'utilisation de Selenium Grid. Je ne l'ai pas utilisé car le test sur plusieurs terminaux est réalisé par le pipeline jenkins.

  private String remote = System.getProperty("selenide.remote");

selenide.browserSize Utilisation ★★★ Vous pouvez également spécifier la taille de la fenêtre. Je pense qu'il existe des tests qui modifient la taille de la fenêtre, donc c'est pratique car vous pouvez la changer avec des paramètres. Que cela fonctionne à la résolution garantie ou à une résolution plus élevée, etc. Il est également important d'effectuer des tests uniformes qui ne dépendent pas du terminal d'exécution des tests.

  private String browserSize = System.getProperty("selenide.browserSize", "1366x768");

selenide.browserVersion Utilisation ★★★ Il semble que vous puissiez également spécifier la version du navigateur. La documentation dit (pour Internet Explorer).

  private String browserVersion = System.getProperty("selenide.browserVersion");

selenide.browserPosition Utilisation ★ Vous pouvez également spécifier la position du navigateur au démarrage. Je ne peux pas penser à de nombreuses utilisations.

  private String browserPosition = System.getProperty("selenide.browserPosition");

selenide.startMaximized Utilisation ★★ Vous pouvez choisir de maximiser la taille du navigateur au démarrage du navigateur. Si vous la maximisez, la zone visible s'agrandira et l'élément à utiliser s'affichera facilement, il sera donc plus facile de passer le test. Cependant, le fait que la taille du navigateur dépende du terminal qui exécute le test est un peu subtil en termes de crédibilité des résultats du test.

  private boolean startMaximized = Boolean.parseBoolean(System.getProperty("selenide.startMaximized", "false"));

selenide.driverManagerEnabled Utilisation ★★ Vous pouvez choisir de télécharger ou non automatiquement le pilote. Basic On convient, mais si vous n'avez pas besoin de le télécharger, vous pouvez raccourcir le temps d'exécution du test. Je pense que c'est aussi une fourmi à utiliser lorsque l'exécution de tests est requise selon un calendrier serré Voir https://github.com/bonigarcia/webdrivermanager pour les détails de configuration de WebDriverManager.

  private boolean driverManagerEnabled = Boolean.parseBoolean(System.getProperty("selenide.driverManagerEnabled", "true"));

selenide.browserBinary Utilisation ★ Je ne l'ai pas utilisé, mais il semble que je puisse spécifier le chemin d'accès au pilote. Le document dit Fonctionne uniquement pour Chrome, Firefox et Opera. Cependant, en regardant le code, il semble que cela fonctionnera avec IE et Safari.

  private String browserBinary = System.getProperty("selenide.browserBinary", "");

selenide.pageLoadStrategy Utilisation ★★ Vous pouvez spécifier comment déterminer la fin du chargement de la page. normal: return after the load event fires on the new page (it's default in Selenium webdriver); eager: return after DOMContentLoaded fires; none: return immediately

Dans le cas de «normal», c'est le plus conservateur car il attend que l'événement de chargement se déclenche. Lors de la création d'un test à partir de maintenant, il peut être bon d'atteindre à la fois la stabilité et la vitesse en sélectionnant ʻeager`, qui attend que la lecture du DOM soit terminée. aucun n'est pratique car il n'attend pas du tout.

  private String pageLoadStrategy = System.getProperty("selenide.pageLoadStrategy", "normal");

selenide.baseUrl Utilisation ★★★ Lors de l'ouverture d'une page avec Selenide.open (), l'URL définie ici sera ouverte. Ceci est utile lorsqu'il y a plusieurs environnements à tester, tels que le développement et la mise en scène. Normalement, spécifiez l'hôte, le domaine et même le port.

  private String baseUrl = System.getProperty("selenide.baseUrl", "http://localhost:8080");

selenide.timeout Utilisation ★★★ Vous pouvez spécifier le temps d'attente lors de la vérification d'un élément à l'aide de la méthode should ou similaire. Si les spécifications d'environnement à tester sont faibles et que la réponse est médiocre, vous pouvez stabiliser le test en modifiant le délai d'expiration.

  private long timeout = Long.parseLong(System.getProperty("selenide.timeout", "4000"));

selenide.pollingInterval Utilisation ★ Vous n'êtes pas obligé de le spécifier. Il s'agit de l'intervalle de vérification lors de la vérification des éléments.

  private long pollingInterval = Long.parseLong(System.getProperty("selenide.pollingInterval", "200"));

selenide.holdBrowserOpen Utilisation ★ Vous pouvez garder la fenêtre ouverte lorsque le test est terminé. Il peut être utilisé pour enquêter sur l'échec d'un test. Cependant, comme vous devrez fermer la fenêtre, il vaut mieux ne pas utiliser cette option si l'acquisition de capture peut être remplacée.

  private boolean holdBrowserOpen = Boolean.getBoolean("selenide.holdBrowserOpen");

selenide.reopenBrowserOnFail Utilisation? Selon le document, il semble être une option pour rouvrir lorsque le navigateur est fermé en raison d'un blocage, d'une panne, d'une fermeture inopinée, mais même s'il est rouvert, le processus se poursuivra bien après cela.

  private boolean reopenBrowserOnFail = Boolean.parseBoolean(System.getProperty("selenide.reopenBrowserOnFail", "true"));

selenide.clickViaJs Utilisation ★ Il semble que vous puissiez choisir de cliquer sur l'élément avec le pilote Web ou d'utiliser js. ATTENTION! Automatic WebDriver waiting after click isn't working in case of using this feature. Il est également écrit, donc je ne pense pas qu'il soit nécessaire de le changer à moins qu'il n'y ait une raison.

  private boolean clickViaJs = Boolean.parseBoolean(System.getProperty("selenide.clickViaJs", "false"));

selenide.screenshots Utilisation ★★★ S'il faut prendre une pression lorsque le test échoue. Ce serait bien de pouvoir capturer la capture comme preuve lorsque le test échoue, ou lors de l'enquête sur un problème avec le code de test, il est donc bon de pouvoir changer s'il faut ou non enregistrer la capture avec un paramètre. ..

  private boolean screenshots = Boolean.parseBoolean(System.getProperty("selenide.screenshots", "true"));

selenide.savePageSource Utilisation ★★★ Étant donné que vous pouvez obtenir le code HTML au moment de l'exécution, cela est également utile pour rechercher lorsqu'un test échoue.

  private boolean savePageSource = Boolean.parseBoolean(System.getProperty("selenide.savePageSource", "true"));

selenide.reportsFolder Utilisation ★★

  private String reportsFolder = System.getProperty("selenide.reportsFolder", "build/reports/tests");

selenide.savePageSource Utilisation ★★ Vous pouvez spécifier où télécharger le fichier.

  private String downloadsFolder = System.getProperty("selenide.downloadsFolder", "build/downloads");

selenide.reportsUrl Utilisation ★★ Utile lors de l'exécution en combinaison avec CI. If it's given, names of screenshots are printed as "http://ci.mycompany.com/job/my-job/446/artifact/build/reports/tests/my_test.png " - it's useful to analyze test failures in CI server. Optional: URL of CI server where reports are published to. In case of Jenkins, it is "BUILD_URL/artifact" by default.

  private String reportsUrl = new CiReportUrl().getReportsUrl(System.getProperty("selenide.reportsUrl"));

selenide.fastSetValue Utilisation ★★ Vous pouvez choisir de saisir la valeur dans le champ de saisie avec javascript ou d'utiliser la fonction "sendKey" de Selenium. Il semble que l'opération d'entrée soit plus rapide en utilisant javascript, donc cela vaut la peine d'être considéré si vous êtes préoccupé par la vitesse.

  private boolean fastSetValue = Boolean.parseBoolean(System.getProperty("selenide.fastSetValue", "false"));

selenide.versatileSetValue Utilisation ★ Il semble que les méthodes "setValue" et "val" peuvent se comporter comme "selectOptionByValue", "selectRadio" selon le type d'élément réel.

  private boolean versatileSetValue = Boolean.parseBoolean(System.getProperty("selenide.versatileSetValue", "false"));

selenide.fileDownload Utilisation ★ Vous pouvez définir s'il faut passer par le serveur proxy lors du téléchargement de fichiers.

  private FileDownloadMode fileDownload = FileDownloadMode.valueOf(System.getProperty("selenide.fileDownload", HTTPGET.name()));

selenide.proxyEnabled Utilisation ★ Vous pouvez définir si vous souhaitez exécuter le navigateur via le serveur proxy.

  private boolean proxyEnabled = Boolean.parseBoolean(System.getProperty("selenide.proxyEnabled", "false"));

selenide.proxyHost Utilisation ★ Vous pouvez définir l'hôte pour exécuter le navigateur via un serveur proxy. On suppose que proxyEnabled == true.

  private String proxyHost = System.getProperty("selenide.proxyHost", "");

selenide.proxyPort Utilisation ★ Vous pouvez définir le numéro de port lors de l'utilisation du navigateur via le serveur proxy. On suppose que proxyEnabled == true.

  private int proxyPort = Integer.parseInt(System.getProperty("selenide.proxyPort", "0"));

Épilogue

Avez-vous trouvé une option qui pourrait être utile pour les tests? Il semble que des options soient ajoutées de temps en temps à mesure que la bibliothèque est mise à niveau, une vérification continue est donc recommandée.

Recommended Posts

Liste des options de séléniure
Savoir-faire Selenide
Liste thread-safe
Méthode de liste
Liste de travail
Liste de liens