J'essaie de configurer Selenium pour les tests et aucun de mes pilotes Web ne semble fonctionner. J'ai essayé de les déplacer dans le dossier du projet et le seul moyen de permettre à Visual Studios de les localiser est d'utiliser une instruction @ "path".
Le vrai problème est ... Une fois que Visual Studio a localisé le WebDriver, l'opération a expiré et j'ai l'exception suivante:
Une exception non gérée du type 'OpenQA.Selenium.WebDriverException' s'est produite dans WebDriver.dll Informations complémentaires: Impossible de démarrer le service de pilote sur http: // localhost: (random numéro de port qui change à chaque fois)
J'ai essayé de redémarrer mon ordinateur et de demander à l'administrateur système de vérifier les journaux du pare-feu et du bloqueur de logiciels malveillants, mais aucun ne semble y avoir contribué (ou ils ne savent pas ce qu'il faut rechercher).
Je pense que c'est quelque chose de très simple et que je manque juste de ça ... Toute aide serait grandement appréciée.
Voici une copie de mon code:
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.IE;
namespace SeleniumWork
{
class Program
{
static void Main(string[] args)
{
IWebDriver driver = new InternetExplorerDriver(@"C:\blahblahpathstring");
driver.Navigate().GoToUrl("http://www.google.com/");
IWebElement query = driver.FindElement(By.Name("q"));
query.SendKeys("Cheese");
query.Submit();
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until(d => d.Title.StartsWith("cheese", StringComparison.OrdinalIgnoreCase));
Console.WriteLine("Page title is: " + driver.Title);
}
}
}
Voici une copie de la sortie de débogage que je reçois:
A first chance exception of type 'System.Net.WebException' occurred in System.dll
A first chance exception of type 'System.Net.WebException' occurred in System.dll
A first chance exception of type 'System.Net.WebException' occurred in System.dll
A first chance exception of type 'System.Net.WebException' occurred in System.dll
A first chance exception of type 'OpenQA.Selenium.WebDriverException' occurred in WebDriver.dll
J'ai eu le même problème sur ma machine de travail, mais pas sur ma machine personnelle. La seule différence que je pouvais attribuer entre les deux était que j'utilisais VS 2015 à la maison et VS 2017 au travail.
J'ai utilisé le gestionnaire de paquets NuGet pour le projet et téléchargé le fichier Selenium.Firefox.WebDriver de jbaranda, qui utilise le nouveau pilote Web marionette based au lieu de gecko driver.
Avec cette installation, j'ai pu mettre en place un navigateur Firefox sans aucune configuration ni option supplémentaire:
IWebDriver driver = new FirefoxDriver();
driver.Url = "www.google.com";
Alors qu'avant, il lançait l'exception "Je ne peux pas démarrer le service de pilote ..." que vous avez mentionné. Il existe des packages NuGet pour d'autres navigateurs que je suggère pour celui que vous utilisez, mais le seul avec lequel je n'avais pas ce problème était IE. J'espère que cela pourra aider
J'ai régulièrement utilisé cette solution sur IEDriverServer et rarement sur FireFox.
Corrigé deux fois quand c'est arrivé sur FireFox - la première fois que j'ai mis à jour le pilote de gecko, la deuxième fois, j'ai redémarré mon PC. Quelque chose se passe dans l'environnement, peut-être que le pilote n'abandonne pas complètement parfois, alors de nouvelles instanciations sont bloquées?
Je pense que la plupart des débutants sont confrontés à ce problème lorsqu'ils utilisent Sélénium avec C # pour la première fois.
Comme j'ai aussi fait face à cette situation. Comme souligné dans l'une des réponses et laissez-moi montrer avec des images
Vous avez installé Selenium.webDriver mais vous n’avez pas installé Selenium.Firefox.WebDriver
Étape 1: - Aller au gestionnaire de pépites
Étape 2: - / Sélectionnez Selenium.Firefox.WebDriver et installez-le.
Lancez à nouveau le programme et le problème disparaîtra.
J'avais le même problème et je n'avais aucune idée de comment le résoudre. En fin de compte, j'ai découvert que le pare-feu bloquait le trafic en boucle. Le pare-feu installé sur la machine est McAffe.
Je n’ai fait qu’arrêter le service qui gère l’analyse du trafic.
J'espère que cela vous aidera.