Selenium java.lang.IllegalStateException:眼睛未睁开

Selenium java.lang.IllegalStateException:眼睛未睁开,selenium,selenium-webdriver,visual-testing,applitools,Selenium,Selenium Webdriver,Visual Testing,Applitools,我正在为SeleniumJava使用SeleniumWebDriver 3.0和Applitoolseys 2.54 <dependency> <groupId>com.applitools</groupId> <artifactId>eyes-selenium-java</artifactId> <version>2.54</version>

我正在为SeleniumJava使用SeleniumWebDriver 3.0和Applitoolseys 2.54

<dependency>
            <groupId>com.applitools</groupId>
            <artifactId>eyes-selenium-java</artifactId>
            <version>2.54</version>
</dependency>
但是在为
eyes.checkWindow()运行代码时出现以下错误

java.lang.IllegalStateException:眼睛未睁开
位于com.applitools.utils.ArgumentGuard.isValidState(ArgumentGuard.java:117)
在com.applitools.eyes.EyesBase.checkWindowBase上(EyesBase.java:977)
在com.applitools.eyes.eyes.checkWindow上(eyes.java:359)
在com.applitools.eyes.eyes.checkWindow上(eyes.java:335)

在com.applitools.eyes.eyes.checkWindow(eyes.java:325)

中,您需要使用
eyes.open()
方法。然后在open方法中传递webdriver等,以及初始化
眼睛的其他参数

从他们的SDK:
driver=eyes.open(driver、appName、testName、viewportSize)是初始化眼睛的正确方法


查看他们的SDK以获取更多帮助:

为了解决此问题,您需要在检查窗口之前睁开眼睛

一种方法是在测试开始时添加以下行,如下所示:

@Test
public void visualTest(){ 
    driver = eyes.open(driver, appName, testName, new RectangleSize(width, height));
    eyes.checkWindow();
    driver.get(url);
    eyes.checkWindow();
    eyes.close();
}
或者添加JUnit规则,该规则将为每个测试分别打开眼睛:

@Rule
    public TestWatcher watcher = new TestWatcher() {
        protected void starting(Description description) {
            eyes.open(driver, appName, description.getMethodName(), new RectangleSize(width, height) );
        }
    };
关于另一件事,我在你的测试中看到你在打电话: driver.manage().window().maximize() 这种设置浏览器大小的方法可能会导致不稳定的视觉测试-您应该在睁眼时指定视口大小

有关更多信息,请查看有关在Applitools测试中设置视口大小的信息,或联系support@applitools.com

@Rule
    public TestWatcher watcher = new TestWatcher() {
        protected void starting(Description description) {
            eyes.open(driver, appName, description.getMethodName(), new RectangleSize(width, height) );
        }
    };