Selenium java.lang.IllegalStateException:眼睛未睁开
我正在为SeleniumJava使用SeleniumWebDriver 3.0和Applitoolseys 2.54Selenium 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>
<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) );
}
};