Selenium C中的无头Firefox#

Rav*_*ven 9 c# firefox selenium headless headless-browser

我想运行firefox无头.

不隐藏浏览器窗口或在虚拟桌面中打开它,Firefox通过使用"-headless"标志支持无头模式.

问题是我知道如何在Chrome中执行此操作但不在Firefox中.

我的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;

namespace MyApp {
public partial class Form1: Form {
    public Form1() {
        InitializeComponent();
    }

    private void StartBtn_Click(object sender, EventArgs e) {

        IWebDriver driver;
        FirefoxOptions options = new FirefoxOptions();
        options.AddArguments("--headless");
        driver = new FirefoxDriver(options);
    }
}
}
Run Code Online (Sandbox Code Playgroud)

我的WinForm应用程序只有一个名为StartBtn的按钮.单击按钮时,Firefox应无头运行,但会在正常窗口中打开.


更新 我将firefox更新为56.0.1

现在我得到一个不同的错误:

WebDriver.dll中发生未处理的"OpenQA.Selenium.WebDriverException"类型异常

附加信息:预期的浏览器二进制位置,但无法在默认位置找到二进制文件,未提供'moz:firefoxOptions.binary'功能,并且在命令行上未设置二进制标志

Equ*_*lsk 5

Windows 和 Mac OS 版本 56 开始支持 Firefox 中的 Headless 模式。确保您安装了正确的版本。

https://developer.mozilla.org/en-US/Firefox/Headless_mode#Browser_support

使用Firefox v56.0.1Selenium.WebDriver v3.6.0geckodriver v0.19.0 (x64)这对我来说工作正常。

关于错误:

WebDriver.dll 中发生类型为“OpenQA.Selenium.WebDriverException”的未处理异常

确保您使用的是正确版本的geckodriver. 我怀疑您正在机器x32上使用构建x64,获取x64构建。

https://github.com/mozilla/geckodriver/releases