在 Java 中哪里可以找到浏览器首选项的 ChromeDriver 常量?



使用Selenium WebDriver,如果我想启动Chrome浏览器,那么首先需要设置系统属性,例如 -

System.setProperty("webdriver.chrome.driver", chromeDriverLocation);

在这里,我们提到了wedriver.chrome.driver但它已经在"ChromeDriverService"中定义,因此可以直接使用该常量,例如(参考文档( -

System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, chromeDriverLocation);

但是,如果我想在特定位置下载文件,我会在Firefox配置文件中提供详细信息,例如-

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.dir", folder.getAbsolutePath());
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk",
"image/jpeg, application/pdf, application/octet-stream");
profile.setPreference("pdfjs.disabled", true);
driver = new FirefoxDriver(profile);
}

在这里我们可以看到常量值,如browser.download.dirbrowser.helperApps.neverAsk.saveToDisk等。

这些是否在我们ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY的任何地方定义为常量?所以我们可以直接在代码中使用它们。

ChromeDriverService 类支持以下字段:

  • CHROME_DRIVER_EXE_PROPERTY
  • CHROME_DRIVER_LOG_PROPERTY
  • CHROME_DRIVER_SILENT_OUTPUT_PROPERTY
  • CHROME_DRIVER_VERBOSE_LOG_PROPERTY
  • CHROME_DRIVER_WHITELISTED_IPS_PROPERTY

因此,您可以使用:

System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, chromeDriverLocation);

但 FirefoxProfile 支持三种重载setPreference()方法,如下所示:

  • setPreference(java.lang.String key, boolean value)
  • setPreference(java.lang.String key, int value)
  • setPreference(java.lang.String key, java.lang.String value)

所有这三种方法都接受(字符串(和(布尔/整数/字符串(对,并设置此特定配置文件的首选项。Firefox 浏览器在启动时配置了这些值。

结论

因此,所需的偏好例如browser.download.dirbrowser.download.folderListbrowser.helperApps.neverAsk.saveToDiskpdfjs.disabled等不是常量,而是(字符串((布尔/整数/字符串(对,不能在代码中被视为常量

在 Firefox 中,您可以在地址栏中键入about:config以查看所有首选项名称及其当前值。

对于 Chrome,您可以在地址栏中键入chrome://flags以查看所有当前设置及其值。

点击这里了解更多详情

你可以从代码中更改它:

System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, chromeDriverLocation);

或命令行参数

java -Dwebdriver.chrome.driver=chromeDriverLocation testClass

相关内容

  • 没有找到相关文章

最新更新