我正在使用 Selenium 使用 Java 和 Gecko 驱动程序来抓取网站。当我在本地 Tomcat v.9 服务器上运行项目时,我可以直接获取 Gecko 驱动程序的路径。但我想要的是能够从项目文件夹中运行 Gecko exe。下图显示了项目层次结构。我已在“src”下的“resources”文件夹中添加了 exe。如何获取驱动程序的路径以在我的代码中使用它? 项目层次结构
1 回答
0
事实证明这很容易。我注意到 Catalina 基地有一个与 WEB-INF 类似的目录。所以我做了以下事情;
String catalinaBase= System.getProperty("catalina.base");所以输出是;
C:\Users\<用户>\EE Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1
这意味着我必须保持这条路径直到“.metadata”部分(不包括它)。
catalinaBase = catalinaBase.split(".metadata")[0];
然后,我通过拆分路径字符串排除了“EE 工作区”之后的任何内容。
mainPath = catalinaBase + "\\Crawler\\src\\main\\webapp\\WEB-INF\\geckodriver.exe";
我连接了我从第 2 步得到的路径字符串,我知道的其余路径是相同的。
System.setProperty("webdriver.gecko.driver",mainPath);
最后但并非最不重要的一点是,我使用我在步骤 3 中创建的最终路径字符串设置了壁虎驱动程序的系统属性。
记住。当您提取 WAR 文件时,我不知道这是否有效。对于本地 Tomcat 服务器,它可以工作。
如果有人可以让我知道当 WAR 导出并部署在真正的 Tomcat 服务器上时这是否有效,我将不胜感激。
于 2021-05-10T17:02:28.537 回答