Voici un moyen simple de faire tout ce que vous devez faire avant de lancer votre navigateur pour exécuter des tests Web automatisés à l'aide de Selenium. L'explication est basée sur l'hypothèse que le sélénide sera utilisé.
En guise de travail préliminaire pour tester avec Selenium, il est bien entendu nécessaire de démarrer le navigateur. Cependant, il est nécessaire de suivre la procédure ci-dessous avant de démarrer le navigateur et de lancer le test.
Il n'y a rien que vous ne puissiez pas faire même si vous faites de votre mieux manuellement, mais s'il y a plusieurs terminaux qui exécutent des tests, il est difficile de mettre à jour les pilotes un par un, et en premier lieu, cela entrave l'exécution régulière et stable des tests. Donc, cette fois, je décrirai comment les mettre en œuvre efficacement.
Lors du test du Web, il est nécessaire de spécifier le navigateur à tester. Il existe deux façons de le faire, l'une consiste à le spécifier dans le code et l'autre à le spécifier avec des paramètres d'exécution.
Dans Selenide, le paramètre est stocké dans la classe Configuration, et lorsque vous spécifiez le navigateur sur le code source, décrivez comme suit.
Configuration.browser = WebDriverRunner.CHROME
Vous pouvez changer de navigateur en écrivant.
Cependant, il devrait généralement être basé sur la nécessité d'exécuter le même test sur plusieurs navigateurs. Par conséquent, le navigateur à tester est généralement commuté par des paramètres d'exécution plutôt que d'être spécifié directement dans le code.
Vous pouvez spécifier le navigateur d'exécution en écrivant comme suit à l'aide de selenide.browser. java -Dselenide.browser=Chrome
Cependant, lorsque vous spécifiez un navigateur, vous souhaitez également définir des paramètres spécifiques à ce navigateur. De plus, je ne veux pas écrire les paramètres du navigateur dans le code de test un par un. Voici comment traiter de tels cas.
Cela peut être résolu en appelant le code qui définit les paramètres avant le processus de démarrage du navigateur. Voici l'exemple de code.
IEWebDriverProvider.java
package com.driver;
public class IEWebDriverProvider implements WebDriverProvider {
@Override
public WebDriver createDriver(final DesiredCapabilities desiredCapabilities) {
InternetExplorerDriverManager.iedriver().arch32().setup();
desiredCapabilities.setCapability("ignoreProtectedModeSettings", true);
InternetExplorerOptions opt = new InternetExplorerOptions(desiredCapabilities)
.destructivelyEnsureCleanSession().withAttachTimeout(10, TimeUnit.SECONDS);
opt.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
return new InternetExplorerDriver(opt);
}
}
Préparez une classe qui implémente WebDriverProvider et, en outre, donnez le chemin du code en tant que paramètre au moment de l'exécution, comme indiqué ci-dessous. -Dselenide.browser=com.driver.IEWebDriverProvider
Ce faisant, le moment du démarrage du navigateur, en particulier WebDriverRunner.getAndCheckWebDriver(); Le code ci-dessus qui configure les paramètres du navigateur est également exécuté lors de son exécution.
Cette fois, un exemple de démarrage d'IE est décrit, mais il est possible de préparer une classe à définir à l'avance pour chaque navigateur. L'avantage de cette méthode est que vous pouvez réutiliser le code de configuration dans plusieurs tests pour améliorer la visibilité du code de test en évitant d'écrire les préréglages nécessaires pour le navigateur dans des tests individuels.
Lors de l'exécution d'un test, le test peut échouer car la version du pilote installé sur le terminal sur lequel le test est exécuté est ancienne.
Cependant, Selenide inclut WebdriverManager et dispose d'un processus intégré pour mettre à jour automatiquement le navigateur, afin que vous puissiez exécuter le test sans en être conscient. Il vérifie si le pilote du terminal à utiliser est le dernier pilote, et s'il ne s'agit pas du dernier, il sera téléchargé automatiquement.
Même si vous n'utilisez pas Selenide, vous pouvez obtenir le même effet en utilisant Webdriver Manager.
Si la dernière version du pilote et la version du navigateur du terminal d'exécution de test ne correspondent pas, le test ne peut pas être exécuté tel quel, il est donc nécessaire de spécifier la version du pilote individuellement.
Dans ce cas, vous pouvez également spécifier la version du pilote comme suit. java -Dwdm.chromeDriverVersion=1.99
Vous pouvez également arrêter le processus de mise à jour automatique car il est clair que le pilote est à jour, le nombre de tests est énorme et vous souhaitez raccourcir le plus possible la durée du test. Même dans un tel cas, vous pouvez arrêter le processus de mise à jour en définissant comme suit. java -Dselenide.driverManagerEnabled=false
Jusqu'à présent, nous avons présenté comment éliminer divers problèmes liés au navigateur, ce qui est une condition préalable au démarrage du test. Nous espérons que vous aurez une vie d'automatisation de test confortable en référence à cela.
Recommended Posts