gpt4 book ai didi

java - 如何从类路径加载 ChromeDriver 二进制文件?

转载 作者:搜寻专家 更新时间:2023-11-01 03:21:17 25 4
gpt4 key购买 nike

许多资源都提到了从类路径加载 ChromeDriver 二进制文件,但我还没有弄清楚如果二进制文件不在类路径根目录中该怎么做。

要指定二进制文件的路径,您似乎必须设置系统属性“webdriver.chrome.driver”。首先我尝试了:

System.setProperty("webdriver.chrome.driver", "drivers/Chrome/chromedriver.exe");

但是我得到了一个错误,它似乎正在寻找位于 "C:\<working directory of my application process>\drivers\Chrome\chromedriver.exe" 的驱动程序。 .这里的工作目录其实就是我的源代码所在的目录。

然后我尝试了:

System.setProperty("webdriver.chrome.driver", "/drivers/Chrome/chromedriver.exe");

然而,同样的事情发生了 - 这次它正在寻找 "C:\drivers\Chrome\chromedriver.exe" .

在使用“webdriver.chrome.driver”属性或任何其他配置方式时,如何让 ChromeDriver 在类路径中查找 ChromeDriver 二进制文件?

最佳答案

最终,我发现 ChromeDriver 不支持对其二进制文件的类路径相对访问。但是,您可以将类路径相对字符串转换为系统路径,然后直接加载它,绕过系统属性。

URL url = this.getClass().getClassLoader().getResource(classpathRelativeLocation);
File file = new File(url.getFile()); // Strangely, URL.getFile does not return a File
ChromeDriverService.Builder bldr = (new ChromeDriverService.Builder())
.usingDriverExecutable(file)
.usingAnyFreePort();
ChromeDriver driver = new ChromeDriver(bldr.build());

关于java - 如何从类路径加载 ChromeDriver 二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30062960/

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