【问题标题】:How to correctly use FirefoxOptions() and its arguments to pass it to the FirefoxDriver() constructor如何正确使用 FirefoxOptions() 及其参数将其传递给 FirefoxDriver() 构造函数
【发布时间】:2019-01-21 11:09:36
【问题描述】:

我在实例化 FirefoxDriver 时尝试使用 FirefoxOptions,如下所示:

FirefoxOptions options = new FirefoxOptions();
WebDriver localWebDriver = new FirefoxDriver(options);

我一直在网上寻找如何正确使用 FirefoxOptions,类似于使用 ChromeOptions,主要是传递给 FirefoxOptions 的参数列表,但这次搜索没有运气.

如何将 ChromeOptions 与 ChromeDriver 一起使用的示例如下:

ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
options.addArguments("--kiosk");
options.addArguments("--ignore-certificate-errors");
options.addArguments("--disable-popup-blocking");
options.addArguments("disable-infobars");
options.addArguments("--incognito");
WebDriver webDriver = new ChromeDriver(options);

有人知道如何正确使用 FirefoxOptions,以及可以传递给它的参数列表吗?

【问题讨论】:

  • 您是否发现第二个代码块有任何错误?
  • 无。有什么理由我应该去看吗?

标签: java selenium-webdriver arguments selenium-firefoxdriver


【解决方案1】:

FirefoxOptions 可以通过以下方式添加:

FirefoxOptions options = new FirefoxOptions();
        options.setBinary("C:\\Program Files (x86)\\Mozilla\\Firefox\\firefox.exe");
 WebDriver driver = new FirefoxDriver(options);

如果查看documentationFirefoxOptions 的每个方法都有参数。

【讨论】:

    【解决方案2】:

    偏好列表链接:http://kb.mozillazine.org/About:config_entries

    case BrowserType.Firefox:
                    {
                        var service = FirefoxDriverService.CreateDefaultService();
                        var options = new FirefoxOptions();
                        options.SetPreference("permissions.default.image", 2);
                        driver = new FirefoxDriver(service, options);
                        break;
                    }
    

    例如使用 C# 代码

    【讨论】:

    • Chrome:options.addArguments("--incognito");火狐:options.addArguments("-private");
    【解决方案3】:

    我正在做这样的事情

    const defaultFireFoxFlags = [
                // '--headless',
                "--disable-gpu",
                // "--window-size=1280x1696", // Letter size'--no-sandbox',
                "--user-data-dir=/tmp/user-data",
                "--hide-scrollbars",
                "--enable-logging",
                "--log-level=0",
                "--v=99",
                "--single-process",
                "--data-path=/tmp/data-path",
                "--ignore-certificate-errors",
                "--homedir=/tmp",
                "--disk-cache-dir=/tmp/cache-dir",
                "--start-maximized"
              ];
              const geckoDriverPath = path.join(__dirname, "../assets/geckodriver");
              const firefoxServiceBuilder = new firefox.ServiceBuilder(geckoDriverPath);
              const firefoxOptions = new firefox.Options();
              defaultFireFoxFlags.forEach(flag => firefoxOptions.addArguments(flag));
              if (webDriverInitOptions.headless) firefoxOptions.headless();
              this.driver = new Builder()
                .forBrowser(webDriverInitOptions.browser)
                .setFirefoxService(firefoxServiceBuilder)
                .setFirefoxOptions(firefoxOptions)
                .build();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多