成功执行测试后,硒测试将引发错误

时间:2018-07-18 03:04:36

标签: java selenium testng selenium-chromedriver

执行测试后,我得到一个错误,该错误主要来自第二次执行时间。我也尝试了最新的硒版本(3.13)和最新的chrome驱动程序(2.40)。

注意:测试一直持续到昨天,我从今天开始注意到此问题。

以下是用于关闭驱动程序的代码。

WebDriver driver = WebDriverFactory.getDriver();
   if (driver != null) {
      System.out.println("Base Class's AfterClass started to quit the driver....");
      driver.quit();
   }

我得到的异常如下:

Jul 17, 2018 8:48:33 PM org.openqa.selenium.os.OsProcess destroy
INFO: Unable to drain process streams. Ignoring but the exception being swallowed follows.
org.apache.commons.exec.ExecuteException: The stop timeout of 2000 ms was exceeded (Exit value: -559038737)
    at org.apache.commons.exec.PumpStreamHandler.stopThread(PumpStreamHandler.java:295)
    at org.apache.commons.exec.PumpStreamHandler.stop(PumpStreamHandler.java:181)
    at org.openqa.selenium.os.OsProcess.destroy(OsProcess.java:135)
    at org.openqa.selenium.os.CommandLine.destroy(CommandLine.java:153)
    at org.openqa.selenium.remote.service.DriverService.stop(DriverService.java:222)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:95)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:600)
    at org.openqa.selenium.remote.RemoteWebDriver.quit(RemoteWebDriver.java:443)
    at commontestbase.ClientTestBase.tearDownAfterMethod(ClientTestBase.java:62)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
    at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:59)
    at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:455)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:222)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:643)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:716)
    at org.testng.internal.TestMethodWithDataProviderMethodWorker.call(TestMethodWithDataProviderMethodWorker.java:71)
    at org.testng.internal.TestMethodWithDataProviderMethodWorker.call(TestMethodWithDataProviderMethodWorker.java:14)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

Jul 17, 2018 8:48:33 PM org.openqa.selenium.os.OsProcess destroy
SEVERE: Unable to kill process java.lang.ProcessImpl@1970552
Base AfterMethod started....
Base AfterMethod started to quit the driver....


----------


Default Suite
Total tests run: 2, Failures: 0, Skips: 0


----------

1 个答案:

答案 0 :(得分:0)

我认为问题可能在于您的驱动程序进程没有被杀死。 您可以尝试使用taskkill命令或使用TaskManager手动杀死进程来杀死它们(chromedriver.exe或geckodriver.exe或IEDriverServer.exe)。

例如。

taskkill /f /im chromedriver-2.35.exe /im geckodriver-v0.19.1.exe /im IEDriverServer.exe

可能对您有帮助。