如何在动态 Web 应用程序中使用 Gecko 驱动程序
How to use Gecko driver in Dynamic Web Application
我正在使用 Selenium 抓取使用 Java 和 Gecko 驱动程序的网站。当我 运行 本地 Tomcat v.9 服务器上的项目时,我能够直接获取 Gecko 驱动程序的路径。但我想要的是能够从项目文件夹中 运行 Gecko exe。下图显示了项目层次结构。我已经在“src”下的“资源”文件夹中添加了exe。如何获取驱动程序的路径以在我的代码中使用它?
Project hierarchy
事实证明这很容易。我注意到 Catalina base 的目录与 WEB-INF 所在的目录相似。所以我做了以下事情;
String catalinaBase= System.getProperty("catalina.base");
所以输出是;
C:\Users\<user>\EE
Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1
这意味着我必须保留这个 Path 直到“.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 中创建的最终路径字符串为 gecko 驱动程序设置了系统 属性。
切记。当您提取 WAR 文件时,我不知道这是否有效。对于本地 Tomcat 服务器,它将工作。
If someone can let me know if this works when a WAR is exported and
deployed on a real Tomcat server I would appreciate it.
我正在使用 Selenium 抓取使用 Java 和 Gecko 驱动程序的网站。当我 运行 本地 Tomcat v.9 服务器上的项目时,我能够直接获取 Gecko 驱动程序的路径。但我想要的是能够从项目文件夹中 运行 Gecko exe。下图显示了项目层次结构。我已经在“src”下的“资源”文件夹中添加了exe。如何获取驱动程序的路径以在我的代码中使用它? Project hierarchy
事实证明这很容易。我注意到 Catalina base 的目录与 WEB-INF 所在的目录相似。所以我做了以下事情;
String catalinaBase= System.getProperty("catalina.base");
所以输出是;
C:\Users\<user>\EE Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1
这意味着我必须保留这个 Path 直到“.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 中创建的最终路径字符串为 gecko 驱动程序设置了系统 属性。
切记。当您提取 WAR 文件时,我不知道这是否有效。对于本地 Tomcat 服务器,它将工作。
If someone can let me know if this works when a WAR is exported and deployed on a real Tomcat server I would appreciate it.