Как инициализировать объект драйвера, чтобы он мог использоваться всеми классами - PullRequest
0 голосов
/ 03 февраля 2019

Как инициализировать драйвер, чтобы он мог использоваться всеми классами

Привет всем,

Я пишу инфраструктуру автоматизации тестирования в JAVA с использованием Appium, Selenium и Cucumber.

Я начинаю с объявления драйвера Appium в одном из моих файлов шагов теста, после чего он приводится к драйверу Android или драйверу iOS в зависимости от тестируемого приложения.

Мне нужна помощь, пожалуйста - яМне нужны все мои файлы классов, чтобы иметь доступ к этому экземпляру драйвера, но я не уверен, как это сделать.Тест запускается из файла возможностей, и некоторые этапы теста находятся в разных файлах классов, так как они могут получить доступ к этому экземпляру драйвера?

Спасибо, Мэтт

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

вы можете определить свой AppiumDriver как статический

public class AppiumHelper(){
   public static AppiumDriver<MobileElement> driver;

   public void setupDriver(){
       //define your DesiredCapabilities       

       //initialize your driver

  }

Затем вы можете использовать свой драйвер в своем методе тестирования, например

public void test1(){
       MobileElement element= AppiumHelper.driver.findElementById("elements id");

}
0 голосов
/ 03 февраля 2019

Вы можете создать метод инициализации в классе, где можно выполнить все остальные настройки конфигурации, а затем создать экземпляр этого класса для вызова метода getDriver.
Например:

public class initialiseDriver{
private static AppiumDriver<MobileElement> driver;

public AppiumDriver<MobileElement> getDriver() throws IOException {
if (PLATFORM_NAME.equals("Android")) {
    // setup the android driver
} else if (PLATFORM_NAME.equals("iOS")) {
    // setup the ios driver
}
return driver;
  }
}

Вы можете просто вызвать этот метод там, где вы хотите использовать драйвер.В идеале вы должны инициализировать драйвер, вызвав этот метод в методе @ BeforeSuite / @ BeforeClass, чтобы вам не приходилось вызывать этот метод каждый раз, когда вы запускаете скрипт, поскольку он будет вызываться неявно с помощью @ BeforeSuite / @ BeforeClass.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...