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);
}
}
}
WinFormアプリケーションには、StartBtnという名前のボタンしかありません。ボタンをクリックすると、Firefoxはヘッドレスで実行されますが、通常のウィンドウで開きます。
pdate firefoxを56.0.1に更新しました
今、私は別のエラーを受け取ります:
タイプ 'OpenQA.Selenium.WebDriverException'の未処理の例外がWebDriver.dllで発生しました
追加情報:ブラウザーのバイナリーの場所が必要ですが、デフォルトの場所でバイナリーが見つかりません。「moz:firefoxOptions.binary」機能が提供されておらず、コマンドラインでバイナリーフラグが設定されていません
Firefoxのヘッドレスモードは、WindowsおよびMac OSのバージョン56以降でサポートされています。正しいバージョンがインストールされていることを確認してください。
https://developer.mozilla.org/en-US/Firefox/Headless_mode#Browser_support
Firefox v56.0.1、Selenium.WebDriver v3.6.0およびgeckodriver v0.19.0(x64)これは私にとっては正しく動作します。
エラーについて:
タイプ 'OpenQA.Selenium.WebDriverException'の未処理の例外がWebDriver.dllで発生しました
正しいバージョンのgeckodriver
を使用していることを確認してください。 x32
ビルドでx64
ビルドを使用しているようです。x64
ビルドを取得してください。