可以使用FirefoxOptions()和DesiredCapabilities对象调用setCapability(),有什么区别以及在哪里使用

时间:2019-05-23 09:19:35

标签: selenium selenium-webdriver selenium-chromedriver

我正在尝试在Firefox上设置一些功能。 我看到使用firefox对象和DesiredCapabilities对象,我们可以做同样的事情。两者之间有什么区别,以及如何选择使用哪一个。我们可以对两个对象调用相同的setCapability()方法。

设置成功运行的功能。但是我对选项和DesiredCapabilities感到困惑。两者之间有什么区别和关系。

FirefoxOptions options = new FirefoxOptions();

options.setCapability();

DesiredCapabilities desiredCap = DesiredCapabilities.firefox();

desiredCap.setCapability();

1 个答案:

答案 0 :(得分:2)

DesiredCapabilities是旧的处理方式,目前已弃用。 “选项”模式是一种新的处理方式,它已作为将API迁移到新的W3C兼容API的工作的一部分而包含在Selenium中。

  /**
   * @deprecated Use {@link #FirefoxDriver(FirefoxOptions)}.
   */
  @Deprecated
  public FirefoxDriver(Capabilities desiredCapabilities) {
    this(new FirefoxOptions(Objects.requireNonNull(desiredCapabilities, "No capabilities seen")));
  }

链接到上面的代码on Github

在Selenium 4中,应该删除所有已过时的方法 (当然,实际上,可能不会立即将其全部删除),所以我建议您继续使用FirefoxOptions而不是DesiredCapabilities。