Как использовать только один драйвер, который можно использовать как Webdriver или Appiumdriver - PullRequest
0 голосов
/ 12 марта 2019

Я пишу среду автоматизации тестирования, которая запускает некоторые тесты на устройствах с использованием AppiumDriver, а некоторые - в Интернете с использованием WebDriver.

В настоящее время я объявляю два разных драйвера, как показано ниже:

public static AppiumDriver appDriver = null;
public static RemoteWebDriver webDriver = null;

Если тест выполняется на устройстве, которое использует appDriver, и если он выполняется в Интернете, он использует webDriver.

Однако это вызывает проблемы для общих методов, таких как driver.quit .... Мне нужно иметь большекод для обработки обоих типов драйверов ... (например, если тест устройства appDriver.quit, если web webDriver.quit).

Есть ли способ просто объявить один драйвер (называемый драйвер), который может быть приведен кAppiumdriver или Webdriver в соответствии с требованиями теста?

Я мог бы затем использовать driver.quit, и это сработало бы независимо от того, является ли тест тестом устройства или веб-тестом?

Спасибо за любую помощь.

1 Ответ

4 голосов
/ 12 марта 2019

Иерархия Selenium выглядит следующим образом. Подробнее здесь

interface Webdriver extends SearchContext{
}

class RemoteWebDriver implements Webdriver{
}

class ChromeWebDriver extends RemoteWebDriver{
}

class FirefoxWebDriver extends RemoteWebDriver{
}

Иерархия Appium выглядит следующим образом. Подробнее здесь

java.lang.Object
org.openqa.selenium.remote.RemoteWebDriver
io.appium.java_client.AppiumDriver<T>

Поэтому я предлагаю вам создать экземпляр класса RemoteWebDriver, а затем использовать его соответственно для веб (селен) и мобильных устройств (appium).

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