1

我正在使用 Selenium 使用 Java 和 Gecko 驱动程序来抓取网站。当我在本地 Tomcat v.9 服务器上运行项目时,我可以直接获取 Gecko 驱动程序的路径。但我想要的是能够从项目文件夹中运行 Gecko exe。下图显示了项目层次结构。我已在“src”下的“resources”文件夹中添加了 exe。如何获取驱动程序的路径以在我的代码中使用它? 项目层次结构

4

1 回答 1

0

事实证明这很容易。我注意到 Catalina 基地有一个与 WEB-INF 类似的目录。所以我做了以下事情;

  1. String catalinaBase= System.getProperty("catalina.base");

    所以输出是;

C:\Users\<用户>\EE Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1

这意味着我必须保持这条路径直到“.metadata”部分(不包括它)。

  1. catalinaBase = catalinaBase.split(".metadata")[0];

然后,我通过拆分路径字符串排除了“EE 工作区”之后的任何内容。

  1. mainPath = catalinaBase + "\\Crawler\\src\\main\\webapp\\WEB-INF\\geckodriver.exe";

我连接了我从第 2 步得到的路径字符串,我知道的其余路径是相同的。

  1. System.setProperty("webdriver.gecko.driver",mainPath);

最后但并非最不重要的一点是,我使用我在步骤 3 中创建的最终路径字符串设置了壁虎驱动程序的系统属性。

记住。当您提取 WAR 文件时,我不知道这是否有效。对于本地 Tomcat 服务器,它可以工作。

如果有人可以让我知道当 WAR 导出并部署在真正的 Tomcat 服务器上时这是否有效,我将不胜感激。

于 2021-05-10T17:02:28.537 回答