这是我的Selenium浏览器测试类(派生的类,但应该不难理解它在做什么)。当我运行测试用例时,所有交互都按预期发生。但是最后,测试用例的结果显示失败。

package dmswebui.CR;

import org.infineta.webui.selenium4j.MainTestCase;

public class TestLogin extends MainTestCase {

  @Override
  public void setUp() throws Exception {
    super.setUp();
    startSeleniumSession("ChromeDriver", "http://192.168.8.207/");
  }

  public void testMethod() throws Exception {

        session().open("/");
        session().type("name=user","admin");
        session().type("name=password","infineta123");
        session().click("id=btnLogin-button");      session().waitForPageToLoad("30000");
        session().click("id=btnUserLogout-button");
        session().click("id=yui-gen0-button");      session().waitForPageToLoad("30000");
  }
  public void tearDown() throws Exception {
        super.tearDown();
        closeSeleniumSession();
  }
}

我得到的错误是:
Testcase: testMethod took 13.939 sec
Caused an ERROR
Error communicating with the remote browser. It may have died.

最佳答案

当您尝试多次关闭同一webdriver实例时,通常会发生这种情况。您知道super.teardown()中会发生什么吗?当我检查selenium4j源时,它扩展了junit Testcase。您的super.tearDown将调用jUnitTeardown,并在调用closeSeleniumSession()之前终止浏览器实例。

您可以将closeSeleniumSession()放在super.tearDown()之前。

10-07 17:05