Selenium Wire日志空

时间:2017-12-01 15:13:10

标签: java selenium tomcat logging classloader

我们最近将项目转变为更加模块化。

我们正在使用selenium和jbrowserdriver来从页面中抓取数据。

我们正在使用Spring Boot和Tomcat。

以前,我们有一个war文件,我们部署到tomcat,并打包了所有的类文件。我们使用带有线路日志的jbrowserdriver来在会话期间捕获标题并且它运行良好。

但是,我们现在已经分离出了一些功能,看起来我们正在运行tomcat中不同的类加载器问题。

我们的系统布局如下:

/companyDir
+ -- /libs
| + -- core.jar
| + -- /widgets
| | + -- widgetA.jar
| | + -- widgetB.jar

Tomcat配置为在其shared.loader属性中包含/libs/*.jar和/libs/widgets/*.jar。这些jar文件包含在tomcat start中。

然后我们部署一个文件project.war,它有Spring依赖项和控制器端点。

但是,现在当我们调用端点并且端点执行widgetA.jar时,有线日志完全为空。我们看到有线日志显示在catalina.out中,但是调用driver.manage().logs().get("wire")显示为空。我不确定如何配置这个,以便我们的webdriver中的内部日志充满了我们显然正在回来的有线日志。

我可能只是在类加载器问题上模糊,因为这似乎是问题所在。

1 个答案:

答案 0 :(得分:0)

因此,通过使用Context Resources,我们能够重新捕获日志。

在正在部署的project.war的/src/main/webapp/META-INF/context.xml中,我们可以指定“JarResources”资源并使jar可用于同一个类加载器。田田,问题解决了。

这是context.xml的布局:

<?xml version="1.0" encoding="UTF-8"?>

<Context path="/ourApp" docBase="/ourApp">
    <Resources>
        <PreResources className="org.apache.catalina.webresources.DirResourceSet"
            base="/path/to/our/configFiles/"
            webAppMount="/WEB-INF/classes" />
        <JarResources className="org.apache.catalina.webresources.DirResourceSet"
            base="/path/to/our/jars/libs"
            webAppMount="/WEB-INF/lib" />
        <JarResources className="org.apache.catalina.webresources.DirResourceSet"
            base="/path/to/our/jars/libs/widgets"
            webAppMount="/WEB-INF/lib" />
    </Resources>
</Context>