Java 从输出控制台检索cucumber场景日志(cucumber jvm junit)

Java 从输出控制台检索cucumber场景日志(cucumber jvm junit),java,selenium,logging,cucumber,cucumber-junit,Java,Selenium,Logging,Cucumber,Cucumber Junit,我想从stdout控制台恢复执行日志,并将它们放在一个文件中 我正在搜索cucumber report在测试运行结束时生成的html文件中打印的信息。。。。但我找不到一种方法将所有日志从记录器导出到外部文件(txt、pdf…) 例如,在控制台和html报告中报告此错误的失败场景中 Given I am a "valid" user in the platform1m 35s 862ms org.openqa.selenium.NoSuchElementException: T

我想从stdout控制台恢复执行日志,并将它们放在一个文件中

我正在搜索cucumber report在测试运行结束时生成的html文件中打印的信息。。。。但我找不到一种方法将所有日志从记录器导出到外部文件(txt、pdf…)

例如,在控制台和html报告中报告此错误的失败场景中

Given I am a "valid" user in the platform1m 35s 862ms
org.openqa.selenium.NoSuchElementException: Timed out after 10 seconds. Unable to locate the element
org.openqa.selenium.NoSuchElementException: Timed out after 10 seconds. Unable to locate the element
    at org.openqa.selenium.support.pagefactory.AjaxElementLocator.findElement(AjaxElementLocator.java:99)
    at org.openqa.selenium.support.pagefactory.internal.LocatingElementHandler.invoke(LocatingElementHandler.java:38)
    at com.sun.proxy.$Proxy34.getText(Unknown Source)
    at com.support.framework.base.AbstractBase.elementToBeClickable(AbstractBase.java:292)
    at com.selenium.test.bussinesSteps.loginPageBS.LoginPageBS.doLogin(LoginPageBS.java:57)
    at com.selenium.test.bussinesSteps.loginPageBS.LoginPageBS$$FastClassBySpringCGLIB$$648c745e.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:669)
    at com.selenium.test.bussinesSteps.loginPageBS.LoginPageBS$$EnhancerBySpringCGLIB$$1699bd8b.doLogin(<generated>)
    at com.selenium.test.stepdefs.loginPage.LoginPageStepDefs.iAmAUserInThePlatform(LoginPageStepDefs.java:104)
    at ✽.I am a "valid" user in the platform (classpath:features/accessMenu/AccessMenu.feature:9)
