Applitools openBase() не удалось с com.applitools.eyes.EyesException

Я не могу понять, почему этот код не работает, я просмотрел учебники по Applitools и не могу понять, что здесь происходит.

Это исключение:

com.applitools.eyes.EyesException: eyes.openBase() failed

                at com.applitools.eyes.EyesBase.openBase(EyesBase.java:1037)
                at com.applitools.eyes.selenium.SeleniumEyes.open(SeleniumEyes.java:246)
                at com.applitools.eyes.selenium.Eyes.open(Eyes.java:77)
                at com.applitools.eyes.selenium.Eyes.open(Eyes.java:1374)
                at BaseTests.validateWindow(BaseTests.java:49)
                at SearchTests.testSearchByFullTitle(SearchTests.java:11)

Это SearchTests:

import org.junit.Test;

public class SearchTests extends BaseTests {

    @Test
    public void testSearchByFullTitle(){
        String title = "Agile Testing";
        page.search(title);
        validateWindow();
    }
}

Подтвердите метод окна:

public void validateWindow(){
    eyes.open(driver, "Automation Bookstore", "neka metoda npr: "+
            Thread.currentThread().getStackTrace()[2].getMethodName());
    eyes.checkWindow();
    eyes.close();
}

и класс, бросающий исключение:

protected void openBase() throws EyesException {
    openLogger();
    int retry = 0;
    do {
        try {
            if (isDisabled) {
                logger.verbose("Ignored");
                return;
            }

            sessionEventHandlers.testStarted(getAUTSessionId());

            validateApiKey();
            logOpenBase();
            validateSessionOpen();

            initProviders();

            this.isViewportSizeSet = false;

            sessionEventHandlers.initStarted();

            beforeOpen();

            RectangleSize viewportSize = getViewportSizeForOpen();
            viewportSizeHandler.set(viewportSize);

            try {
                if (viewportSize != null) {
                    ensureRunningSession();
                }
            } catch (Exception e) {
                GeneralUtils.logExceptionStackTrace(logger, e);
                retry++;
                continue;
            }

            this.validationId = -1;

            isOpen = true;
            afterOpen();
            return;
        } catch (EyesException e) {
            logger.log(e.getMessage());
            logger.getLogHandler().close();
            throw e;
        }


    } while (MAX_ITERATION > retry);

    throw new EyesException("eyes.openBase() failed");
}

1 ответ

После некоторой отладки я обнаружил, что в моем ключе API была опечатка. После исправления все работает как положено.

В моем случае та же проблема была вызвана использованием null как ценность для testName параметр.

Я не понимал этого с самого начала, потому что полагался на javadoc для open функция:

    /**
     * Starts a test.
     *
     * @param driver   The web driver that controls the browser hosting                 the application under test.
     * @param appName  The name of the application under test.
     * @param testName The test name.                 (i.e., the visible part of the document's body) or                 {@code null} to use the current window's viewport.
     * @return A wrapped WebDriver which enables SeleniumEyes trigger recording and frame handling.
     */
    public WebDriver open(WebDriver driver, String appName, String testName) {
        RectangleSize viewportSize = SeleniumEyes.getViewportSize(driver);
        this.configuration.setAppName(appName);
        this.configuration.setTestName(testName);
        this.configuration.setViewportSize(viewportSize);
        return open(driver);
    }
Другие вопросы по тегам