Google chrome 仅当二进制文件不在标准位置时,Selenium才设置chrome二进制文件
看这里 我发现,如果chrome二进制文件位于非标准位置,我们可以将其设置为:Google chrome 仅当二进制文件不在标准位置时,Selenium才设置chrome二进制文件,google-chrome,selenium,Google Chrome,Selenium,看这里 我发现,如果chrome二进制文件位于非标准位置,我们可以将其设置为: ChromeOptions options = new ChromeOptions(); options.setBinary("/path/to/other/chrome/binary"); 我有一种情况,一台机器在标准位置有二进制文件,而另一台机器没有有没有办法检查chrome二进制文件是否在标准位置?这样,我只会在不在标准位置时设置二进制文件 我当前的解决方法是使用异常: try { ChromeOpt
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
我有一种情况,一台机器在标准位置有二进制文件,而另一台机器没有有没有办法检查chrome二进制文件是否在标准位置?这样,我只会在不在标准位置时设置二进制文件
我当前的解决方法是使用异常:
try {
ChromeOptions options = new ChromeOptions();
} catch (WebDriverException e) {
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
}
但我仍然好奇chrome驱动程序如何知道标准二进制路径在哪里。第一个解决方案:如果有chrome二进制文件,直接检查非标准位置。您可以使用以下代码:
File binaryFile = new File("/path/to/other/chrome/binary");
if(binaryFile.exists()){
//binary file is not in standard location
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
}
else{
//binary file is in standard location
}
第二种解决方案:如果两台机器的操作系统不同,您可以使用System.getProperty(“os.name”)
来区分它们。如果没有,您可以在此页面上找到其他属性:
并使用此代码:
if (System.getProperty("os.name").toLowerCase().equals("windows")){
DesiredCapabilities capability = DesiredCapabilities.chrome();
capability.setCapability("chrome.binary","/path/to/chromedriver.exe");
driver = new ChromeDriver(capability);
}
在第二种解决方案中,我假设您的机器上有不同的操作系统。这就是我使用的解决方案。但是,这更具体地针对我的问题。在我的情况下,他们都有相同的操作系统。我想知道当我们不指定二进制文件时,chrome驱动程序如何知道默认的二进制文件路径在哪里。在指定二进制路径之前,也许我可以使用相同的方法确定默认路径中是否存在二进制。您是否尝试在您的计算机上搜索Chrome二进制文件,并将其放置在标准位置?