Используя Java, как я могу реализовать сценарий огурца пользовательского интерфейса, который дает входные данные веб-драйверу, в то же время поддерживая способность работать локально и удаленно? - PullRequest
1 голос
/ 26 июня 2019

У меня есть файл .properties, в котором содержатся входные данные для создания экземпляра WebDriver внутри класса ServiceHooks.Как я могу изменить эту логику, чтобы использовать файл .feature огурца для передачи параметров, которые я предоставляю WebDriver, и реализации такого сценария?

Feature: Login page navigation
  Scenario Outline: User navigates to url
    Given I open the browser <browser> on operatingSystem <platform>
    When I navigate to url <url>
    Then I see the login page

    Examples:
      |browser|platform| url |
      |"firefox"|"windows"|"https://loginpage.com"|
      |"chrome"| "windows" |"https://loginpage.com"|

У меня есть некоторый код, который оценивает, является ли драйвер удаленным илинет и создает драйвер (таким образом, уже открывает браузер) до того, как будет выполнен сценарий тестирования.

public class ServiceHooks {
    public static WebDriver driver;

    public void getDriverInstance() {

    //if isRemoteDriver evaluests to true or false base on a .properties file
    if (isRemoteDriver.equals("yes")){
                driver = getRemoteDriverInstance(platform, browser, url);
            } else {
                driver = getLocalDriverInstance(platform, browser, url);        
    }


    //platform, browser, url are served from the .properties file as well

        public WebDriver getLocalDriverInstance(String platform, String browser, String url)
            throws MalformedURLException {
        WebDriver localDriver = null;
        DesiredCapabilities capabilities = new DesiredCapabilities();
        //ChromeOptions options = new ChromeOptions();

        // Platforms
        if (platform.equalsIgnoreCase("Windows")) {
            capabilities.setPlatform(Platform.WINDOWS);
        }
        if (platform.equalsIgnoreCase("MAC")) {
            capabilities.setPlatform(Platform.MAC);
        }
        // Browsers
        if (browser.equalsIgnoreCase("chrome")) {
            capabilities = DesiredCapabilities.chrome();
            localDriver = new ChromeDriver();

        }
        if (browser.equalsIgnoreCase("firefox")) {
            capabilities = DesiredCapabilities.firefox();
            localDriver = new FirefoxDriver();

        }
        if (browser.equalsIgnoreCase("ie")) {
            capabilities = DesiredCapabilities.internetExplorer();
            localDriver = new InternetExplorerDriver();

        }

        localDriver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        localDriver.manage().window().maximize();
        localDriver.get(url);
        return localDriver;

    }


        public static WebDriver getRemoteDriverInstance(String platform, String browser, String url)
            throws MalformedURLException {

        String nodeURL = "http://localhost:4444/wd/hub";

        WebDriver remoteDriver = null;
        DesiredCapabilities capabilities = new DesiredCapabilities();

        // Platforms
        if (platform.equalsIgnoreCase("Windows")) {
            capabilities.setPlatform(Platform.WINDOWS);
        }
        if (platform.equalsIgnoreCase("MAC")) {
            capabilities.setPlatform(Platform.MAC);
        }
        // Browsers
        if (browser.equalsIgnoreCase("chrome")) {
            capabilities = DesiredCapabilities.chrome();
        }
        if (browser.equalsIgnoreCase("firefox")) {
            capabilities = DesiredCapabilities.firefox();
        }
        if (browser.equalsIgnoreCase("ie")) {
            capabilities = DesiredCapabilities.internetExplorer();

        }

        // Open the Application
        remoteDriver = new RemoteWebDriver(new URL(nodeURL), capabilities);
        remoteDriver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        remoteDriver.manage().window().maximize();

        remoteDriver.get(url);

        return remoteDriver;
    }


}

Я хочу иметь возможность запускать упомянутый сценарий тестирования огурца локально, используя WebDriver, а также удаленно с Selenium Grid..

...