简体   繁体   中英

Applitools openBase() failed with com.applitools.eyes.EyesException

I'm unable to figure out why is this code failing, I browsed through Applitools tutorials and I can't figure out what is happening here.

This is the exception being thrown:

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)

This is SearchTests:

import org.junit.Test;

public class SearchTests extends BaseTests {

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

Validate window method:

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

and the class throwing the exception:

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");
}

After some debugging, I found that I had a typo in my API key. After fixing that, works as expected.

In my case, the same issue was caused by using null as a value for the testName parameter.

I didn't understand it from the beginning, cause I relied on the javadoc for the open function:

    /**
     * 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);
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM