Comment changer la langue d'un WebDriver?
Je veux exécuter mon Sélénium tests dans différentes langues. Est-il possible de changer la langue d'un WebDriver au moment de l'exécution ou dois-je recréer l'instance du navigateur?
Droit maintenant, je suis seulement à l'aide de Firefox, mais je veux exécuter des tests sur différents navigateurs à un moment plus tard.
Dans Firefox, j'ai défini la langue comme ceci:
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("intl.accept_languages", "de");
WebDriver driver = new FirefoxDriver(profile);
J'ai aussi mis en place un WebDriverPool, qui détient une WebDriver, de sorte qu'il peut être partagé entre les tests. Si la langue ne peut être réglé au moment de la création, j'ai pu tenir un exemple pour tous les paramètres régionaux.
Dans l'ensemble je me demande si j'ai raté quelque chose ici. Pourquoi est-il si difficile de changer la langue? ne devrait-il pas être une méthode comme WebDriver.setAcceptLanguages(Locale)
?
En un mot, j'ai de ces questions:
- Pourquoi n'est-il pas
WebDriver.setAcceptLanguages(Locale)
? - Comment changer la langue pour la dirrerent WebDrivers?
- Puis-je changer la langue lors de l'exécution?
- Comment avez-vous les gars en œuvre de votre WebDriverPool ou avez-vous les recréer à chaque fois?
- Je peux penser à plusieurs scénarios: Vérifiez la date et le numéro de mise en forme et d'entrée pour les différents paramètres régionaux, prendre des captures d'écran dans différentes langues, peut-être de montrer quelques conseil si quelqu'un avec une langue non prise en charge est le long et ainsi de suite. Je dirais, si votre application prend en charge plusieurs langages de le tester dans de multiples sens que pour certains cas de test, non?
Vous devez vous connecter pour publier un commentaire.
J'ai fini par créer un WebDriverPool qui crée une instance pour chaque combinaison de WebDriver type (p. ex. FirefoxDriver.class) et Locale (par ex. fr). Peut être est ce une façon pour quelqu'un.
Vous pouvez également le faire via about:config de firefox. Mais vous avez besoin d'utiliser des Actions pour les manipuler.
Ci-dessous un java morceau de code
J'ai peur que l'idée de WebDriver est à agir comme navigateur - de sorte que vous pouvez changer la langue du navigateur, mais vous devez modifier les paramètres régionaux du système d'Exploitation, ou dans l'espoir que l'application va le faire pour vous.
Par exemple - allemand format de nombre sépare nombre décimal par une virgule et en anglais par le dot. Si vous voulez tester, comment le format de nombre se comporte dans les paramètres régionaux anglais et en allemand locale, vous pouvez le faire uniquement par ces deux approches:
Pour répondre à vos questions:
Je voudrais faire comme ceci (code Java):
Je crains que vous devez fermer le navigateur et ouvrez-le à nouveau avec une autre langue.
BTW ci-dessus morceau de code suppose que l'application web change la façon de montrer les nombres à l'utilisateur, selon la langue de votre navigateur.
Accept-Language
-d'en-Tête dans Chrome, Firefox et Internet Explorer, il suffit de modifier les paramètres de langue à l'intérieur du navigateur et recharger la page sans modifier les paramètres du système d'exploitation.