java - JUnit、Selenium 和拆解

标签 java junit selenium

这样的junit:

    @Test
    public void testA {
//some code here...
}

    @Test
    pulic void testB {
//some code here...
}   
    @After
    public void closeBrowsers() throws Exception {
selenium.stop();
}

问题是:在每个测试方法之后调用 closeBrowsers() 方法;在这种情况下,它被调用两次,我得到“错误的测试完成”。来自 JUnit。我需要一个 junit 方法/注释,它将在所有测试完成后调用(仅在所有测试完成后调用一次),这可能吗?

我还尝试检查 closeBrowsers() 中的 selenium 是否已启动,但我找不到 任何解决方案。

PS:我读过这个:How to close a browser on a selenium RC server which lost it's client

但我无法理解解决方案,目前也是 http://www.santiycr.com.ar/djangosite/blog/posts/2009/aug/25/close-remaining-browsers-from-selenium-rc博客端已关闭

最佳答案

您可以将 selenium 变量设为静态,在 @BeforeClass 静态方法中初始化它并在 @AfterClass 中进行清理:

public class ...... {

  private static Selenium selenium;

  @BeforeClass
  public static void initSelenium() {
     selenium = new DefaultSelenium(...); // or initialize it in any other way
  }

  @Test
  public void testA {...}

  @Test
  pulic void testB {...}

  @AfterClass
  public static void closeBrowsers() throws Exception { 
    selenium.stop(); 
  }
}

关于java - JUnit、Selenium 和拆解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3343979/

相关文章:

java - Apache Ant : NoClassDefFoundError when using Junit

selenium - 如何根据索引定位Xpath的特定节点?

python - find_element_by_class_name 类空间不起作用

java - 使用 spark 服务器进行集成测试

java - 将图像旋转到特定方向

java - 如何通过避免注册表设置来加速 Selenium/Junit 测试执行

kotlin - 在 Kotlin 中测试协程

ruby - 如何用 Selenium 滚动

java - 如何使用 Android 和 Retrofit 上传服务器中的图片?

java - 在 GridView Android 中查找元素时需要帮助