Comment dois-je déclarer un pilote mondial?

Ici est de savoir comment je déclare firefox pilote:

public static WebDriver driver = new FirefoxDriver();

- Je placer le code ci-dessus à l'extérieur principal et dans ma classe (global)

Ici est de savoir comment je déclare chrome pilote:

System.setProperty("webdriver.chrome.driver", "/path/xxx/xxx/xx");
WebDriver driver  = new ChromeDriver();

- Je placer le code ci-dessus dans les principales

Voici la question:

Je veux faire de la ChromeDriver mondial, mais je BESOIN pour définir la propriété avant le faire. Mais je place les System.setProperty("xx","xx"); dans le corps principal. Cuz il donne une erreur lorsqu'il est placé à l'extérieur.

Ici est un utilisateur essaie de faire la même chose que moi. Essayez d'exécuter différents navigateurs utilisant le même pilote : Comment faire pour exécuter le Sélénium tests dans plusieurs navigateurs pour la croix-test du navigateur à l'aide de Java?

La réponse est implique de déclarer le pilote dans le corps principal et non pas comme une constante avant.

Mon problème: Toutes les fonctions besoin du pilote de la déclaration d'avant. L'appel de fonctions qui utilisent driver. Si je déclare driver en main, j'ai besoin en permanence de le passer en paramètre à toutes les fonctions. Je ne souhaite pas le faire. Voici un exemple de fonction

 public static void a(){

 driver.findElement(By.id("hi"));

}
  • Pourquoi avez-vous besoin pour faire un à la première place?
  • Parce que TOUTES les fonctions qui en dépendent. Ils ont tous un "pilote" dans les. Ils seront TOUS complètement casser si je ne le fais pas global.
  • Vous pouvez toujours passer à des classes différentes de leurs constructeurs, par exemple) et l'utiliser comme une variable de classe. Java n'a pas vraiment de soutien des variables globales de toute façon, une variable est toujours dans le champ d'une classe ou d'une méthode.
InformationsquelleAutor Indigo | 2014-10-16