Comment résoudre l'erreur Le fichier geckodriver.exe est utilisé par un autre processus à l'aide de Firefox et de Sélénium C#

0

La question

Je suis en train de lancer mon test sur Chrome et Firefox à l'aide de sélénium c#. Le problème est que, lors de l'installation du Sélénium.WebDriver.GeckoDriver pour être en mesure d'exécuter le test sur le navigateur Firefox, il me brise le code et je ne suis pas en mesure d'exécuter le test de chrome ou de Firefox. Une idée?

J'ai installé

  • Le sélénium.WebDriver
  • Le sélénium.WebDriver.ChromeDriver
  • Le sélénium.Firefox.WebDriver
  • Le sélénium.WebDriver.GeckoDriver

Erreur:

The file geckodriver.exe is being used by another process   

Autre erreur:

The file is locked by geckodriver

Code des essais:

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using System;

    internal class Program
        {
            IWebDriver driver = new ChromeDriver();
            //IWebDriver driver = new FirefoxDriver();
            static void Main(string[] args)
            {
            }
            [SetUp] //method to initialize page with windows maximized. 
            public void Initialize()
            {
                driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(30);
                driver.Navigate().GoToUrl("https://www.demo.bnz.co.nz/client/");
                driver.Manage().Window.Maximize();
                driver.Manage().Cookies.DeleteAllCookies();
            }
public void Payees()
        {
            System.Threading.Thread.Sleep(10000); //verify if page is loaded 
            IWebElement element = driver.FindElement(By.XPath("//*[@id='left']/div[1]/div/button"));//menu            
            element.Click();
            driver.FindElement(By.XPath("//*[@id='left']/div[1]/div/div[3]/section/div[2]/nav[1]/ul/li[3]/a")).Click(); //payes
        }
c# firefox geckodriver selenium
2021-11-23 04:45:24
1

La meilleure réponse

1

Ce message d'erreur...

"The file geckodriver.exe is being used by another process

et

The file is locked by geckodriver

...implique qu'il existe résiduelle GeckoDriver processus de la précédente exécution du test de l'occupation mémoire de votre système.

Sauf ceux qui pendouille GeckoDriver processus sont supprimés de votre programme serait impossible de démarrer une nouvelle GeckoDriver service.

Pour tuer le processus résiduels vous pouvez utiliser le bloc de code suivant:

  • À l'aide de GetProcessesByName():

    foreach (var process in Process.GetProcessesByName("geckodriver"))
    {
        process.Kill();
    }
    
  • À l'aide de Process.GetProcesses() le filtrage des processus requis:

    var chromeDriverProcesses = Process.GetProcesses();
        Where(pr => pr.ProcessName == "chromedriver"); // without .exe
    
    foreach (var process in chromeDriverProcesses)
    {
       process.Kill();
    }
    

Solution Idéale

Idéalement pour se débarrasser de ce processus redondant toujours invoquer driver.quit() au sein de tearDown(){} méthode pour fermer et détruire le WebDriver et Client Web instances gracieusement.


Références

Vous pouvez trouver un couple de pertinent discussions détaillées dans:

2021-11-23 05:23:33

Où dans mon code dois-je utiliser cette Méthode?
Yorda

@Yorda Vérifier l'ajout de détails et de références.
DebanjanB

J'ai de la mise à nu dans mon code, mais a été commenté. Je vais décocher cette. Merci
Yorda

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................