Caused by: org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"div.ok-select"}
  (Session info: chrome=85.0.4183.102)
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'ip-192-168-1-84.eu-west-1.compute.internal', ip: 'fe80:0:0:0:82d:af0d:dc23:636a%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.15.6', java.version: '1.8.0_251'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: true, browserName: chrome, browserVersion: 85.0.4183.102, chrome: {chromedriverVersion: 85.0.4183.87 (cd6713ebf92fa..., userDataDir: /var/folders/qd/w614x_7s7ng...}, goog:chromeOptions: {debuggerAddress: localhost:51737}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: none, platform: MAC, platformName: MAC, proxy: Proxy(), setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:virtualAuthenticators: true}
Session ID: cf6269886277f3598dc16697c0f479c5
*** Element info: {Using=css selector, value=div.ok-select}
    at sun.reflect.GeneratedConstructorAccessor26.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187)
    at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122)
    at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
    at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:323)
    at org.openqa.selenium.remote.RemoteWebDriver.findElementByCssSelector(RemoteWebDriver.java:420)
    at org.openqa.selenium.By$ByCssSelector.findElement(By.java:431)
    at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:315)
    at org.openqa.selenium.support.pagefactory.DefaultElementLocator.findElement(DefaultElementLocator.java:69)
    at org.openqa.selenium.support.pagefactory.AjaxElementLocator.access$001(AjaxElementLocator.java:39)
    at org.openqa.selenium.support.pagefactory.AjaxElementLocator$SlowLoadingElement.isLoaded(AjaxElementLocator.java:165)
    at org.openqa.selenium.support.ui.SlowLoadableComponent.get(SlowLoadableComponent.java:72)
    at org.openqa.selenium.support.pagefactory.AjaxElementLocator.findElement(AjaxElementLocator.java:95)
    at org.openqa.selenium.support.pagefactory.internal.LocatingElementHandler.invoke(LocatingElementHandler.java:38)
    at com.sun.proxy.$Proxy34.getText(Unknown Source)
    at com.support.framework.base.AbstractBase.elementToBeClickable(AbstractBase.java:292)
    at com.selenium.test.bussinesSteps.loginPageBS.LoginPageBS.doLogin(LoginPageBS.java:57)
    at com.selenium.test.bussinesSteps.loginPageBS.LoginPageBS$$FastClassBySpringCGLIB$$648c745e.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:669)
    at com.selenium.test.bussinesSteps.loginPageBS.LoginPageBS$$EnhancerBySpringCGLIB$$1699bd8b.doLogin(<generated>)
    at com.selenium.test.stepdefs.loginPage.LoginPageStepDefs.iAmAUserInThePlatform(LoginPageStepDefs.java:104)
    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 io.cucumber.java.Invoker.invoke(Invoker.java:27)
    at io.cucumber.java.JavaStepDefinition.execute(JavaStepDefinition.java:27)
    at io.cucumber.core.runner.PickleStepDefinitionMatch.runStep(PickleStepDefinitionMatch.java:63)
    at io.cucumber.core.runner.TestStep.executeStep(TestStep.java:64)
    at io.cucumber.core.runner.TestStep.run(TestStep.java:49)
    at io.cucumber.core.runner.PickleStepTestStep.run(PickleStepTestStep.java:46)
    at io.cucumber.core.runner.TestCase.run(TestCase.java:51)
    at io.cucumber.core.runner.Runner.runPickle(Runner.java:67)
    at io.cucumber.junit.PickleRunners$NoStepDescriptions.run(PickleRunners.java:149)
    at io.cucumber.junit.FeatureRunner.runChild(FeatureRunner.java:83)
    at io.cucumber.junit.FeatureRunner.runChild(FeatureRunner.java:24)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at io.cucumber.junit.Cucumber.runChild(Cucumber.java:185)
    at io.cucumber.junit.Cucumber.runChild(Cucumber.java:83)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at io.cucumber.junit.Cucumber$RunCucumber.evaluate(Cucumber.java:219)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:377)
    at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:138)
    at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:465)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:451)
