Огурец зовут Крючки два раза - PullRequest
0 голосов
/ 14 января 2019

Я использую огурец для моих тестовых сценариев. Во время выполнения любого сценария первый браузер запускается и остается там, другой браузер открывается, и этот браузер используется для запуска теста. После завершения теста, более поздний браузер закрывается только. Я сделал отладку, ловушка была инициирована с размером = 2 (я думаю, что это основная проблема).

[размер крючков = 2 1

Вот мои крючки

package step_definitions;

import cucumber.api.Scenario;
import cucumber.api.java.After;
import cucumber.api.java.Before;
import helpers.CommonActions;
import helpers.Constant;
import helpers.Log;
import io.github.bonigarcia.wdm.ChromeDriverManager;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

import java.net.MalformedURLException;
import java.net.URL;


public class Hooks {
protected static WebDriver driver;

@Before
public WebDriver setupDriver() {
    Log.info("Opening browser...");

    DesiredCapabilities capability = new DesiredCapabilities();
    capability.setJavascriptEnabled(true);

    String browser = System.getProperty("webdriver");

    if (browser == null || browser.equalsIgnoreCase("") || browser.equalsIgnoreCase("InternetExplorer")) {
        //InternetExplorerDriverManager.getInstance().arch32().setup();
        ChromeDriverManager.getInstance().arch64().setup();
        driver = new ChromeDriver(capability);
    } else {
        // Create Remote driver
        try {
            //capability = DesiredCapabilities.internetExplorer();
            capability = DesiredCapabilities.chrome();
            //capability.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
            driver = new RemoteWebDriver(new URL(Constant.REMOTE_DRIVER_URL), capability);
        } catch (MalformedURLException e) {
            Log.info("Cannot connect to remote driver.");
            e.printStackTrace();
        }
    }

    openHomePage();
    return driver;
}

@After
/**
 * Embed a screenshot in test report if test is marked as failed
 */
public void embedScreenshot(Scenario scenario) {
    if (scenario.isFailed()) {
        try {
            scenario.write("Current Page URL is " + driver.getCurrentUrl());
            zoomBrowser("50");
            //byte[] screenshot = getScreenshotAs(OutputType.BYTES);
            byte[] screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);
            scenario.embed(screenshot, "image/png");
            zoomBrowser("100");
        } catch (WebDriverException somePlatformsDontSupportScreenshots) {
            System.err.println(somePlatformsDontSupportScreenshots.getMessage());
        }
    }

    if (driver != null) {
        driver.manage().deleteAllCookies();
        driver.close();
        driver.quit();
    }
}

private void openHomePage() {
    driver.navigate().to(Constant.HOMEPAGE_FRONTEND);
    if(CommonActions.getCurrentOperation().contains("Mac")){
        driver.manage().window().fullscreen();
    }else{
        driver.manage().window().maximize();
    }
}

public void zoomBrowser(String percent) {
    JavascriptExecutor js = (JavascriptExecutor) driver;
    js.executeScript("document.body.style.zoom='" + percent + "%'");
}

}

...