这是我的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.
答案 0 :(得分:3)
当您尝试多次关闭同一个webdriver实例时,通常会发生这种情况。你知道super.teardown()
会发生什么吗?当我检查selenium4j源时,它扩展了junit Testcase。您的super.tearDown
将调用jUnitTeardown,并会在调用closeSeleniumSession()
之前终止浏览器实例。
您可以将closeSeleniumSession()
放在super.tearDown()
之前。