web-dev-qa-db-fra.com

Firefox sans tête dans Selenium C #

Je veux exécuter Firefox sans tête.

Ne pas masquer la fenêtre du navigateur ou l'ouvrir dans un bureau virtuel, Firefox prend en charge le mode sans tête en utilisant l'indicateur "-headless".

Le problème est que je sais comment le faire dans chrome mais pas dans Firefox.

Mon code:

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);
    }
}
}

Mon application WinForm n'a qu'un bouton avec le nom StartBtn. En cliquant sur le bouton Firefox devrait fonctionner sans tête, mais il s'ouvre dans une fenêtre normale.


Mise à jour J'ai mis à jour Firefox vers 56.0.1

Maintenant, je reçois une erreur différente:

Une exception non gérée de type "OpenQA.Selenium.WebDriverException" s'est produite dans WebDriver.dll

Informations supplémentaires: emplacement binaire attendu du navigateur, mais impossible de trouver le binaire à l'emplacement par défaut, aucune capacité "moz: firefoxOptions.binary" fournie et aucun indicateur binaire défini sur la ligne de commande

10
Raven

Le mode sans tête dans Firefox est pris en charge à partir de la version 56 sur Windows et Mac OS. Assurez-vous que la bonne version est installée.

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

Avec Firefox v56.0.1 , Selenium.WebDriver v3.6.0 et geckodriver v0.19.0 (x64) cela fonctionne correctement pour moi.

Concernant l'erreur:

Une exception non gérée de type "OpenQA.Selenium.WebDriverException" s'est produite dans WebDriver.dll

Assurez-vous que vous utilisez la bonne version de geckodriver. Je suppose que vous utilisez le x32 s'appuie sur un x64 machine, récupérez le x64 construire.

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

4
Equalsk