当前位置: 首页 > 面试题库 >

ChromeDriver(功能功能)已弃用

轩辕晔
2023-03-14
问题内容

我用ChromeDriver 2.33WebDriver 3.6.0,并尝试设置默认目录文件下载。

Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", Vars.DOWNLOAD_FOLDER_ROOT);
DesiredCapabilities caps = DesiredCapabilities.chrome();

ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
options.setExperimentalOption("prefs", prefs);
caps.setCapability(ChromeOptions.CAPABILITY, options);
driver = new ChromeDriver(caps);

我在文档中找到了这个:

请改用ChromeDriver(ChromeOptions)。创建一个新的ChromeDriver实例。该功能将传递给chromedriver服务。


问题答案:

我希望您想问一下解决方法,以避免过时。

Capabilities不推荐使用仅与一起构建的旧方法。现在,它以ChromeDriverServiceCapabilities为参数。因此,只需构建一个,ChromeDriverService然后将其与您一起传递Capabilities即可删除弃用警告。

DesiredCapabilities capabilities = DesiredCapabilities.chrome();

ChromeDriverService service = new ChromeDriverService.Builder()
                    .usingDriverExecutable(new File("/usr/local/chromedriver"))
                    .usingAnyFreePort()
                    .build();
ChromeDriver driver = new ChromeDriver(service, capabilities);

编辑: 由于ChromeDriver(service, capabilities)现在也已弃用,因此您可以使用,

DesiredCapabilities capabilities = DesiredCapabilities.chrome();

ChromeDriverService service = new ChromeDriverService.Builder()
                            .usingDriverExecutable(new File("/usr/local/chromedriver"))
                            .usingAnyFreePort()
                            .build();
ChromeOptions options = new ChromeOptions();
options.merge(capabilities);    
ChromeDriver driver = new ChromeDriver(service, options);

但是,您可以完全跳过DesiredCapabilities并仅ChromeOptions与以下setCapability方法一起使用,

ChromeOptions options = new ChromeOptions();
options.setCapability("capability_name", "capability_value");
driver = new ChromeDriver(options);


 类似资料:
  • JDK 10 版本已弃用 Java 库中的多个 API、特性和选项。以下是相关情况。 不推荐使用 SNMP 监控支持: 现在不推荐使用支持 JVM 的 SNMP 监控和管理支持的 jdk.snmp 模块,并标记为 forRemoval=true。 java.security classes 已弃用:java.security.{Certificate, Identity, IdentityScop

  • 主要内容:Java14弃用的功能,Java14中被移除的功能Java14弃用的功能 Solaris 和 SPARC 端口 (JEP 362) - 因为该 Unix 操作系统和 RISC 处理器自过去几年以来并未积极开发。 ParallelScavenge + SerialOld GC 组合 (JEP 366) - 因为这是一种很少使用的 GC 算法组合,并且需要大量的维护工作 Java14中被移除的功能 Concurrent Mark Sweep (CMS

  • 主要内容:Java16弃用的功能,Java16移除的功能Java16弃用的功能 ThreadGroup 方法,如 stop、destroy、isDestroyed、setDaemon 和 isDaemon 方法已被弃用,并将在未来版本中删除。这些销毁线程组的 API/机制存在缺陷,这种支持显式或自动销毁线程组的方法已被最终弃用。 诸如 sigset、signal 之类的信号链 API 已过时,不推荐使用它们。sigaction 是跨平台的,并且支持多线

  • 主要内容:Java15弃用的功能,Java15移除的功能Java15弃用的功能 以下功能已弃用,并计划在未来版本中删除。 偏置锁定 : 默认情况下禁用偏置锁定,不推荐使用所有相关的命令行选项。JDK 社区正在寻找需要检查难以维护的偏向锁定的遗留同步机制。HotSpot 虚拟机中使用了偏置锁定来减少无竞争锁定的开销。 RMI 激活 :RMI 激活是自 Java 8 以来的可选部分,并且是 RMI 的过时部分。它正在强加持续的维护成本。 Java15移除的

  • 问题内容: 这段代码的结果为56。 知道里面发生了什么吗?我很困惑。 问题答案: X返回(值+3),而Y返回(值* 2) 给定值为4,这表示。 尽管函数不受范围限制(这意味着您可以安全地“嵌套”函数定义),但是此特定示例容易出错: 1)您不能在调用 之前先调用,因为函数只有执行一次才真正定义。 2)调用两次将导致PHP重新声明function ,从而导致致命错误: 致命错误:无法重新声明y() 两

  • 对非常基础的使用来说,使用 Vite 开发和使用一个静态文件服务器并没有太大区别。然而,Vite 还通过原生 ESM 导入提供了许多主要用于打包场景的增强功能。 NPM 依赖解析和预构建 原生 ES 引入不支持下面这样的裸模块导入: import { someMethod } from 'my-dep' 上面的操作将在浏览器中抛出一个错误。Vite 将在服务的所有源文件中检测此类裸模块导入,并执