假设我是平台1M 35s 862ms中的“有效”用户
org.openqa.selenium.NoSuchElementException:10秒后超时。找不到该元素
org.openqa.selenium.NoSuchElementException:10秒后超时。找不到该元素
位于org.openqa.selenium.support.pagefactory.AjaxElementLocator.findElement(AjaxElementLocator.java:99)
位于org.openqa.selenium.support.pagefactory.internal.LocatingElementHandler.invoke(LocatingElementHandler.java:38)
位于com.sun.proxy.$Proxy34.getText(未知源)
位于com.support.framework.base.AbstractBase.elementToBeClickable(AbstractBase.java:292)
位于com.selenium.test.bussinesSteps.loginPageBS.loginPageBS.doLogin(loginPageBS.java:57)
位于com.selenium.test.bussinesSteps.loginPageBS.loginPageBS$$FastClassBySpringCGLIB$$648c745e.invoke()
位于org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
位于org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:669)
在com.selenium.test.bussinesSteps.loginPageBS.loginPageBS$$EnhancerBySpringCGLIB$$1699bd8b.doLogin()上
位于com.selenium.test.stepdefs.loginPage.LoginPageStepDefs.iAmAUserInThePlatform(LoginPageStepDefs.java:104)
在✽.我是平台中的“有效”用户(类路径:features/accessMenu/accessMenu.feature:9)
原因:org.openqa.selenium.NoSuchElementException:无此类元素:无法定位元素:{“方法”:“css选择器”,“选择器”:“div.ok-select”}
(会话信息:chrome=85.0.4183.102)
有关此错误的文档,请访问:https://www.seleniumhq.org/exceptions/no_such_element.html
构建信息:版本:“3.141.59”,修订版:“e82be7d358”,时间:“2018-11-14T08:17:03”
系统信息:主机:'ip-192-168-1-84.eu-west-1.compute.internal',ip:'fe80:0:0:0:82d:af0d:dc23:636a%en0',os.name:'Mac os X',os.arch:'x86_64',os.version:'10.15.6',java.version:'1.8.0\u 251'
驱动程序信息:org.openqa.selenium.chrome.ChromeDriver
功能{AcceptSecureCerts:true,browserName:chrome,browserVersion:85.0.4183.102,chrome:{chromedriverVersion:85.0.4183.87(cd6713ebf92fa…,userDataDir:/var/folders/qd/w614x_7S7S7NG…),goog:chromeOptions:{调试地址:本地主机:51737},javascriptEnabled:true,networkConnectionEnabled:false,pageLoadStrategy:none,platform:MAC,platformName:MAC,proxy:proxy(),setWindowRect:true,StrictFileInteractibility:false,超时:{隐式:0,pageLoad:300000,脚本:30000},未经处理的PromptBehavior:Disease and notify,webauthn:virtualAuthenticators:true}
会话ID:cf6269886277f3598dc16697c0f479c5
***元素信息:{Using=css选择器,value=div.ok-select}
位于sun.reflect.GeneratedConstructorAccessor26.newInstance(未知源)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:423)
位于org.openqa.selenium.remote.http.w3chttprosecodec.createException(w3chttprosecodec.java:187)
在org.openqa.selenium.remote.http.w3chttrpresponsecodec.decode(w3chttrpresponsecodec.java:122)
位于org.openqa.selenium.remote.http.w3chttprosecodec.decode(w3chttprosecodec.java:49)
位于org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
位于org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
位于org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
位于org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:323)
位于org.openqa.selenium.remote.RemoteWebDriver.findElementByCssSelector(RemoteWebDriver.java:420)
位于org.openqa.selenium.By$ByCssSelector.findelelement(By.java:431)
位于org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:315)
位于org.openqa.selenium.support.pagefactory.DefaultElementLocator.findElement(DefaultElementLocator.java:69)
位于org.openqa.selenium.support.pagefactory.ajaxementLocator.access$001(ajaxementLocator.java:39)
位于org.openqa.selenium.support.pagefactory.ajaxementLocator$SlowLoadingElement.isLoaded(ajaxementLocator.java:165)
位于org.openqa.selenium.support.ui.SlowLoadableComponent.get(SlowLoadableComponent.java:72)
位于org.openqa.selenium.support.pagefactory.ajaxementLocator.findelelement(ajaxementLocator.java:95)
位于org.openqa.selenium.support.pagefactory.internal.LocatingElementHandler.invoke(LocatingElementHandler.java:38)
位于com.sun.proxy.$Proxy34.getText(未知源)
位于com.support.framework.base.AbstractBase.elementToBeClickable(AbstractBase.java:292)
位于com.selenium.test.bussinesSteps.loginPageBS.loginPageBS.doLogin(loginPageBS.java:57)
位于com.selenium.test.bussinesSteps.loginPageBS.loginPageBS$$FastClassBySpringCGLIB$$648c745e.invoke()
位于org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
位于org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:669)
在com.selenium.test.bussinesSteps.loginPageBS.loginPageBS$$EnhancerBySpringCGLIB$$1699bd8b.doLogin()上
位于com.selenium.test.stepdefs.loginPage.LoginPageStepDefs.iAmAUserInThePlatform(LoginPageStepDefs.java:104)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
A.