背景/设置:
我在JUnit中有一堆测试类。全部通过Maven和Eclipse配置。每个测试类都实例化一个RemoteWebDriver实例,并在测试类完成执行后在tearDown方法中退出。
当我尝试通过执行“mvn clean install”运行所有测试时,一些测试执行得很好,但其余的都因为以下异常(stacktrace)而失败:
Tests in error:
com.tagged.qa.selenium.tests.gifts.GiftsPageTest: Error communicating with the remote browser. It may have died.(..)
com.tagged.qa.selenium.tests.tags.TagsPageTest: Error communicating with the remote browser. It may have died.(..)
addFriendsTest(com.tagged.qa.selenium.tests.friends.FriendsTest): Error communicating with the remote browser. It may have died.(..)
deleteFriendsTest(com.tagged.qa.selenium.tests.friends.FriendsTest): Error communicating with the remote browser. It may have died.(..)
com.tagged.qa.selenium.tests.statusupdates.StatusUpdatesTest: Error communicating with the remote browser. It may have died.(..)
com.tagged.qa.selenium.tests.comments.CommentsTest: Error communicating with the remote browser. It may have died.(..)
com.tagged.qa.selenium.tests.search.SearchPageTest: Error communicating with the remote browser. It may have died.(..)
com.tagged.qa.selenium.tests.homepage.HomePageTest: Error communicating with the remote browser. It may have died.(..)
com.tagged.qa.selenium.tests.wink.WinkPageTest: Error communicating with the remote browser. It may have died.(..)
com.tagged.qa.selenium.tests.profile.ProfilePageTest: Error communicating with the remote browser. It may have died.(..)
com.tagged.qa.selenium.tests.footerpagestests.TermsOfServiceTest: Error communicating with the remote browser. It may have died.(..)
Tests run: 18, Failures: 0, Errors: 11, Skipped: 0
检查target / surefire-reports /中的日志是否有失败导致我这样做:
org.openqa.selenium.remote.UnreachableBrowserException: Error communicating with the remote browser. It may have died.
Caused by: org.openqa.selenium.WebDriverException: Session ID may not be null.
当测试执行正在进行时,我注意到浏览器(在我的情况下是firefox)试图打开但是在一秒钟内退出。 Selenium服务器记录没有会话ID。它尝试了几次并退出尝试。之后,管道中的所有其他测试由于相同的原因而失败。
令人困惑的是,当我尝试单独运行这些测试时,这个问题不会发生,但是当我尝试使用maven一起运行所有这些时,这种情况一直发生。请帮忙吗?
答案 0 :(得分:0)
我不知道这是否会有所帮助,但是我无法通过maven使用任何超过3.x的firefox版本(来自我使用的内存3.18)。使用更高版本时,我出现了症状。
我尝试了一切,但承认失败,只是安装和使用旧版本。
至少我们的硒测试工作正常,我们继续做实际的工作。
答案 1 :(得分:0)
我不确定,但通常当我在运行一组测试时看到事情失败,并且在我进行单一测试时通过时,匪徒通常是:
1)线程问题。这些测试是多线程的吗?如果是这样,可能存在某种资源争用。
2)tearDown问题。在tearDown中是否发生了一些事情,导致浏览器处于不良状态,导致新浏览器无法正常启动?
抱歉,我没有更多的帮助,我不使用Maven和Eclipse来推动我的Selenium测试。
答案 2 :(得分:0)
在我的这段代码中遇到同样的问题。
WebDriver augmentedDriver;
if(BrowserConfig.getHubURL().equalsIgnoreCase("none"))
augmentedDriver = getDriver();
else augmentedDriver = new Augmenter().augment(getDriver());
LOGGER.info("Just before capture: ");
LOGGER.info(augmentedDriver.toString());
byte[] screenshot = ((TakesScreenshot) augmentedDriver).getScreenshotAs(OutputType.BYTES);
想象出在启动画面之前,在流程中调用了driver.quit()。这个b