gpt4 book ai didi

java - Selenium Wire 日志为空

转载 作者:行者123 更新时间:2023-11-28 21:52:58 40 4
gpt4 key购买 nike

我们最近将我们的项目改为更加模块化。

我们使用 selenium 和 jbrowserdriver 从页面抓取数据。

我们将 Spring Boot 与 Tomcat 结合使用。

以前,我们只有一个部署到 tomcat 的 war 文件,所有的类文件都打包了。我们使用带有线路日志的 jbrowserdriver 在 session 期间捕获 header ,它运行良好。

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

我们的系统布局如下:

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

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

然后我们部署一个包含 Spring 依赖项和 Controller 端点的文件 project.war。

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

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

最佳答案

因此,通过使用上下文资源,我们能够重新捕获日志。

在正在部署的 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>

关于java - Selenium Wire 日志为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47596291/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com