首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.lang.IllegalStateException:眼睛没有睁开

java.lang.IllegalStateException:眼睛没有睁开
EN

Stack Overflow用户
提问于 2016-12-30 22:13:53
回答 2查看 1.4K关注 0票数 1

我对Selenium - WebDriver使用selenium java 3.0和AppliToolsEyes 2.54

代码语言:javascript
复制
<dependency>
            <groupId>com.applitools</groupId>
            <artifactId>eyes-selenium-java</artifactId>
            <version>2.54</version>
</dependency>

对于视觉测试,编写了以下代码-

代码语言:javascript
复制
private WebDriver driver;
private Eyes eyes;
private static final String url = "http://www.google.com";

@BeforeClass
public void setUp(){
    eyes = new Eyes();
    System.setProperty("webdriver.gecko.driver", System.getProperty("user.dir") + "//src//test//resources//geckodriver.exe");
    driver = new FirefoxDriver();
    driver.manage().window().maximize();
}

@AfterClass
public void tearDown(){
    eyes.abortIfNotClosed();
    driver.quit();
}

@Test
public void visualTest(){ 
    eyes.checkWindow();
    driver.get(url);
    eyes.checkWindow();
    eyes.close();
}

但在运行eyes.checkWindow()的代码时出现以下错误

java.lang.IllegalStateException: Eyes not open at com.applitools.utils.ArgumentGuard.isValidState(ArgumentGuard.java:117) at com.applitools.eyes.EyesBase.checkWindowBase(EyesBase.java:977) at com.applitools.eyes.Eyes.checkWindow(Eyes.java:359) at com.applitools.eyes.Eyes.checkWindow(Eyes.java:335) at com.applitools.eyes.Eyes.checkWindow(Eyes.java:325)

EN

回答 2

Stack Overflow用户

发布于 2016-12-30 23:35:32

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

来自他们的SDK:driver = eyes.open(driver, appName, testName, viewportSize);是初始化Eyes的合适方式。

查看他们的SDK以获得更多帮助:https://applitools.atlassian.net/wiki/display/Java/SDK+Guide

票数 2
EN

Stack Overflow用户

发布于 2017-01-01 18:12:40

为了解决这个问题,你需要在检查窗口之前睁开眼睛。

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

代码语言:javascript
复制
@Test
public void visualTest(){ 
    driver = eyes.open(driver, appName, testName, new RectangleSize(width, height));
    eyes.checkWindow();
    driver.get(url);
    eyes.checkWindow();
    eyes.close();
}

或者,添加一个JUnit规则,它将分别为每个测试打开眼睛:

代码语言:javascript
复制
@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测试中设置视口大小的更多信息,请查看this article,或联系support@applitools.com

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41397669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档