Selenium Wire 日志为空
Selenium Wire Logs Empty
我们最近将项目改为更加模块化。
我们使用 selenium 和 jbrowserdriver 从页面抓取数据。
我们正在使用 Spring 引导 Tomcat。
以前,我们有一个 war 文件部署到 tomcat,所有 class 文件都打包了。我们在 session 期间使用带有线路日志的 jbrowserdriver 来捕获 headers,并且效果很好。
但是,我们现在已经分离出一些功能,看起来我们在 tomcat.
中遇到了 运行 不同的 classloader 问题
我们的系统布局如下:
/companyDir
+ -- /libs
| + -- core.jar
| + -- /widgets
| | + -- widgetA.jar
| | + -- widgetB.jar
Tomcat 配置为在其 shared.loader 属性 中包含 /libs/*.jar 和 /libs/widgets/*.jar。这些 jar 文件包含在 tomcat 开头。
然后我们部署一个文件 project.war,其中包含 Spring 依赖项和控制器端点。
但是,现在当我们调用端点并且端点执行 widgetA.jar 时,线路日志完全为空。我们看到线路日志显示在 catalina.out 中,但调用 driver.manage().logs().get("wire")
显示为空。我不确定如何配置它,以便我们的 webdriver 中的内部日志充满我们显然要返回的线路日志。
我可能只是对 class 加载程序问题感到模糊,因为这似乎是问题所在。
因此,通过使用上下文资源,我们能够重新捕获日志。
在 /src/main/webapp/META-INF/context.xml 中,对于正在部署的 project.war,我们可以指定一个 "JarResources" 资源并使 jars 可用于同一个类加载器。多田,问题解决了。
这是 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>
我们最近将项目改为更加模块化。
我们使用 selenium 和 jbrowserdriver 从页面抓取数据。
我们正在使用 Spring 引导 Tomcat。
以前,我们有一个 war 文件部署到 tomcat,所有 class 文件都打包了。我们在 session 期间使用带有线路日志的 jbrowserdriver 来捕获 headers,并且效果很好。
但是,我们现在已经分离出一些功能,看起来我们在 tomcat.
中遇到了 运行 不同的 classloader 问题我们的系统布局如下:
/companyDir
+ -- /libs
| + -- core.jar
| + -- /widgets
| | + -- widgetA.jar
| | + -- widgetB.jar
Tomcat 配置为在其 shared.loader 属性 中包含 /libs/*.jar 和 /libs/widgets/*.jar。这些 jar 文件包含在 tomcat 开头。
然后我们部署一个文件 project.war,其中包含 Spring 依赖项和控制器端点。
但是,现在当我们调用端点并且端点执行 widgetA.jar 时,线路日志完全为空。我们看到线路日志显示在 catalina.out 中,但调用 driver.manage().logs().get("wire")
显示为空。我不确定如何配置它,以便我们的 webdriver 中的内部日志充满我们显然要返回的线路日志。
我可能只是对 class 加载程序问题感到模糊,因为这似乎是问题所在。
因此,通过使用上下文资源,我们能够重新捕获日志。
在 /src/main/webapp/META-INF/context.xml 中,对于正在部署的 project.war,我们可以指定一个 "JarResources" 资源并使 jars 可用于同一个类加载器。多田,问题解决了。
这是 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>