Selenium WebDriver:与远程浏览器通信时出错。它可能已经死了

时间:2012-06-15 22:31:08

标签: java selenium webdriver

这是我的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.

1 个答案:

答案 0 :(得分:3)

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

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